مرجع API پرداخت درون‌برنامه‌ای مایکت

شما اینجا هستید:

در این نوشته اطلاعات کامل ورودی‌ها و خروجی‌های متدهای API خرید درون‌برنامه‌ای آورده شده است

کدهای بازگشتی از سرور

جدول زیر لیست تمام کدهایی است که مایکت به برنامه شما می‌فرستد. تمام کدهای پاسخ یک عدد هستند که مایکت در Bundleی که به عنوان پاسخ برمی‌گرداند در کلید RESPONSE_CODE آن را قرار می‌دهد. برنامه شما باید تمام این کدها را اداره کند. می‌توانید به برنامه مثال TrivialDrive نگاهی بیاندازید که این کار در آن شده است.

کد بازگشتیمقدارتوضیحات
BILLING_RESPONSE_RESULT_OK0با موفقیت انجام شد
BILLING_RESPONSE_RESULT_USER_CANCELED1کاربر عملیات را لغو کرد
BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE3خرید درون‌برنامه‌ای پشتیبانی نمی‌شود
BILLING_RESPONSE_RESULT_ITEM_UNAVAILABLE4محصول مورد نظر برای فروش موجود نمی‌باشد
BILLING_RESPONSE_RESULT_DEVELOPER_ERROR5پارامترهای ارسال شده به API درست نیستند
BILLING_RESPONSE_RESULT_ERROR6خطا در انجام عملیات. شامل عدم دسترسی به اینترنت نیز می‌شود
BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED7خطا در خرید، هنگامی که کاربر محصولی که مالک‌ش است را می‌خواهد دوباره بخرد
BILLING_RESPONSE_RESULT_ITEM_NOT_OWNED8خطا در مصرف، هنگامی که کاربر قصد مصرف محصولی را دارد که نخریده است
خلاصه ای از کدهای پاسخ در *خرید درون‌برنامه‌ای*

مرجع API

API خرید درون‌برنامه‌ای در فایل IInAppBillingService.aidl تعریف شده است، که در برنامه نمونه TrivialDrive وجود دارد.

متد getSkuDetails

این متد جزئیات یک لیست از محصولات را با گرفتن شناسه آنها برمی‌گرداند. درBundle دریافتی از مایکت، نتایج کوئری در یک ArrayList که کلید آن DETAILS_LIST است ذخیره می‌شوند. هر رشته در این لیست حاوی اطلاعات محصول در قالب JSON است. فیلدهای رشته JSON در جدول زیر توضیح داده شده‌اند.

کلیدتوضیحات
productIdشناسه محصول که SKU نیز نام دارد
typeمقدار «inapp» برای محصولات مصرف شدنی و نشدنی، و مقدار «subs» برای اشتراک. از آنجایی که در حال حاضر اشتراک پیشتیبانی نمی‌شود تنها مقدار درست این فیلد «inapp» می‌باشد.
priceقیمت محصول به ریال
titleعنوان محصول
descriptionتوضیحات درباره محصول
شرح فیلدهای JSON بازگشتی با فراخوانی متد getSkuDetails

متد getBuyIntent

این متد یک عدد با کلید RESPONSE_CODE و یک PendingIntent برای آغاز خرید محصول با کلید BUY_INTENT را در یک Bundle برمی‌گرداند. مایکت بعد از دریافت PendingIntent واسط کاربری خرید را به کاربر نشان می‌دهد، و نتیجه‌ی کار را به متد onActivityResult در Activity صدا زننده برمی‌گرداند. در Intentی که به onActivityResult داده می‌شود داده‌های خرید وجود دارند. جزئیات این داده‌ها در جدول زیر ذکر شده‌اند

کلیدتوضیحات
RESPONSE_CODEاگر 0 باشد خرید موفقیت‌آمیز بوده، در غیر اینصورت خطایی رخ داده.
INAPP_PURCHASE_DATAیک رشته از نوع JSON که حاوی جزئیات سفارش خرید می‌باشد. برای توضیحات فیلدهای این JSON به جدول ۴ مراجعه کنید.
INAPP_DATA_SIGNATUREرشته‌ای که حاوی امضای دیجیتال رشته بالایی است، که با کلید خصوصی توسعه دهنده امضا شده است. امضای دیجیتال داده‌ها از RSASSA-PKCS1-v1_5 استفاده می‌کند.
داده‌های بازگشتی بعد از یک درخواست خرید*

جدول زیر فیلدهای JSON حاوی جزئیات یک سفارش را توصیف می‌کند.

فیلدتوضیحات
orderIdشناسه منحصر بفرد تراکنش
packageNameنام بسته برنامه‌ای که خرید از آن انجام شده
productIdشناسه محصول؛ هر محصول شناسه‌ای دارد که شما باید آن را در پنل توسعه‌دهندگان مشخص کنید.
purchaseTimeاین فیلد زمان خرید را بر حسب میلی ثانیه نمایش می‌دهد. (از تاریخ 1 ژانویه 1970)
purchaseStateوضعیت خرید سفارش (در حال حاضر فقط یک مقدار دارد):
0: خریده شده
developerPayloadرشته‌ای که توسعه‌دهنده ساخته و حاوی اطلاعات کاملی درباره خرید است. شما می‌توانید این فیلد را هنگامی که یک درخواست getBuyIntent می‌کنید ارسال نمایید.
purchaseTokenیک شناسه که برای هر جفت محصول و کاربر داده شده، یک خرید را مشخص می‌کند.
شرح فیلدهای JSON برای INAPP_PURCHASE_DATA

متد getPurchases

این متد محصولاتی که در حال حاضر کاربر خریداری کرده ولی هنوز مصرف نکرده را برمی‌گرداند. جدول زیر مقادیری که در Bundle بازگشتی وجود دارند را نشان می‌دهد.

کلیدتوضیحات
RESPONSE_CODE0 اگر درخواست موفقیت‌آمیز باشد، در غیر اینصورت خطایی رخ داده
INAPP_PURCHASE_ITEM_LISTArrayList حاوی لیستی از شناسه محصولات
INAPP_PURCHASE_DATA_LISTArrayList حاوی جزئیات خریدها. جدول ۴ را برای لیستی از جزئیات ذخیره شده در هر INAPP_PURCHASE_DATA این لیست ببینید.
INAPP_DATA_SIGNATURE_LISTArrayList حاوی امضای دیجیتال خریدها
INAPP_CONTINUATION_TOKENرشته‌ای حاوی یک شناسه برای بازیابی مجموعه محصولات بعدی که این کاربر مالک آنهاست. این رشته زمانی از سمت مایکت مقدار می‌گیرد که تعداد خریدهای این کاربر خیلی زیاد باشد (مثلا بیشتر از ۷۰۰). وقتی که این شناسه در پاسخ باشد، شما باید یک بار دیگر getPurchases را فراخوانی کنید و این شناسه را به آن بدهید. این فراخوانی به شما ادامه لیست خرید را برمی‌گرداند و همینطور احتمالا یک شناسه دیگر. برای مشاهده لیست تمام خریدها باید این کار تا زمانی ادامه دهید که در پاسخ مایکت برای این کلید مقداری نباشد.
پاسخ‌های دریافتی از یک درخواست* getPurchases
Was this article helpful?
Dislike 0