منبع: خرید محصول
منبع 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 | این نوع، یک شیء inappPurchase را در سرویس androidpublisher نشان میدهد. |
purchaseTimeMillis | مدت زمانی که محصول از تاریخ (اول ژانویه ۱۹۷۰) خریداری شده است، بر حسب میلیثانیه. |
purchaseState | وضعیت خرید سفارش. مقادیر ممکن عبارتند از: ۰. خریداری شده ۱. لغو شده ۲. در انتظار خرید |
consumptionState | وضعیت مصرف محصول inapp. مقادیر ممکن عبارتند از: ۰. هنوز مصرف نشده ۱. مصرف شده |
developerPayload | رشتهای مشخصشده توسط توسعهدهنده که حاوی اطلاعات تکمیلی در مورد یک سفارش است. |
orderId | شناسه سفارش مرتبط با خرید محصول inapp. |
purchaseType | نوع خرید محصول درونبرنامهای. این فیلد فقط در صورتی تنظیم میشود که این خرید با استفاده از جریان استاندارد پرداخت درونبرنامهای انجام نشده باشد. مقادیر ممکن عبارتند از: ۰. آزمایشی (یعنی از یک حساب آزمایشی لایسنس خریداری شده باشد) ۱. تبلیغاتی (یعنی با استفاده از کد تبلیغاتی خریداری شده باشد). شامل خریدهای امتیاز بازی نمیشود. ۲. پاداشی (یعنی از تماشای یک تبلیغ ویدیویی به جای پرداخت) |
acknowledgementState | وضعیت تأیید محصول inapp. مقادیر ممکن عبارتند از: ۰. هنوز تأیید نشده ۱. تأیید شده |
purchaseToken | توکن خریدی که برای شناسایی این خرید ایجاد شده است. ممکن است موجود نباشد. |
productId | ممکن است SKU محصول inapp موجود نباشد. |
quantity | تعداد مربوط به خرید محصول درونبرنامهای. در صورت عدم وجود، تعداد ۱ است. |
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 مربوط به کاربر در زمان اعطای محصول. |
refundableQuantity | مقدار واجد شرایط بازپرداخت، یعنی مقداری که بازپرداخت نشده است. این مقدار، بازپرداختهای جزئی و بازپرداختهای کامل مبتنی بر تعداد را نشان میدهد. |
روشها | |
|---|---|
| خرید یک کالای درونبرنامهای را تأیید میکند. |
| خرید یک کالای درونبرنامهای را انجام میدهد. |
| وضعیت خرید و مصرف یک کالای درونبرنامهای را بررسی میکند. |
کدهای خطا
عملیات این منبع، کدهای خطای HTTP زیر را برمیگرداند:
| کد خطا | دلیل | توضیحات | وضوح تصویر |
|---|---|---|---|
400 | invalidPurchaseState | خرید در وضعیت معتبری برای انجام عملیات درخواستی نیست. برای مثال، ممکن است بخواهید خریدی را که قبلاً انجام شده است تأیید کنید یا اشتراکی را که فعال نیست لغو کنید. | قبل از انجام عملیات، وضعیت فعلی منبع را با استفاده از Get API مربوطه بررسی کنید. مطمئن شوید که منبع در وضعیت مناسبی برای انجام عملیات قرار دارد. |
400 | invalidValue | مقدار نامعتبری در درخواست ارائه شده است. این اغلب به عنوان یک توکن خرید ناقص یا نامعتبر برگردانده میشود. | مقدار فیلد نامعتبر را در بدنه درخواست یا پارامترها بر اساس مرجع API اصلاح کنید. |
400 | productNotOwnedByUser | توکن خرید ارائه شده معتبر است، اما کاربر در حال حاضر مالک محصول نیست. این اتفاق میتواند در صورتی رخ دهد که خرید قبل از تأیید، بازپرداخت، لغو یا منقضی شده باشد. | قبل از انجام عملیات، وضعیت فعلی منبع را با استفاده از Get API مربوطه بررسی کنید. مطمئن شوید که منبع در وضعیت مناسبی برای انجام عملیات قرار دارد. |
400 | purchaseTokenMismatch | توکن خرید ارائه شده با خرید، نام بسته، شناسه اشتراک یا شناسه محصول مطابقت ندارد. | تأیید کنید که تمام جزئیات موجود در درخواست صحیح و با یکدیگر مطابقت دارند. |
400 | required | یک فیلد یا پارامتر الزامی در درخواست وجود ندارد. | برای اطمینان از وجود تمام فیلدها و پارامترهای اجباری، به مستندات API مراجعه کنید. |
400 | unsupportedIabType | این عملیات برای نوع پرداخت درونبرنامهای ارائه شده پشتیبانی نمیشود. | مطمئن شوید که متد API با نوع آیتمی که مدیریت میشود سازگار است. |
403 | userInsufficientPermission | کاربر مجوز کافی برای انجام عملیات درخواستی را ندارد. | مطمئن شوید که کاربر احراز هویت شده مجوزهای لازم را در کنسول گوگل پلی دارد. برای جزئیات بیشتر به بخش «استفاده از حساب کاربری سرویس» مراجعه کنید. |
404 | notFound | منبع مورد نظر یافت نشد. | تأیید کنید که شناسهها (مثلاً توکن خرید، نام بسته، شناسه محصول، شناسه اشتراک) صحیح باشند. |
409 | concurrentUpdate | تلاشی برای بهروزرسانی شیءای که بهطور همزمان بهروزرسانی میشود، صورت گرفته است. | درخواست را با backoff نمایی دوباره امتحان کنید. از تغییرات همزمان در همان منبع خودداری کنید. |
5xx | Generic error | خطای عمومی در سرور گوگل پلی. | درخواست خود را دوباره امتحان کنید. اگر مشکل همچنان ادامه داشت، با مدیر حساب Google Play خود تماس بگیرید یا درخواست پشتیبانی ارسال کنید. داشبورد وضعیت Play را برای هرگونه قطعی شناخته شده بررسی کنید. |