تقنية

كيفية استيراد معاملات PayPal إلى جداول بيانات Google


سيوضح لك هذا البرنامج التعليمي كيفية استيراد معاملات PayPal إلى جداول بيانات Google بمساعدة Google Apps Script. يمكنك اختيار استيراد دفعات PayPal القياسية، أو دفعات الاشتراك المتكررة، أو التبرعات، أو حتى المبالغ المستردة ورد المبالغ المدفوعة إلى جداول بيانات Google.

بمجرد استيراد البيانات إلى جداول بيانات Google، يمكنك تصديرها إلى ملف CSV واستيرادها إلى برنامج المحاسبة Quickbooks. يمكن لمستخدمي Tally في الهند تصدير معاملات PayPal من جداول بيانات Google إلى تنسيق XML واستيرادها بشكل مجمّع إلى Tally.

راجع أيضًا: أتمتة PayPal باستخدام نماذج Google

استيراد معاملات PayPal في جداول بيانات Google

في هذا المثال، سنقوم باستيراد قائمة المتبرعين إلى جداول بيانات Google الذين قدموا التبرعات من خلال PayPal.

1. قم بإنشاء بيانات اعتماد API داخل PayPal

قم بتسجيل الدخول إلى لوحة تحكم مطور PayPal الخاصة بك (developer.paypal.com) وقم بإنشاء تطبيق جديد في الوضع المباشر. قم بتسمية تطبيقك – Transaction Importer for Google Sheets وانقر على زر إنشاء التطبيق.

سيقوم PayPal بإنشاء معرف العميل ومفتاح العميل السري الذي ستحتاج إليه في خطوة لاحقة. ضمن قسم إعدادات التطبيق المباشر، حدد الخيار Transaction Search الخيار وإيقاف تشغيل جميع الخيارات الأخرى لأننا نريد فقط أن تقوم مفاتيح API بإدراج المعاملات وليس لها وظائف أخرى. انقر فوق حفظ للمتابعة.

بيانات اعتماد حساب باي بال

2. قم بإنشاء مشروع جداول بيانات Google

اذهب الى sheets.new لإنشاء ورقة Google جديدة. انتقل إلى قائمة الإضافات واختر Apps Script لفتح محرر Apps Script.

انسخ الكود والصقه في المحرر. تذكر استبدال رمز المعاملة برمزك الخاص. يمكنك استخدام T0002 لاشتراكات باي بال، T0014 لدفعات التبرعات، أو T1107 لاسترداد أموال PayPal ورد المبالغ المدفوعة.

ال /* @OnlyCurrentDoc */ التعليق عبارة عن تعليق لبرنامج Google Apps Script يخبر Google Apps Script بتشغيل التعليمات البرمجية داخل ورقة Google الحالية فقط ولا يتطلب الوصول إلى أي جدول بيانات آخر في Google Drive.

/* @OnlyCurrentDoc */
/* Author: digitalinspiration.com */

const TRANSACTION_TYPE = 'T0001';

// Enter your own PayPal Client ID and Client Secret key
const PAYPAL_CLIENT_ID = '<YOUR_PAYPAL_CLIENT_ID>';
const PAYPAL_CLIENT_SECRET = '<YOUR_PAYPAL_CLIENT_SECRET>';

// Enter start and end dates in the format YYYY-MM-DD
const START_DATE = '2022-03-01';
const END_DATE = '2022-03-15';

// Generate the PayPal access token
const getPayPalAccessToken_ = () => {
  const credentials = `${PAYPAL_CLIENT_ID}:${PAYPAL_CLIENT_SECRET}`;
  const headers = {
    Authorization: ` Basic ${Utilities.base64Encode(credentials)}`,
    Accept: 'application/json',
    'Content-Type': 'application/json',
    'Accept-Language': 'en_US'
  };

  const options = {
    method: 'POST',
    headers,
    contentType: 'application/x-www-form-urlencoded',
    payload: { grant_type: 'client_credentials' }
  };

  const request = UrlFetchApp.fetch('https://api.paypal.com/v1/oauth2/token', options);
  const { access_token } = JSON.parse(request);

  return access_token;
};

// Append the query parameters to the PayPal API URL
const buildAPIUrl_ = (queryParams) => {
  const baseUrl = [`https://api-m.paypal.com/v1/reporting/transactions`];
  Object.entries(queryParams).forEach(([key, value], index) => {
    const prefix = index === 0 ? '?' : '&';
    baseUrl.push(`${prefix}${key}=${value}`);
  });
  return baseUrl.join('');
};

// Fetch the list of PayPal transaction
const fetchTransactionBatchFromPayPal = (queryParams) => {
  const options = {
    headers: {
      Authorization: `Bearer ${getPayPalAccessToken_()}`,
      'Content-Type': 'application/json'
    }
  };

  const request = UrlFetchApp.fetch(buildAPIUrl_(queryParams), options);
  const { transaction_details, total_pages } = JSON.parse(request);
  return { transaction_details, total_pages };
};

// Extract the transaction details including the transaction ID,
// donation amount, transaction date and buyer's email and country code
const parsePayPalTransaction_ = ({ transaction_info, payer_info }) => [
  transaction_info.transaction_id,
  new Date(transaction_info.transaction_initiation_date),
  transaction_info.transaction_amount?.value,
  transaction_info.transaction_note || transaction_info.transaction_subject || '',
  payer_info?.payer_name?.alternate_full_name,
  payer_info?.email_address,
  payer_info?.country_code
];

const fetchPayPalTransactions_ = () => {
  const startDate = new Date(START_DATE);
  const endDate = new Date(END_DATE);
  startDate.setHours(0, 0, 0, 0);
  endDate.setHours(23, 59, 59, 999);

  const transactions = [];

  const params = {
    start_date: startDate.toISOString(),
    end_date: endDate.toISOString(),
    page_size: 100,
    transaction_type: TRANSACTION_TYPE,
    fields: 'transaction_info,payer_info'
  };

  for (let page = 1, hasMore = true; hasMore; page += 1) {
    const response = fetchTransactionBatchFromPayPal({ ...params, page });
    const { transaction_details = [], total_pages } = response;
    transaction_details.map(parsePayPalTransaction_).forEach((e) => transactions.push(e));
    hasMore = total_pages && total_pages > page;
  }

  return transactions;
};

// Import the transactions from PayPal and write them to the active Google Sheet
const importTransactionsToGoogleSheet = () => {
  const transactions = fetchPayPalTransactions_();
  const { length } = transactions;
  if (length > 0) {
    const sheet = SpreadsheetApp.getActiveSheet();
    sheet.getRange(1, 1, length, transactions[0].length).setValues(transactions);
    const status = `Imported ${length} PayPal transactions into Google Sheets`;
    SpreadsheetApp.getActiveSpreadsheet().toast(status);
  }
};

3. قم بتشغيل وظيفة استيراد PayPal

داخل محرر البرنامج النصي، انقر فوق الزر “تشغيل” لاستيراد المعاملات من PayPal. قد يتعين عليك ترخيص البرنامج النصي لأنه يتطلب أذونات للاتصال بـ PayPal API وأيضًا كتابة البيانات إلى جداول بيانات Google نيابةً عنك.

هذا كل شيء. إذا كانت هناك أي معاملات PayPal لاستيرادها في النطاق الزمني المحدد، فسيتم تشغيل البرنامج النصي وسيتم استيراد المعاملات إلى جداول بيانات Google.

قم بتشغيل مستورد PayPal

في الجزء التالي من البرنامج التعليمي، سنتعلم كيفية تصدير معاملات PayPal من جداول بيانات Google إلى ملف XML لاستيرادها إلى برنامج المحاسبة Tally.

راجع أيضًا: إرسال فواتير PayPal من جداول بيانات Google



Source link


اكتشاف المزيد من مرابع التكنولوجيا

اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.

اترك تعليقاً

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

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

اكتشاف المزيد من مرابع التكنولوجيا

اشترك الآن للاستمرار في القراءة والحصول على حق الوصول إلى الأرشيف الكامل.

Continue reading