واجهة برمجة تطبيقات مطوّر برامج Google Play تتضمن الآن ميزات إضافية لإعداد التقارير عن المعاملات من نظام فوترة بديل أو العروض الترويجية الخارجية. يصف هذا الدليل طريقة الإبلاغ عن بدائل لمعاملات الفوترة أو العروض الترويجية الخارجية
هناك بعض المكونات التي قد تكون ضرورية للتعامل مع داخل التطبيق عمليات الشراء من الخلفية. لإنشاء الواجهة الخلفية، عليك إعداد الخلفية. كما هو موضح في إعداد واجهة برمجة التطبيقات Google Play Developer API. بالنسبة جميع وظائف الواجهة الخلفية للمطوِّر التي لا تقتصر على نظام الفوترة البديل أو واجهات برمجة تطبيقات للعروض الترويجية الخارجية، فإن التعليمات من تنطبق مستندات نظام الفوترة في Google Play.
إبلاغ Google Play بالمعاملات الخارجية الجديدة
الدمج مع Externaltransactions APIs
من أجل الإبلاغ عن المعاملات التي تتم خارج نظام الفوترة في Google Play في
البلدان المتاحة، بما في ذلك المعاملات التي تبلغ قيمتها 0 دولار أمريكي الناتجة من الفترة التجريبية المجانية
عمليات الشراء. المعاملات المتعلّقة بأنظمة الفوترة البديلة أو أنظمة العروض الترويجية الخارجية
أن يتم البدء به فقط والإبلاغ عنه لبلدان المستخدمين المؤهّلة على النحو المسموح به
ضمن نظام الفوترة البديل أو
للعروض الترويجية الخارجية، وإلا سيتم
مرفوض. ينطبق ذلك على جميع المعاملات، بما في ذلك عمليات الشراء الجديدة وعمليات التجديد
عمليات إضافة الرصيد والترقيات والرجوع إلى الإصدارات السابقة وغير ذلك
إعداد تقارير المعاملات الخارجية
عليك الاتصال برقم "Externaltransactions API
" للإبلاغ عن معاملة خارجية.
بعد السماح بالدفع من خلال نظام الفوترة البديل أو
نظام العروض الخارجية. وينطبق ذلك على جميع المعاملات، بما في ذلك المعاملات الأوّلية.
والرسوم وعمليات التجديد وعمليات ردّ الأموال وغيرها يجب أن تكون جميع المعاملات
والإبلاغ عنه خلال 24 ساعة من إجراء المعاملة.
يتم إعداد تقارير لكل معاملة خارجية باستخدام معرِّف معاملة خارجي. بالنسبة عمليات الشراء المتكررة (مثل الاشتراكات القابلة للتجديد التلقائي)، يجب إرسال معرِّف المعاملة الخارجي المرتبط بالمعاملة الأولى في العملية عملية الشراء كمعلمة لأي معاملات لاحقة، بما في ذلك عمليات ردّ الأموال. هذا النمط يسجل سلسلة المعاملات لعملية الشراء هذه. إرسال رف خارجي جديد معرِّف المعاملة لعمليات الشراء عند تغيير المنتج (مثل ترقية أو إلى إصدار سابق)، أو إذا تم إلغاء المعاملة المتكرّرة أو انتهت صلاحيتها شراء المنتج مرة أخرى لاحقًا. يجب عدم تضمين أي معلومات تحدّد الهوية الشخصية. أو معلومات ملكية أو معلومات سرية كجزء من هذه المعلومات معرِّف المعاملة.
الإبلاغ عن عملية شراء جديدة
في كل مرة تتم فيها عملية شراء جديدة في نظام الفوترة البديل
أو نظام العروض الخارجية، فإن الاتصال بواجهة برمجة تطبيقات Externaltransactions
مطلوبة. وعليك تقديم معلومات فريدة عن عمليات الشراء الجديدة هذه.
externalTransactionId
مرتبط بعملية الشراء في الخلفية كطلب
. ولا يمكن إعادة استخدام externalTransactionId
هذا في التطبيقات نفسها.
رقم تعريف الحزمة.
قيمة externalTransactionToken
التي حصل عليها التطبيق من خلال
UserChoiceBillingListener
، AlternativeBillingOnlyReportingDetailsListener
،
أو ExternalOfferReportingDetailsListener
مطلوب أيضًا كجزء من
نص الطلب لعمليات الشراء لمرة واحدة والمعاملات الأولى في
عملية شراء متكررة (مثل الاشتراك) في كلتا الحالتين، يسمى هذا
معاملة أولية بعد المعاملة الأولية،
لم يعد externalTransactionToken
ضروريًا، ويمكنك الإبلاغ
للمعاملات (مثل تجديد الاشتراكات) من خلال توفير طريقة جديدة فريدة
externalTransactionId
الاطّلاع على مقالة الإبلاغ عن المعاملات اللاحقة لعملية شراء
لمزيد من التفاصيل حول كيفية إعداد تقارير عن المعاملات اللاحقة.
مثال:
- تضبط مطوّر البرامج نظام فوترة بديلاً ويفعّلها في تطبيقه.
- المستخدم 1 موجود في كوريا الجنوبية، وهي بلد تتوفّر فيه الخدمة، ويحاول الشراء
product1
مقابل 12634.10 وون كوري جنوبي في الشهر مع عرض لمدة شهر تجريبي مجاني. - يبدأ التطبيق مسار الشراء باستخدام
ProductDetails
لـ "product1
". والعرض الذي اختاره المستخدم. - يختار المستخدم 1 نظام الفوترة البديل للمطوِّر.
- يتلقى
UserChoiceBillingListener
القيمةmy_token
باعتبارهاexternalTransactionToken
- بعد ذلك، يرسل المطوِّر المعلومات ذات الصلة إلى الواجهة الخلفية
(القيمة
externalTransactionToken
والمنتجات التي يتم شراؤها) بعد ذلك، بدء مسار الشراء لخدمة "product1
" في نظام الفوترة البديل يتم تعيين معرِّف معاملة فريد لهذه المعاملة من جانب المطوّر. المُستخدَم لإبلاغ Google Play بذلك: 123-456-789. معرِّف المعاملة مطلوبة، حتى إذا كان المستخدم يحصل على إصدار تجريبي مجاني. - بعد حدوث إجراء عملية الشراء في نظام الفوترة البديل أبلغنا المطوّر بالمعاملة إلى Google Play من خلال الطلب التالي. يتم تسجيله على أنّه معاملة قيمتها صفر دولار في البداية لأنه يحصل على شهر مجاني.
POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=123-456-789
Body
{
"originalPreTaxAmount" : {
"priceMicros": "0",
"currency": "KRW"
},
"originalTaxAmount" : {
"priceMicros": "0",
"currency": "KRW"
},
"transactionTime" : "2022-02-22T12:45:00Z",
"recurringTransaction" : {
"externalTransactionToken": "my_token",
"externalSubscription" {
"subscriptionType": "RECURRING"
}
},
"userTaxAddress" : {
"regionCode": "KR"
}
}
إذا كنت تجري معاملة مع مستخدم مقيم في الهند حيث تختلف الضرائب حسب المنطقة الإدارية (مثل الولاية أو المقاطعة)، فاحرص على تضمين ضمن userTaxAddress. ارجع إلى قائمة السلاسل المحددة مسبقًا في الدليل المرجعي لواجهة برمجة التطبيقات للمناطق الإدارية ذات الصلة.
POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=123-456-789
Body
{
"originalPreTaxAmount" : {
"priceMicros": "0",
"currency": "INR"
},
"originalTaxAmount" : {
"priceMicros": "0",
"currency": "INR"
},
"transactionTime" : "2023-11-01T12:45:00Z",
"recurringTransaction" : {
"externalTransactionToken": "my_token",
"externalSubscription" {
"subscriptionType": "RECURRING"
}
},
"userTaxAddress" : {
# Tax varies in India based on state, so include that information in
# administrativeArea
"regionCode": "IN"
"administrativeArea": "KERALA"
}
}
الإبلاغ عن المعاملات اللاحقة لعملية شراء
وفي بعض الحالات، هناك أكثر من دفعة واحدة مرتبطة بالحساب
عملية شراء خارجية (على سبيل المثال، عمليات تجديد الاشتراك أو إضافة رصيد إلى خطة الدفع المُسبَق).
يمكنك إعداد تقارير عن هذه المعاملات اللاحقة باستخدام واجهة برمجة التطبيقات نفسها في
Externaltransactions
كما هو موضّح في مقالة الإبلاغ عن عملية شراء جديدة،
externalTransactionToken
ليس ضروريًا للمعاملات اللاحقة. بدلاً من ذلك،
يتم إرسال externalTransactionId
فريدة جديدة كمَعلمة طلب بحث لكل
معاملة تجديد أو إضافة رصيد، مع تضمين معرّف المعاملة الأولية
في الحقل initialExternalTransactionId
.
باتباع المثال السابق:
- يتم التجديد الأول للمستخدم 1 في نظام الفوترة البديل. القيمة الأولية معرِّف المعاملة كان 123-456-789.
- يُبلغ المطوّر عن تكرار المعاملة في مَعلمة طلب البحث عن عنوان URL.
كمعرّف المعاملة الخارجي لهذه المعاملة الجديدة، مع الإشارة إلى
معرِّف المعاملة الخارجية للمعاملة الأولية
الحقل "
initialExternalTransactionId
".
مثال على الطلب:
POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=abc-def-ghi
Body
{
"originalPreTaxAmount" : {
"priceMicros": "12634000000",
"currency": "KRW"
},
"originalTaxAmount" : {
"priceMicros": "1263000000",
"currency": "KRW"
},
"transactionTime" : "2022-02-22T12:45:00Z",
"recurringTransaction" : {
"initialExternalTransactionId": "123-456-789",
"externalSubscription" {
"subscriptionType": "RECURRING"
}
},
"userTaxAddress" : {
"regionCode": "KR"
}
}
الإبلاغ عن ترقية أو الرجوع إلى إصدار سابق
للإبلاغ عن ترقية أو الرجوع إلى إصدار سابق عندما يمتلك المستخدم اشتراكًا في
نظام فوترة بديل، أي أنك تستخدم نقطة النهاية نفسها وتعمل في
Externaltransactions
واجهة برمجة التطبيقات، ويتم إرسال externalTransactionToken
الذي
المقدَّمة إلى التطبيق لإجراء معاملة الترقية أو الرجوع إلى إصدار سابق. يعمل هذا الإجراء
طريقة مماثلة للإبلاغ عن عملية شراء جديدة
نقل البيانات من إعداد التقارير اليدوي لمعاملات نظام الفوترة البديل
لنقل الاشتراكات النشطة التي بدأت أثناء تقديم اشتراكات بديلة
الفوترة بدون إعداد التقارير التلقائية، يمكنك إنشاء معاملة جديدة بدون تكلفة باستخدام
الحقل migratedTransactionProgram
بدلاً من تحديد
initialExternalTransactionId
أو externalTransactionToken
. ضبط
transactionTime
إلى الوقت الذي اشترك فيه المستخدم في البداية في كل اشتراك نشط
اشتراكك. بعد ذلك، يمكنك الإبلاغ عن كل معاملة لاحقة لهذه
الاشتراكات كالمعتاد من خلال واجهات برمجة التطبيقات، مع توفير
تم استخدام initialExternalTransactionId
أعلاه لإنشاء معاملات التجديد.
وبعد نقل الاشتراك، لن يكون عليك الإبلاغ يدويًا.
المعاملات اللاحقة للاشتراك، بشرط أن تكون قيد المعالجة
التي يتم الإبلاغ عنها من خلال الطرق الآلية الموضحة في هذه الصفحة.
أثناء نقل الاشتراكات، عليك مراعاة حدود الحصص المفروضة وضمان ألا يتسبب نقل البيانات في انقطاع الحصة. إذا احتاجت العديد من الاشتراكات التي سيتم نقلها، أو انشرها خلال عدة أيام أو اطلب زيادة من الحصة .
لا يمكن استخدام الحقل migratedTransactionProgram
إلا عند نقل البيانات من
إعداد التقارير اليدوية. سيتم إيقافه نهائيًا بعد إيقاف إعداد التقارير اليدوية.
مثال على الطلب:
# Note that the externalTransactionId specified here will used to report subsequent
# transactions.
POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=abc-def-ghi
Body
{
# Be sure to set the price to 0 for this transaction since it does not reflect
# an actual subscription renewal.
"originalPreTaxAmount" : {
"priceMicros": "0",
"currency": "KRW"
},
"originalTaxAmount" : {
"priceMicros": "0",
"currency": "KRW"
},
# The transaction time should be set to when the user signed up for this
# subscription.
"transactionTime" : "2022-02-22T12:45:00Z",
"recurringTransaction" : {
"migratedTransactionProgram": "USER_CHOICE_BILLING",
"externalSubscription" {
"subscriptionType": "RECURRING"
}
},
"userTaxAddress" : {
"regionCode": "KR"
}
}
الإبلاغ عن برامج شركاء Play
يعمل المطوّرون المشارِكون في برامج الشركاء مثل
يجب أن يوفّر برنامج Play Media Experience
transaction_program_code
عند إعداد تقارير عن المعاملات الخارجية إذا كنت
كمطوّر مؤهّل، يمكنك التواصل مع مدير تطوير الأعمال
معلومات حول كيفية تعيين هذا الحقل.
الإبلاغ عن عمليات ردّ الأموال المدفوعة في عمليات الشراء على Google Play
الدمج مع Externaltransactions
API للإبلاغ عن المعاملات التي تم ردّ أموالها
المستخدمين خارج نظام الفوترة في Google Play ليتمكّن Play من التعرّف بشكل صحيح على
تم ردّ الأموال المدفوعة في المعاملة، عليك تضمين المبلغ
externalTransactionId
مقابل المعاملة التي تم الإبلاغ عنها سابقًا كجزء من
مَعلمات عناوين URL
عند الإبلاغ عن ردّ أموال شراء الاشتراكات، يُرجى الرجوع إلى
externalTransactionId
للتكرار المحدد للاشتراك الذي يبلغ
يتم استرداده.
مثال: لنفترض أنّ الاشتراك يتضمّن المعاملات التالية:
- معاملة أولية باستخدام معرِّف معاملة خارجي ABC.1234-5678-9012-34567
- المعاملة المتكرّرة الأولى بمعرِّف معاملة خارجية ABC.1234-5678-9012-34567..0
- المعاملة الثانية المتكرّرة بمعرِّف معاملة خارجية ABC.1234-5678-9012-34567..1
للإبلاغ عن ردّ أموال جميع المعاملات المرتبطة بالاشتراك، عليك إجراء ثلاثة طلبات منفصلة لاسترداد الأموال: واحد للمعاملة الأولية واثنان للمعاملات اللاحقة.
تقبل هذه الطريقة كلاً من ردّ الأموال بالكامل. (حيث يكون المبلغ هو المبلغ نفسه الذي دفعه المستخدم في الخارجي الأصلي ) وردّ جزء من الأموال (حيث يكون المبلغ أقل مما دفعه المستخدم في البطاقة الخارجية الأصلية معاملة). بالنسبة إلى عمليات ردّ جزء من الأموال، عليك تحديد المبلغ قبل احتساب الضريبة تم استرداده.
حصص واجهة برمجة التطبيقات
تخضع واجهة برمجة التطبيقات Externaltransactions
للحصص اليومية لواجهة برمجة التطبيقات.
لجميع الطلبات، تمامًا مثل أي نقطة نهاية أخرى في Google Play Developer API.
بالإضافة إلى ذلك، تضم واجهة برمجة التطبيقات Externaltransactions
API 1,200 طلب في الدقيقة
(QPM) الحد المفروض على المكالمات إلى Externaltransactions.createexternaltransaction
أو
Externaltransactions.refundexternaltransaction
المكالمات إلى
لا يتم احتساب Externaltransactions.getexternaltransaction
ضمن 1,200 QPM
الحد.