تقنية

كيفية استخدام API لاشتراكات PayPal مع Node.js


يستخدم متجر Google الإضافي الخاص بنا اشتراكات PayPal مع البضائع الرقمية لمعالجة المدفوعات المتكررة ويتم إرسال الفواتير إلى العملاء من خلال استوديو المستندات.

هناك خطوتين.

  1. يقوم العملاء بالدفع ويكملون الطلب على موقعنا.

  2. PayPal يرسل أ BILLING.SUBSCRIPTION.ACTIVATED webhook إلى وظيفة بدون خادم.
  3. تتحقق الوظيفة (تعمل على Firebase ، Google Cloud) من الاشتراك ويتحقق مما إذا كانت الحالة نشطة.
  4. يستدعي Apps Script API لإكمال الطلب.

كانت وظيفة السحابة تستخدم سابقًا PayPal SDK الرسمي لـ Node.js ولكن تم إهماله مؤخرًا ولم يعد يدعم نقاط نهاية API للاشتراكات الجديدة. إن الترحيل من SDK العقدة PayPal إلى الحل الخاص بك بسيط نسبيًا ويتضمن خطوتين:

1. احصل على رمز الوصول باي بال

const { default: axios } = require('axios');

const getPayPalAccessToken = async () => {
  const client_id = 'PayPal Client ID goes here';
  const client_secret = 'PayPal Client Secret goes here';
  const options = {
    url: 'https://api-m.paypal.com/v1/oauth2/token',
    method: 'POST',
    headers: {
      Accept: 'application/json',
      'Accept-Language': 'en_US',
      'Content-Type': 'application/x-www-form-urlencoded',
    },
    auth: {
      username: client_id,
      password: client_secret,
    },
    params: {
      grant_type: 'client_credentials',
    },
  };
  const { status, data } = await axios(options);
  return data.access_token;
};

إذا كنت تخطط لاختبار التكامل الخاص بك مع حساب صندوق الرمل PayPal الخاص بك بدلاً من إصدار الإنتاج ، استبدل api-m.paypal.com في الطلبات مع api-m.sandbox.paypal.com واستخدام بيانات اعتماد عميل Sandbox.

2. تحقق من اشتراك PayPal

يرجع الطلب الناجح رمز الحالة HTTP 200 OK وهيئة استجابة JSON.

const { default: axios } = require('axios');

const verifyPayPalSubscription = async (subscription_id) => {
  const token = await getPayPalAccessToken();
  const options = {
    method: 'GET',
    url: `https://api-m.paypal.com/v1/billing/subscriptions/${subscription_id}`,
    headers: {
      Authorization: `Bearer ${token}`,
      Accept: 'application/json',
    },
  };
  const { status, data = {} } = await axios(options);
  if (status === 200) {
    const { subscriber: { email_address } = {}, status } = data;
    return status === 'ACTIVE';
  }
  return false;
};

بمجرد العثور على اشتراك PayPal ليكون نشطًا ، يتم تقديم طلب HTTP إلى واجهة برمجة تطبيقات Google Apps Script التي ترسل الفاتورة والترخيص إلى العميل. يتعلم أكثر.



Source link

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى