Back to docs

Links

إعادة بيانات التحويلات من جانب الخادم

أعد بيانات التحويلات إلى Styrar من خادمك الخاص بلغة Node.js أو Python أو Ruby on Rails.

إذا حدث التحويل في الواجهة الخلفية لديك بدلًا من المتصفح — webhook من مزود الدفع الخاص بك، مثلًا — اقرأ قيمة styrar_ck من الطلب الأصلي وأرسلها مباشرة إلى نفس نقطة النهاية العامة التي تستخدمها نبضة المتصفح. انظر نبضة التحويل للمرجع الكامل.

RequestPOST
Content-Type: application/json

{
  "clickToken": "the styrar_ck value",
  "eventName": "purchase",
  "value": 49.99
}

Node.js / Express

JavaScript
app.get('/checkout/complete', async (req, res) => {
  const clickToken = req.query.styrar_ck || req.cookies?.styrar_ck;
  if (clickToken) {
    fetch('https://api.styrar.com/v1/pixel/track', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ clickToken, eventName: 'purchase', value: req.session.orderTotal }),
    }).catch(() => {});
  }
  res.render('checkout-complete');
});

Python (Flask)

PYTHON
import requests

@app.route('/checkout/complete')
def checkout_complete():
    click_token = request.args.get('styrar_ck') or request.cookies.get('styrar_ck')
    if click_token:
        try:
            requests.post(
                'https://api.styrar.com/v1/pixel/track',
                json={'clickToken': click_token, 'eventName': 'purchase', 'value': order_total},
                timeout=2,
            )
        except requests.RequestException:
            pass
    return render_template('checkout-complete.html')

Python (Django)

PYTHON
import requests

def checkout_complete(request):
    click_token = request.GET.get('styrar_ck') or request.COOKIES.get('styrar_ck')
    if click_token:
        try:
            requests.post(
                'https://api.styrar.com/v1/pixel/track',
                json={'clickToken': click_token, 'eventName': 'purchase', 'value': order_total},
                timeout=2,
            )
        except requests.RequestException:
            pass
    return render(request, 'checkout-complete.html')

Ruby on Rails

RUBY
require 'net/http'
require 'json'

class CheckoutController < ApplicationController
  def complete
    click_token = params[:styrar_ck] || cookies[:styrar_ck]
    if click_token
      begin
        uri = URI('https://api.styrar.com/v1/pixel/track')
        Net::HTTP.post(uri, { clickToken: click_token, eventName: 'purchase', value: @order_total }.to_json,
                        'Content-Type' => 'application/json')
      rescue StandardError
        nil
      end
    end
  end
end

أي خادم آخر

نقطة النهاية هي HTTP وJSON عادي بدون مصادقة، فهذا يعمل من أي لغة يمكنها إرسال طلب HTTP:

Shell
curl -X POST https://api.styrar.com/v1/pixel/track \
  -H 'Content-Type: application/json' \
  -d '{"clickToken":"<styrar_ck value>","eventName":"purchase","value":49.99}'

غلّف الاستدعاء بحيث لا يمكن لفشل التتبع كسر التدفق المرتبط به أبدًا — تعيد نقطة النهاية دائمًا 200 { "ok": true }، لكن يجب عليك مع ذلك التعامل مع أخطاء الشبكة من جهتك.

ذو صلة

Join the beta waitlist

By signing up you agree to receive marketing email. See our Privacy Policy.