REST Resource: purchases.products

المورد: ProductPurchase

يشير مورد ProductPurchase إلى حالة شراء المستخدم لمنتج داخل التطبيق.

تمثيل JSON
{
  "kind": string,
  "purchaseTimeMillis": string,
  "purchaseState": integer,
  "consumptionState": integer,
  "developerPayload": string,
  "orderId": string,
  "purchaseType": integer,
  "acknowledgementState": integer,
  "purchaseToken": string,
  "productId": string,
  "quantity": integer,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string,
  "regionCode": string,
  "refundableQuantity": integer
}
الحقول
kind

string

يمثّل هذا النوع عنصر inappPurchase في خدمة androidpublisher.

purchaseTimeMillis

string (int64 format)

الوقت الذي تم فيه شراء المنتج، بالمللي ثانية منذ بداية الحقبة (1 يناير 1970).

purchaseState

integer

حالة الشراء للطلب. القيم المحتمَلة هي: 0. تم شراء 1. تم الإلغاء 2. في انتظار الردّ على الدعوة

consumptionState

integer

حالة استهلاك المنتج داخل التطبيق. القيم المحتمَلة هي: 0. لم يتم استهلاكها بعد 1 تم الاستهلاك

developerPayload

string

سلسلة يحدّدها المطوّر وتحتوي على معلومات تكميلية حول طلب.

orderId

string

تمثّل هذه السمة معرّف الطلب المرتبط بشراء المنتج داخل التطبيق.

purchaseType

integer

نوع عملية شراء المنتج داخل التطبيق. لا يتم ضبط هذا الحقل إلا إذا لم تتم عملية الشراء هذه باستخدام مسار الفوترة العادي داخل التطبيق. القيم المحتمَلة هي: 0. اختبار (أي تم شراؤه من حساب اختبار الترخيص) 1. الرمز الترويجي (أي تم شراؤه باستخدام رمز ترويجي) لا يشمل عمليات الشراء التي تتم باستخدام نقاط Play Points. 2. مكافأة (أي من مشاهدة إعلان فيديو بدلاً من الدفع)

acknowledgementState

integer

حالة الإقرار باستلام المنتج داخل التطبيق. القيم المحتمَلة هي: 0. لم يتمّ تأكيد استلامها بعد 1. مواضيع تمت الموافقة عليها

purchaseToken

string

الرمز المميز لعملية الشراء الذي تم إنشاؤه لتحديد عملية الشراء هذه قد لا تكون متوفّرة.

productId

string

تمثّل هذه السمة رمز التخزين التعريفي للمنتج داخل التطبيق. قد لا تكون متوفّرة.

quantity

integer

تمثّل هذه السمة كمية المنتج داخل التطبيق المرتبطة بعملية الشراء. إذا لم تكن متوفّرة، تكون الكمية 1.

obfuscatedExternalAccountId

string

تمثّل هذه السمة نسخة مشوّشة من المعرّف المرتبط بشكل فريد بحساب المستخدم في تطبيقك، ولا تظهر إلا إذا تم تحديدها باستخدام https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid عند إجراء عملية الشراء.

obfuscatedExternalProfileId

string

هو إصدار مشوّش من رقم التعريف المرتبط بشكل فريد بالملف الشخصي للمستخدم في تطبيقك، ولا يظهر إلا إذا تم تحديده باستخدام https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid عند إجراء عملية الشراء.

regionCode

string

تمثّل هذه السمة رمز منطقة الفوترة المكوّن من حرفَين حسب المعيار ISO 3166-1 alpha-2 الخاص بالمستخدم في وقت منح المنتج.

refundableQuantity

integer

الكمية المؤهَّلة لاسترداد الأموال، أي الكمية التي لم يتم ردّ الأموال المدفوعة مقابلها تعكس القيمة عمليات ردّ جزء من الأموال استنادًا إلى الكمية وعمليات ردّ الأموال بالكامل.

الطُرق

acknowledge

تُقرّ هذه الطريقة بعملية شراء سلعة داخل التطبيق.

consume

تستهلك عملية شراء لمنتج داخل التطبيق.

get

تتحقّق هذه الطريقة من حالة شراء واستهلاك منتج داخل التطبيق.

رموز الخطأ

تعرض عمليات هذا المرجع رموز خطأ 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 لمعرفة أي انقطاعات معروفة في الخدمة.