- المورد: ProductPurchaseV2
- PurchaseStateContext
- PurchaseState
- TestPurchaseContext
- FopType
- ProductLineItem
- ProductOfferDetails
- RentOfferDetails
- ConsumptionState
- AcknowledgementState
- الطُرق
المَرجِع: ProductPurchaseV2
يشير مورد ProductPurchaseV2 إلى حالة شراء المستخدم لمنتج داخل التطبيق.
| تمثيل JSON |
|---|
{ "productLineItem": [ { object ( |
| الحقول | |
|---|---|
productLineItem[] |
يحتوي على معلومات على مستوى السلعة لـ ProductPurchaseV2. |
kind |
يمثّل هذا النوع عنصر ProductPurchaseV2 في خدمة androidpublisher. |
purchaseStateContext |
معلومات عن حالة عملية الشراء |
testPurchaseContext |
معلومات ذات صلة بعمليات الشراء التجريبية سيتم ضبط هذا الخيار لعمليات الشراء التجريبية فقط. |
orderId |
تمثّل هذه السمة معرّف الطلب المرتبط بشراء المنتج داخل التطبيق. قد لا يتم ضبطها إذا لم يكن هناك طلب مرتبط بعملية الشراء. |
obfuscatedExternalAccountId |
تمثّل هذه السمة نسخة مشوّشة من المعرّف المرتبط بشكل فريد بحساب المستخدم في تطبيقك، ولا تظهر إلا إذا تم تحديدها باستخدام https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid عند إجراء عملية الشراء. |
obfuscatedExternalProfileId |
هو إصدار مشوّش من رقم التعريف المرتبط بشكل فريد بالملف الشخصي للمستخدم في تطبيقك، ولا يظهر إلا إذا تم تحديده باستخدام https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid عند إجراء عملية الشراء. |
regionCode |
تمثّل هذه السمة رمز منطقة الفوترة المكوّن من حرفَين حسب المعيار ISO 3166-1 alpha-2 الخاص بالمستخدم في وقت منح المنتج. |
purchaseCompletionTime |
الوقت الذي تمت فيه عملية الشراء بنجاح، أي عندما تم تغيير PurchaseState إلى PURCHASED لن يظهر هذا الحقل إلا بعد اكتمال عملية الدفع. على سبيل المثال، إذا بدأ المستخدم معاملة معلّقة (https://developer.android.com/google/play/billing/integrate#pending)، لن يتم ملء هذا الحقل إلى أن يكمل المستخدم بنجاح الخطوات المطلوبة لإكمال المعاملة. يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: |
acknowledgementState |
النتائج فقط. حالة إقرار عملية الشراء. |
PurchaseStateContext
سياق حول حالة الشراء
| تمثيل JSON |
|---|
{
"purchaseState": enum ( |
| الحقول | |
|---|---|
purchaseState |
النتائج فقط. تمثّل هذه السمة حالة عملية الشراء. |
PurchaseState
حالات الشراء المحتملة
| عمليات التعداد | |
|---|---|
PURCHASE_STATE_UNSPECIFIED |
لم يتم تحديد حالة عملية الشراء. يجب عدم ضبط هذه القيمة أبدًا. |
PURCHASED |
تمت عملية الشراء بنجاح. |
CANCELLED |
تم إلغاء عملية الشراء. |
PENDING |
عملية الشراء في انتظار المراجعة ولم تكتمل بعد. لمزيد من المعلومات حول التعامل مع عمليات الشراء المعلّقة، يُرجى الاطّلاع على https://developer.android.com/google/play/billing/integrate#pending. |
TestPurchaseContext
معلومات عن عملية شراء تجريبية
| تمثيل JSON |
|---|
{
"fopType": enum ( |
| الحقول | |
|---|---|
fopType |
نوع طريقة الدفع لعملية الشراء الاختبارية. |
FopType
أنواع fop المحتملة
| عمليات التعداد | |
|---|---|
FOP_TYPE_UNSPECIFIED |
لم يتم تحديد نوع طريقة الدفع. يجب عدم ضبط هذه القيمة مطلقًا. |
TEST |
تم إجراء عملية الشراء باستخدام بطاقة تجريبية. |
ProductLineItem
يحتوي على معلومات على مستوى السلعة لـ ProductPurchaseV2.
| تمثيل JSON |
|---|
{
"productId": string,
"productOfferDetails": {
object ( |
| الحقول | |
|---|---|
productId |
معرّف المنتج الذي تم شراؤه (على سبيل المثال، monthly001). |
productOfferDetails |
تمثّل هذه السمة تفاصيل العرض الخاص بهذا المنتج. |
ProductOfferDetails
معلومات تفاصيل العرض الترويجي ذات الصلة بسطر شراء المنتج
| تمثيل JSON |
|---|
{ "offerTags": [ string ], "offerId": string, "purchaseOptionId": string, "rentOfferDetails": { object ( |
| الحقول | |
|---|---|
offerTags[] |
علامات العروض الترويجية الأخيرة المرتبطة بالعرض الترويجي وتتضمّن العلامات المكتسَبة من خيار الشراء. |
offerId |
معرّف العرض الترويجي. يتم عرضها فقط للعروض الترويجية. |
purchaseOptionId |
معرّف خيار الشراء |
rentOfferDetails |
تعرض هذه السمة تفاصيل حول عروض الاستئجار. سيتم ضبط هذا الخيار لبنود الإيجار فقط. |
offerToken |
الرمز المميّز للعرض الترويجي لكل معاملة المستخدَم لإنشاء عنصر سطر الشراء هذا. |
quantity |
تمثّل هذه السمة كمية المنتج داخل التطبيق المرتبطة بعملية الشراء. |
refundableQuantity |
الكمية المؤهَّلة لاسترداد الأموال، أي الكمية التي لم يتم ردّ الأموال المدفوعة مقابلها تعكس القيمة عمليات ردّ جزء من الأموال استنادًا إلى الكمية وعمليات ردّ الأموال بالكامل. |
consumptionState |
النتائج فقط. تمثّل هذه السمة حالة الاستهلاك لعملية الشراء. |
RentOfferDetails
لا يتضمّن هذا النوع أي حقول.
معلومات تفاصيل العرض الترويجي المرتبط بسطر في مستند إيجار
ConsumptionState
حالات الاستهلاك المحتملة
| عمليات التعداد | |
|---|---|
CONSUMPTION_STATE_UNSPECIFIED |
لم يتم تحديد حالة الاستهلاك. يجب عدم ضبط هذه القيمة مطلقًا. |
CONSUMPTION_STATE_YET_TO_BE_CONSUMED |
لم يتم استهلاكها بعد. |
CONSUMPTION_STATE_CONSUMED |
تم استهلاكها من قبل. |
AcknowledgementState
حالة إقرار استلام المنتج الذي يتم تحصيل سعره مرة واحدة.
| عمليات التعداد | |
|---|---|
ACKNOWLEDGEMENT_STATE_UNSPECIFIED |
حالة الإشعار بالاستلام غير محدَّدة. |
ACKNOWLEDGEMENT_STATE_PENDING |
لم يتم تأكيد عملية الشراء بعد. |
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED |
تم التصديق على عملية الشراء. |
الطُرق |
|
|---|---|
|
تتحقّق هذه الطريقة من حالة شراء واستهلاك منتج داخل التطبيق. |
رموز الخطأ
تعرض عمليات هذا المرجع رموز خطأ HTTP التالية:
| رمز الخطأ | السبب | الوصف | الدقة |
|---|---|---|---|
400 |
invalidPurchaseState |
عملية الشراء ليست في حالة صالحة لتنفيذ العملية المطلوبة. على سبيل المثال، قد تحاول تأكيد عملية شراء تم استهلاكها من قبل أو إلغاء اشتراك غير نشط. | تحقَّق من الحالة الحالية للمرجع باستخدام واجهة برمجة التطبيقات Get المناسبة قبل محاولة إجراء العملية. تأكَّد من أنّ المرجع في حالة مناسبة للإجراء. |
400 |
invalidValue |
تم إدخال قيمة غير صالحة في الطلب. يتم عرض هذا الرمز غالبًا عند تقديم رمز مميّز غير صالح أو غير مكتمل لعملية الشراء. | صحِّح قيمة الحقل غير الصالحة في نص الطلب أو المَعلمات استنادًا إلى مرجع واجهة برمجة التطبيقات. |
400 |
productNotOwnedByUser |
رمز الشراء المقدَّم صالح، ولكن المستخدم لا يملك المنتج حاليًا. يمكن أن يحدث ذلك إذا تم ردّ الأموال المدفوعة مقابل عملية الشراء أو تم إبطالها أو انتهت صلاحيتها قبل تأكيدها. | تحقَّق من الحالة الحالية للمرجع باستخدام واجهة برمجة التطبيقات Get المناسبة قبل محاولة إجراء العملية. تأكَّد من أنّ المرجع في حالة مناسبة للإجراء. |
400 |
purchaseTokenMismatch |
لا يتطابق رمز الشراء المقدَّم مع عملية الشراء أو اسم الحزمة أو رقم تعريف الاشتراك أو رقم تعريف المنتج. | تأكَّد من صحة جميع التفاصيل الواردة في الطلب ومن تطابقها مع بعضها البعض. |
400 |
required |
لم يتم إدخال حقل أو مَعلمة مطلوبة في الطلب. | راجِع مستندات واجهة برمجة التطبيقات للتأكّد من تضمين جميع الحقول والمَعلمات الإلزامية. |
400 |
unsupportedIabType |
لا تتوافق العملية مع نوع الفوترة داخل التطبيق المحدّد. | تأكَّد من أنّ طريقة واجهة برمجة التطبيقات متوافقة مع نوع العنصر الذي تتم إدارته. |
403 |
userInsufficientPermission |
لا يملك المستخدم الإذن الكافي لتنفيذ العملية المطلوبة. | تأكَّد من أنّ المستخدم المصادَق عليه لديه الأذونات اللازمة في Google Play Console. لمزيد من التفاصيل، يُرجى الاطّلاع على استخدام حساب خدمة. |
404 |
notFound |
تعذَّر العثور على المورد المطلوب. | تأكَّد من صحة المعرّفات (مثل رمز الشراء أو اسم الحزمة أو معرّف المنتج أو معرّف الاشتراك). |
409 |
concurrentUpdate |
تمت محاولة تعديل عنصر يتم تعديله في الوقت نفسه. | أعِد محاولة إرسال الطلب باستخدام خوارزمية الرقود الأسي الثنائي. تجنَّب إجراء تعديلات متزامنة على المرجع نفسه. |
5xx |
Generic error |
حدث خطأ عام في خادم Google Play. | أعِد محاولة إرسال طلبك. إذا استمرت المشكلة، يُرجى التواصل مع مدير حسابك على Google Play أو إرسال طلب دعم. ننصحك بالاطّلاع على لوحة البيانات الخاصة بحالة Play لمعرفة أي انقطاع معروف في الخدمة. |