مكتبة ربط مع الواجهة البرمجية لخدمة الدفع سترايب (Stripe).
اشمل "مـحا"؛
مـحا.اشمل_ملف("Alusus/Stripe"، "سـترايب.أسس")؛
import "Apm";
Apm.importFile("Alusus/Stripe");
اشمل "مـحا"؛
مـحا.اشمل_ملف("Alusus/Stripe"، "سـترايب.أسس")؛
استخدم سـترايب؛
// أنشئ الوكيل
عرف وكيل: سـترايب.وكـيل(نـص("مفتاح_الواجهة_البرمجية"))؛
// متغير لحمل معلومات الرصيد.
عرف الرصيد: مـصفوفة[سـندنا[رصـيد]]؛
// هات الرصيد.;
الرصيد = وكيل.هات_الرصيد()؛
// اطبع مصفوفة الرصيد.
عرف ع: صـحيح؛
لكل ع = 0, ع < الرصيد.هات_الطول(), ع++ {
طـرفية.اطبع(
"النوع: %s\جالعملة: %s\جالمبلغ: %f\جالمصدر:\ج"،
الرصيد(ع).نوع_الرصيد.صوان, الرصيد(ع).العملة.صوان, الرصيد(ع).المبلغ
)؛
عرف م: صـحيح؛
لكل م = 0, م < الرصيد(ع).نوع_المصدر.هات_الطول(), م++ {
طـرفية.اطبع(
" نوع المصدر: %s\ج"
" المبلغ: %f\ج"،
الرصيد(ع).نوع_المصدر(م).نوع_المصدر.صوان, الرصيد(ع).نوع_المصدر(م).المبلغ
)
}
طـرفية.اطبع("\ج")؛
}
import "Apm";
Apm.importFile("Alusus/Stripe");
use Stripe;
// Inistantiate the client.
def client: Stripe.Client(String("my_test_key"));
// Variable to hold all the balance of stripe account.
def balanceArray : Array[SrdRef[Balance]];
// Get the balance.
balanceArray = client.getBalance();
// Print the balance array.
def j: Int;
for j = 0, j < balanceArray.getLength(), j++ {
Console.print(
"type: %s\ncurrency: %s\namount: %f\ndetailed source:\n",
balanceArray(j).balanceType.buf, balanceArray(j).currency.buf, balanceArray(j).amount
);
def i: Int;
for i = 0, i < balanceArray(j).sources.getLength(), i++ {
Console.print(
"\tsource type: %s\n\tsource amount: %f\n",
balanceArray(j).sources(i).sourceType.buf, balanceArray(j).sources(i).amount
)
}
Console.print("\n");
}
يحمل هذا الصنف بيانات الزبون المجلوبة من سترايب.
صنف زبـون {
عرف المعرف: نـص؛
عرف العنوان: سـندنا[عـنوان]؛
عرف الرصيد: عـائم = 0؛
عرف معرف_المصدر_المبدئي: نـص؛
عرف مقصر: ثـنائي؛
عرف زمن_الإنشاء: صـحيح[64]؛
عرف البريد_الإلكتروني: نـص؛
عرف بادئة_الفاتورة: نـص؛
عرف النسق_المفضلة: مـصفوفة[نـص]؛
عرف الاسم: نـص؛
عرف رقم_الهاتف: نـص؛
عرف الشحن: نـص؛
عرف معفي_من_الضريبة: نـص؛
عرف ساعة_اختبار: نـص؛
عرف تسلسل_الفاتورة_التالي: صـحيح؛
عرف العملة: نـص؛
عرف الوصف: نـص؛
عرف طريقة_الدفع_المبدئية: نـص؛
عملية هذا~هيئ();
عملية هذا~هيئ(المعرف: نـص, البريد_الإلكتروني: نـص, الاسم: نـص, النسق_المفضلة: مـصفوفة[نـص])؛
عملية هذا~هيئ(
المعرف: نـص، العنوان: سـندنا[عـنوان]، الرصيد: عـائم، زمن_الإنشاء: صـحيح[64]،
العملة: نـص: معرف_المصدر_المبدئي: نـص، مقصر: ثـنائي،
الوصف: نـص، البريد_الإلكتروني: نـص، بادئة_الفاتورة: نـص، الاسم: نـص،
تسلسل_الفاتورة_التالي: نـص، رقم_الهاتف: نـص، النسق_المفضلة: مـصفوفة[نـص]،
الشحن: نـص، معفي_من_الضريبة: نـص، ساعة_اختبار: نـص، طريقة_الدفع_المبدئية: نـص
)؛
}
class Customer {
def id: String;
def address: SrdRef[Address];
def balance: Float = 0;
def defaultSourceId: String;
def delinquent: Bool;
def created: Int[64];
def email: String;
def invoicePrefix: String;
def preferredLocales: Array[String];
def name: String;
def phone: String;
def shipping: String;
def taxExempt: String;
def testClock: String;
def nextInvoiceSequence: Int;
def currency: String;
def description: String;
def defaultPaymentMethod: String;
handler this~init();
handler this~init(id: String, email: String, name: String, preferredLocales: Array[String]);
handler this~init(
id: String, address: SrdRef[Address], balance: Float, created: Int[64],
currency: String, defaultSourceId: String, delinquent: Bool,
description: String, email: String, invoicePrefix: String, name: String,
nextInvoiceSequence: Int, phone: String, preferredLocales: Array[String],
shipping: String, taxExempt: String, testClock: String, defaultPaymentMethod: String
);
}
يحمل بيانات عنوان بريدي.
صنف عـنوان {
عرف المدينة: نـص؛
عرف الدولة: نـص؛
عرف السطر1: نـص؛
عرف السطر2: نـص؛
عرف الرمز_البريدي: نـص؛
عرف الولاية: نـص؛
عملية هذا~هيئ()؛
عملية هذا~هيئ(المدينة: نـص، الدولة: نـص، سطر1: نـص، سطر2: نـص، الرمز_البريدي: نـص، الولاية: نـص)؛
}
class Address {
def city: String;
def country: String;
def line1: String;
def line2: String;
def postalCode: String;
def state: String;
handler this~init();
handler this~init(city: String, country: String, line1: String, line2: String, postalCode: String, state: String);
}
يحمل بيانات الرصيد الحالي.
صنف رصـيد {
عرف المبلغ: عـائم = 0؛
عرف العملة: نـص = "usd"؛
عرف المصادر: مـصفوفة[سـندنا[مـصدر]]؛
عرف نوع_الرصيد: نـص؛
عملية هذا~هيئ()؛
عملية هذا~هيئ(المبلغ: عـائم، العملة: نـص، المصادر: مـصفوفة[سـندنا[مـصدر]]، نوع_الرصيد: نـص)؛
}
class Balance {
def amount: Float = 0;
def currency: String = "usd";
def sources: Array[SrdRef[Source]];
def balanceType: String;
handler this~init() {
}
handler this~init(amount: Float, currency: String, sources: Array[SrdRef[Source]], balanceType: String);
}
المصادر
(sources
) المصادر المساهمة في هذا الرصيد (حساب مصرفي bank_account أو بطاقة card).
نوع_الرصيد
balanceType
نوع هذا الرصيد (available, pending).
يحتوي على خصائص عملية رصيد واحدة.
صنف عـملية_رصيد {
عرف المعرف: نـص؛
عرف المبلغ: عـائم = 0؛
عرف زمن_التوفر: صـحيح[64]؛
عرف الإنشاء: صـحيح؛
عرف العملة: نـص = "usd"؛
عرف الوصف: نـص؛
عرف سعر_الصرف: عـائم؛
عرف الرسوم: عـائم؛
عرف تفاصيل_الرسوم: مـصفوفة[نـص]؛
عرف المبلغ_الكلي: عـائم = 0؛
عرف فئة_التبليغ: نـص؛
عرف المصدر: نـص؛
عرف الحالة: نـص؛
عرف نوع_المصدر: نـص؛
عملية هذا~هيئ()؛
عملية هذا~هيئ(
المعرف: نـص، المبلغ: عـائم، زمن_التوفر: صـحيح[64]، زمن_الإنشاء: صـحيح[64]،
العملة: نـص، الوصف: نـص، سعر_الصرف: عـائم، الرسوم: عـائم،
تفاصيل_الرسوم: مـصفوفة[نـص]، المبلغ_الكلي: عـائم، فئة_التبليغ: نـص،
المصدر: نـص، الحالة: نـص، نوع_المصدر: نـص
)؛
}
class BalanceTransaction {
def id: String;
def amount: Float = 0;
def availableOn: Int[64];
def created: Int[64];
def currency: String = "usd";
def description: String;
def exchangeRate: Float;
def fee: Float;
def feeDetails: Array[String];
def net: Float = 0;
def reportingCategory: String;
def source: String;
def status: String;
def sourceType: String;
handler this~init();
handler this~init(
id: String, amount: Float, availableOn: Int[64], created: Int[64],
currency: String, description: String, exchangeRate: Float, fee: Float,
feeDetails: Array[String], net: Float, reportingCategory: String,
source: String, status: String, sourceType: String
);
}
المعرف
(id
) معرف قيد العملية في سترايب.
المبلغ
(amount
) مبلغ العملية.
زمن_التوفر
(availableOn
) الزمن الذي ستكون فيه القيمة متوفرة في الحساب.
الرسوم
(fee
) رسوم العملية.
سعر_الصرف
(exchangeRate
) سعر الصرف المتبع في العملية.
يحمل فاصيل الفوترة لزبون.
صنف تـفاصيل_فوترة {
عرف العنوان: سـندنا[عـنوان]؛
عرف البريد_الإلكتروني: نـص؛
عرف الاسم: نـص؛
عرف رقم_الهاتف: نـص؛
عملية هذا~هيئ()؛
عملية هذا~هيئ(
عنوان: سـندنا[عـنوان]، البريد_الإلكتروني: نـص، الاسم: نـص، رقم_الهاتف: نـص
)؛
}
class BillingDetails {
def address: SrdRef[Address];
def email: String;
def name: String;
def phone: String;
handler this~init();
handler this~init(
address: SrdRef[Address], email: String, name: String, phone: String
);
}
يحمل خصائص عملية إتمام شراء واحدة.
صنف جـلسة_شراء {
عرف المعرف: نـص؛
عرف رابط_الإلغاء: نـص؛
عرف المعرف_الفريد: نـص؛
عرف العملة: نـص = "usd"؛
عرف معرف_الزبون: نـص؛
عرف العناصر: نـص؛
عرف النمط: نـص؛
عرف حالة_الدفع: نـص؛
عرف الحالة: نـص؛
عرف رابط_النجاح: نـص؛
عرف الرابط: نـص؛
عرف المبلغ_الكلي: نـص؛
عملية هذا~هيئ()؛
عملية هذا~هيئ(
المعرف: نـص، المعرف_الفريد: نـص، رابط_الإلغاء: نـص، رابط_النجاح: نـص، الرابط: نـص،
العملة: نـص، معرف_الزبون: نـص، العناصر: نـص، النمط: نـص، حالة_الدفع: نـص،
الحالة: نـص، المبلغ_الكلي: نـص
)؛
}
class CheckoutSession {
def id: String;
def cancelUrl: String;
def uniqeId: String;
def currency: String = "usd";
def customerId: String;
def lineItems: String;
def mode: String;
def paymentStatus: String;
def status: String;
def successUrl: String;
def url: String;
def amountTotal: String;
handler this~init();
handler this~init(
id: String, uniqeId: String, cancelUrl: String, successUrl: String, url: String,
currency: String, customerId: String, lineItems: String,
mode: String, paymentStatus: String, status: String, amountTotal: String
);
}
المعرف
(id
) معرف قيد إتمام الشراء في سترايب.
المبلغ_الكلي
(amountTotal
) المبلغ الكلي لعملية الشراء.
الرابط
(url
) رابط إتمام عملية الشراء.
رابط_النجاح
(successUrl
) الرابط الذي يُرسل المستخدم إليه في حال نجاح العملية.
رابط_الإلغاء
(cancelUrl
) الرابط الذي يُرسل المستخدم إليه في حال إلغاء العملية.
يحمل معلومات لطريقة دفع واحدة.
صنف طـريقة_دفع {
عرف المعرف: نـص؛
عرف تفاصيل_الفوترة: سـندنا[تـفاصيل_فوترة]؛
عرف تاريخ_الإنشاء: صـحيح[64]؛
عرف العملة: نـص = "usd"؛
عرف معرف_الزبون: نـص؛
عرف سنة_انقضاء_الصلاحية: صـحيح؛
عرف شهر_انقضاء_الصلاحية: صـحيح؛
عرف آخر4: نـص؛
عرف النوع: نـص؛
عملية هذا~هيئ()؛
عملية هذا~هيئ(
المعرف: نـص، تفاصيل_الفوترة: سـندنا[تـفاصيل_فوترة]، تاريخ_الإنشاء: صـحيح[64]، سنة_انقضاء_الصلاحية: صـحيح،
شهر_انقضاء_الصلاحية: صـحيح، العملة: نـص، آخر4: نـص، النوع: نـص
)؛
}
class PaymentMethod {
def id: String;
def billingDetails: SrdRef[BillingDetails];
def created: Int[64];
def currency: String = "usd";
def customerId: String;
def expYear: Int;
def expMonth: Int;
def last4: String;
def type: String;
handler this~init();
handler this~init(
id: String, billingDetails: SrdRef[BillingDetails], created: Int[64], expYear: Int, expMonth: Int,
currency: String, last4: String, type: String
);
}
يحمل معلومات لمصدر واحد من مصادر الرصيد (مثل بطاقة أو حساب مصرفي).
صنف مـصدر {
عرف المبلغ: عـائم = 0؛
عرف النوع: نـص = "card"؛
عملية هذا~هيئ()؛
عملية هذا~هيئ(المبلغ: عـائم، نوع_المصدر: نـص)؛
}
class Source {
def amount: Float = 0;
def sourceType: String = "card"; // "card" or "bank_account"
handler this~init();
handler this~init(amount: Float, sourceType: String);
}
يحمل خصائص اشتراك واحد.
صنف اشـتراك {
عرف المعرف: نـص؛
عرف معرف_التطبيق: نـص؛
عرف ضريبة_تلقائية: ثنائي؛
عرف زمن_بدء_دورة_الفاتورة: صـحيح[64]؛
عرف زمن_الإنشاء: صـحيح[64]؛
عرف زمن_البدء: صـحيح[64]؛
عرف زمن_بدء_الفترة_الحالية: صـحيح[64]؛
عرف زمن_انتهاء_الفترة_الحالية: صـحيح[64]؛
عرف الإلغاء_عند_انتهاء_الاشتراك: ثنائي؛
عرف الوصف: نـص؛
عرف الحالة: نـص؛
عرف زمن_انتهاء_الفترة_التجريبية: صـحيح[64]؛
عرف العملة: نـص؛
عرف معرف_الزبون: نـص؛
عرف طريقة_الجمع: نـص؛
عرف بيانات_وصفية: تـطبيق[نـص، نـص]؛
عملية هذا~هيئ()؛
عملية هذا~هيئ(
المعرف: نـص، ضريبة_تلقائية: ثنائي، زمن_بدء_دورة_الفاتورة: صـحيح[64]، زمن_الإنشاء: صـحيح[64]، طريقة_الجمع: نـص،
زمن_البدء: صـحيح[64]، الألغاء_عند_انتهاء_الاشتراك: ثنائي، زمن_انتهاء_الفترة_الحالية: صـحيح[64]،
زمن_بدء_الفترة_الحالية: صـحيح[64]، الوصف: نـص، الحالة: نـص، زمن_انتهاء_الفترة_التجريبية: صـحيح[64]،
معرف_الزبون: نـص، العملة: نـص، بيانات_وصفية: تـطبيق[نـص، نـص]
)؛
}
class Subscription {
def id: String;
def application: String;
def automaticTax: Bool;
def billingCycleAnchor: Int[64];
def created: Int[64];
def startDate: Int[64];
def currentPeriodStart: Int[64];
def currentPeriodEnd: Int[64];
def cancelAtPeriodEnd: Bool;
def description: String;
def status: String;
def trialEnd: Int[64];
def currency: String = "usd";
def customerId: String;
def collectionMethod: String;
def metadata: Map[String, String];
handler this~init();
handler this~init(
id: String, automaticTax: Bool, billingCycleAnchor: Int[64], created: Int[64],
collectionMethod: String, startDate: Int[64], cancelAtPeriodEnd: Bool,
currentPeriodEnd: Int[64], currentPeriodStart: Int[64], description: String, status: String,
trialEnd: Int[64], customerId: String, currency: String, metadata: Map[String, String]
);
}
المعرف
(id
) معرف قيد عملية اشتراك في سترايب.
زمن_البدء
(startDate
) زمن بدء الاشتراك.
الحالة
(status
) حالة الاشتراك.
زمن_انتهاء_الفترة_التجريبية
(trialEnd
) زمن انتهاء الفترة التجريبية.
معرف_الزبون
(customerId
) معرف الزبون الخاص بعملية الاشتراك.
يحمل بيانات قسيمة ترويج واحدة.
صنف قـسيمة {
عرف المعرف: نـص؛
عرف الاسم: بـعدم[نـص]؛
عرف المدة: نـص؛
عرف المدة_بالأشهر: بـعدم[نـص]؛
عرف قيمة_التخفيض: بـعدم[صـحيح]؛
عرف نسبة_التخفيض: بـعدم[عـائم]؛
عرف العملة: بـعدم[نـص]؛
عملية هذا~هيئ()؛
عملية هذا~هيئ(
المعرف: نـص،
الاسم: بـعدم[نـص]،
المدة: نـص،
المدة_بالأشهر: بـعدم[نـص]،
قيمة_التخفيض: بـعدم[صـحيح]،
نسبة_التخفيض: بـعدم[عـائم]،
العملة: بـعدم[نـص]
)؛
}
class Coupon {
def id: String;
def name: Nullable[String];
def duration: String;
def durationInMonths: Nullable[String];
def amountOff: Nullable[Int];
def percentOff: Nullable[Float];
def currency: Nullable[String];
handler this~init();
handler this~init(
id: String,
name: Nullable[String],
duration: String,
durationInMonths: Nullable[String],
amountOff: Nullable[Int],
percentOff: Nullable[Float],
currency: Nullable[String]
);
}
يحمل بيانات رمز ترويج واحد.
صنف قـسيمة {
عرف المعرف: نـص؛
عرف مفعل: ثـنائي؛
عرف الرمز: نـص؛
عرف النمط_الحي: ثـنائي؛
عرف القسيمة: سـندنا[قـسيمة]؛
عملية هذا~هيئ()؛
عملية هذا~هيئ(
المعرف: نـص،
مفعل: ثـنائي،
الرمز: نـص،
النمط_الحي: ثـنائي،
القسيمة: سـندنا[قـسيمة]
)؛
}
class PromotionCode {
def id: String;
def active: Bool;
def code: String;
def livemode: Bool;
def coupon: SrdRef[Coupon];
handler this~init() {}
handler this~init(
id: String,
active: Bool,
code: String,
livemode: Bool,
coupon: SrdRef[Coupon]
);
}
يحتوي هذا الصنف كل وظائف التواصل مع سترايب. يُهيأ باستخدام مفتاح الواجهة البرمجية المُقدم من سترايب (API key):
عملية هذا~هيئ(مفتاح: نـص)؛
handler this~init(key: String);
يحتوي على الوظائف التالية:
عملية هذا.هات_الزبائن(): لـا_مضمون[مـصفوفة[سـندنا[زبـون]]]؛
عملية هذا.هات_الزبائن(الحد_الأقصى: صـحيح): لـا_مضمون[مـصفوفة[سـندنا[زبـون]]]؛
عملية هذا.هات_الزبائن(الحد_الأقصى: صـحيح، آخر_معرف: نـص): لـا_مضمون[مـصفوفة[سـندنا[زبـون]]]؛
handler this.getCustomers(): Possible[Array[SrdRef[Customer]]]
handler this.getCustomers(limit: Int): Possible[Array[SrdRef[Customer]]]
handler this.getCustomers(limit: Int, startId: String): Possible[Array[SrdRef[Customer]]]
تُرجع جميع الزبائن.
الحد_الأقصى
(limit
): الحد الأقصى للقيود المطلوب جلبها.
آخر_معرف
(startId
): معرف القيد المطلوب جلب البيانات بدءًا مما يليه.
عملية هذا.هات_زبونا(معرف: نـص): لـا_مضمون[سـندنا[زبـون]]
handler this.getCustomer(id: String): Possible[SrdRef[Customer]]
يرجع الزبون ذا المعرف المعطى.
عملية هذا.أنشئ_زبونا(معطيات: نـص): لـا_مضمون[نـص]
handler this.createCustomer(parameters: String): Possible[String]
تنشئ قيد زبون.
معطيات
(parameters
) معطيات الزبون بالصيغة التالية: "email=[email protected]&name=john".
تُرجع معرف الزبون.
عملية هذا.أيملك_الزبون_طريقة_دفع_مبدئية(معرف_الزبون: نـص): ثـنائي؛
handler this.doesCustomerHaveDefaultPaymentMethod(customerId: String): Bool;
ترجع 1 إن كان لدى الزبون بالمعرف المعطى طريقة دفع مبدئية.
عملية هذا.أضف_طريقة_دفع_مبدئية_للزبون(معرف_الزبون: نـص، معرف_طريقة_الدفع: نـص): سـندنا[خـطأ]؛
handler this.addCustomerDefaultPaymentMethod(customerId: String, paymentMethodId: String): SrdRef[Error];
تضيف طريقة الدفع المحددة كطريقة دفع مبدئية للزبون. ترجع 1 في حال نجاح العملية.
عملية هذا.هات_الرصيد(): لـا_مضمون[مـصفوفة[سـندنا[رصـيد]]]
handler this.getBalance(): Possible[Array[SrdRef[Balance]]]
تُرجع الرصيد لكل الحسابات التابعة لمفتاح الواجهة البرمجية.
عملية هذا.هات_عمليات_الرصيد(): لـا_مضمون[مـصفوفة[سـندنا[عـملية_رصيد]]]؛
عملية هذا.هات_عمليات_الرصيد(الحد_الأقصى: صـحيح): لـا_مضمون[مـصفوفة[سـندنا[عـملية_رصيد]]]؛
عملية هذا.هات_عمليات_الرصيد(الحد_الأقصى: صـحيح، آخر_معرف: نـص): لـا_مضمون[مـصفوفة[سـندنا[عـملية_رصيد]]]؛
handler this.getBalanceTranasactions(): Possible[Array[SrdRef[BalanceTranasaction]]];
handler this.getBalanceTranasactions(limit: Int): Possible[Array[SrdRef[BalanceTranasaction]]];
handler this.getBalanceTranasactions(limit: Int, startId: String): Possible[Array[SrdRef[BalanceTranasaction]]];
ترجع قائمة العمليات التي ساهمت في إيصال الحساب إلى الرصيد الحالي (مثل الدفع والتحويل وما شابه).
الحد_الأقصى
(limit
): الحد الأقصى للقيود المطلوب جلبها.
آخر_معرف
(startId
): معرف القيد المطلوب جلب البيانات بدءًا مما يليه.
عملية هذا.هات_عملية_رصيد(معرف: نـص): لـا_مضمون[سـندنا[عـملية_رصيد]]
handler this.getBalanceTranasaction(id: String): Possible[SrdRef[BalanceTranasaction]]
ترجع عملية الرصيد ذات المعرف المحدد.
عملية هذا.أنشئ_جلسة_تحكم_بالفوترة(معطيات: نـص): لـا_مضمون[نـص]
handler this.createBillingPortalSession(parameters: String): Possible[String]
تنشئ جلسة جديدة للتحكم بالدفع.
معطيات
(parameters
) معطيات الاشتراك المطلوبة بالصيغة التالية: "customer=customerID&returnUrl=returnUrl".
تُرجع رابط جلسة بوابة الدفع.
عملية هذا.أنشئ_جلسة_تحكم_بالفوترة(
معرف_الزبون: مـؤشر_محارف،
رابط_الرجوع: مـؤشر_محارف
): لـا_مضمون[نـص]
handler this.createBillingPortalSession(
customerId:CharsPtr,
returnUrl: CharsPtr
): Possible[String]
هذه النسخة من دالة أنشئ_جلسة_تحكم_بالفوترة
تستلم معطيات مفصلة بدل معطى خام كما في النسخة السابقة.
معرف_الزبون
(customerId
): معرف قيد الزبون لفتح جلسة بوابة فاتورة خاصة به.
رابط_الرجوع
(returnUrl
): الرابط لاعادة توجيه الزبون اليه عند الانتهاء من بوابة الفاتورة.
تُرجع رابط جلسة التحكم بالفوترة.
عملية هذا.هات_جلسات_إتمام_الشراء(): لـا_مضمون[مـصفوفة[سـندنا[جـلسة_شراء]]]
عملية هذا.هات_جلسات_إتمام_الشراء(الحد_الأقصى: صـحيح): لـا_مضمون[مـصفوفة[سـندنا[جـلسة_شراء]]]
عملية هذا.هات_جلسات_إتمام_الشراء(الحد_الأقصى: صـحيح، آخر_معرف: نـص): لـا_مضمون[مـصفوفة[سـندنا[جـلسة_شراء]]]
handler this.getCheckoutSessions(): Possible[Array[SrdRef[CheckoutSession]]]
handler this.getCheckoutSessions(limit: Int): Possible[Array[SrdRef[CheckoutSession]]]
handler this.getCheckoutSessions(limit: Int, startId: String): Possible[Array[SrdRef[CheckoutSession]]]
ترجع قائمة جلسات إتمام الشراء.
الحد_الأقصى
(limit
): الحد الأقصى للقيود المطلوب جلبها.
آخر_معرف
(startId
): معرف القيد المطلوب جلب البيانات بدءًا مما يليه.
عملية هذا.هات_جلسة_إتمام_الشراء(معرف_الجلسة: نـص): لـا_مضمون[سـندنا[جـلسة_شراء]]
handler this.getCheckoutSession(sessionId: String): Possible[SrdRef[CheckoutSession]]
ترجع جلسة إتمام الشراء ذات المعرف المعطى.
عملية هذا.أنشئ_جلسة_إتمام_شراء(معطيات: نـص): لـا_مضمون[نـص]
handler this.createCheckoutSession(parameters: String): Possible[String]
تنشئ جلسة إتمام شراء جديدة.
معطيات
(parameters
) معطيات الجلسة المطلوبة بالصيغة التالية: "customer=customerID&line_items=planID".
تُرجع معرف الجلسة المُنشأة.
عملية هذا.أنشئ_جلسة_إتمام_شراء(
العناصر: تـطبيق[نـص، صـحيح]،
رابط_النجاح: مـؤشر_محارف
): لـا_مضمون[نـص]؛
عملية هذا.أنشئ_جلسة_إتمام_شراء(
العناصر: تـطبيق[نـص، صـحيح]،
معرف_الزبون: نـص،
رابط_النجاح: مـؤشر_محارف
): لـا_مضمون[نـص]
handler this.createCheckoutSession(
items: Map[String, Int],
successUrl: CharsPtr
): Possible[String]
handler this.createCheckoutSession(
items: Map[String, Int],
customerId: String,
successUrl: CharsPtr
): Possible[String]
هاتان النسخنان من دالة أنشئ_جلسة_إتمام_شراء
تستلمان معطيات مفصلة بدل معطى خام كما في النسخة السابقة.
العناصر
(items
): تطبيق يمثل مفتاحه معرف السعر من سترايب (price ID) بينما تمثل قيمته عدد العناصر
المطلوبة.
معرف_الزبون
(customerId
): معرف قيد الزبون الذي يقوم بعملية الشراء.
رابط_النجاح
(successUrl
): الرابط الذي سيُحول إليه المستخدم بعد نجاح عملية الشراء.
تُرجع معرف الجلسة المُنشأة.
عملية هذا.هات_الاشتراكات(): لـا_مضمون[مـصفوفة[سـندنا[اشتراك]]]
عملية هذا.هات_الاشتراكات(شرط_التصفية: نـص): لـا_مضمون[مـصفوفة[سـندنا[اشتراك]]]
handler this.getSubscriptions(): Possible[Array[SrdRef[Subscription]]]
handler this.getSubscriptions(filterQuery: String): Possible[Array[SrdRef[Subscription]]]
ترجع قائمة الاشتراكات.
شرط_التصفية
(filterQuery
): تركيب يحتوي الشرط الذي تُصفى به النتائج. ستجلب الدالة القيود التي
تطابق هذا الشرط دون غيرها.
عملية هذا.هات_اشتراكا(معرف_الاشتراك: نـص): لـا_مضمون[سـندنا[اشتراك]]
handler this.getSubscription(sessionId: String): Possible[SrdRef[Subscription]]
ترجع الاشتراك ذا المعرف المعطى.
عملية هذا.أنشئ_اشتراكا(معطيات: نـص): لـا_مضمون[نـص]
handler this.createSubscription(parameters: String): Possible[String]
تنشئ اشتراكا جديدا.
معطيات
(parameters
) معطيات الاشتراك المطلوبة بالصيغة التالية: "customer=customerID&line_items=planID".
تُرجع معرف الاشتراك المُنشأ.
عملية هذا.أنشئ_اشتراكا(
العناصر: تـطبيق[نـص، صـحيح]،
معرف_الزبون: نص
): لـا_مضمون[نـص]
handler this.createSubscription(
items: Map[String, Int],
customerId: String
): Possible[String]
هذه النسخة من دالة أنشئ_اشتراكا
تستلم متعطيات مفصلة بدل معطى خام كما في النسخة السابقة.
العناصر
(items
): تطبيق يمثل مفتاحه معرف السعر من سترايب (price ID) بينما تمثل قيمته عدد العناصر
المطلوبة.
معرف_الزبون
(customerId
): معرف قيد الزبون الذي يقوم بالاشتراك.
تُرجع معرف الاشتراك المُنشأ.
عملية هذا.حدث_اشتراكا(معرف_الاشتراك: نـص، معطيات: نـص): لـا_مضمون[نـص]؛
handler this.updateSubscription(subscriptionId: String, parameters: String): Possible[String];
تحدث الاشتراك ذا المعرف المعطى.
معطيات
(parameters
) معطيات الاشتراك المطلوبة بالصيغة التالية: "customer=customerID&line_items=planID".
عملية هذا.ألغ_اشتراكا(معرف_الاشتراك: نـص): سـندنا[خـطأ]؛
handler this.cancelSubscription(subscriptionId: String): SrdRef[Error];
تلغي الاشتراك ذا المعرف المعطى.
عملية هذا.هات_طرق_الدفع(معرف_الزبون: نـص): لـا_مضمون[مـصفوفة[سـندنا[طـريقة_دفع]]]؛
handler this.getPaymentMethods(customerId: String): Possible[Array[SrdRef[PaymentMethod]]];
ترجع طرق الدفع التي يملكها الزبون ذو المعرف المعطى.
عملية هذا.هات_طريقة_دفع(معرف_طريقة_الدفع: نـص): لـا_مضمون[سـندنا[طـريقة_دفع]]؛
handler this.getPaymentMethod(paymentMethodId: String): Possible[SrdRef[PaymentMethod]];
ترجع طريقة الدفع ذات المعرف المعطى.
عملية هذا.هات_رموز_الترويج(كود: نـص): لـا_مضمون[مـصفوفة[سـندنا[رمـز_ترويج]]]؛
handler this.getPromotionCodes(code: String): Possible[Array[SrdRef[PromotionCode]]];
ترجع رموز الترويج المطابقة للكود المعطى.
الوحدة الفرعية أخـطاء
تحتوي تعريفات لرموز الأخطاء التي يمكن لمكتبة سـترايب إرجاعها.
أخـطاء._غير_موثق_
(Errors.UNAUTHENTICATED
): تُرجع عند استدعاء سترايب بمفتاح خاطئ.أخـطاء._اتصال_
(Errors.CONNECTION
): تُرجع عند فشل الاتصال بخوادم سترايب.أخـطاء._غير_متوقع_
(Errors.UNEXPECTED
): تُرجع عند استلام رد غير متوقع من سترايب.أخـطاء._غير_موجود_
(Errors.NOT_FOUND
): تُرجع عند الفشل في العثور على القيد ذي المعرف المعطى.أخـطاء._معطى_خاطئ_
(Errors.INVALID_PARAM
): تُرجع عند فشل العملية بسبب معطى غير صالح.
صنف خـطأ_معطى_خاطئ {
عرف اسم_المعطى: نـص؛
}
class InvalidParamError {
def paramName: String;
}