برای چک کردن پرداختهای درونبرنامهای با سرور مایکت، جهت اطمینان از وضعیت آنها و جلوگیری از تقلب در خرید درونبرنامهای، لازم است که از طریق سرور خود به سرور مایکت متصل شوید. شما باید سرویس زیر را فراخوانی نمایید:
[POST] [Header: X-Access-Token] https://developer.myket.ir/api/partners/applications/{PACKAGE_NAME}/purchases/products/{SKU_ID}/verify { tokenId: {TOKEN} }
احراز هویت
برای استفاده از سرویس زیر باید کلید X-Access-Token را از پنل توسعهدهندگان بخش محصولات درون برنامهای برنامه مورد نظر همانند تصویر زیر دریافت نمایید و به عنوان Header در سرویس خود قرار دهید. به عنوان مثال:
X-Access-Token: 650e0714-a4348-v475-a40-3f3ec5fcf001
ورودی
در سرویس صحتسنجی خریدهای درونبرنامهای مایکت، پارامترهای زیر را باید با مقادیر مناسب جایگزین نمایید:
- پارامتر {PACKAGE_NAME} برابر نام پکیج برنامه شماست: مثلا org.medrik.roosterwars
- پارامتر {SKU_ID} برابر نام محصول درونبرنامهای شما است: مثلا GEM2
- پارامتر {TOKEN} برابر توکن خرید درونبرنامهای است: مثلا 12345678
خروجی
در صورت موفقیتآمیز بودن عملیات، اطلاعات زیر به شما برگردانده میشود:
فیلد purchaseState موفق بودن خرید درونبرنامهای را مشخص میکند: 0 به معنای خرید موفق و 1 به معنای خرید ناموفق است.
فیلد purchaseTime زمان انجام تراکنش خرید درونبرنامهای است. این زمان بر اساس TimeStamp است (برای کسب اطلاعات به http://www.epochconverter.com مراجعه کنید).
فیلد kind نوع خرید درونبرنامهای را مشخص می کند، مثلا androidpublisher#productPurchase
فیلد developerPayload رشتهای است که در زمان شروع خرید درونبرنامهای، از برنامه به مایکت ارسال شده است: مثلا FC002E51C0000058970ED045924F233
فیلد consumptionState در رابطه به مصرفشدنی بودن محصول است. به طور پیشفرض این فیلد برابر 0 است، و برای محصولات درونبرنامهای مصرفنشدنی (مانند حذف تبلیغات در نرمافزار) برابر 0 خواهد ماند و اما برای محصولات درونبرنامهای مصرفشدنی (مانند سکه یا سنگ یا الماس) برابر 1 میشود که نشان میدهد محصول مصرف شده است.
نمونهٔ خروجی موفق
به عنوان نمونهٔ خروجی به صورت زیر خواهد بود:
{ "kind": "androidpublisher#productPurchase", "purchaseTime": 1492839267000, "developerPayload": "", "purchaseState": 0, "consumptionState": 1 }
نمونهٔ خروجی ناموفق
در صورتی که درخواست با خطا همراه باشد، خروجی مشابه زیر خواهد بود:
HttpStatusCode: 500 { "code": 500, "messageCode": "InternalError", "translatedMessage": "خطایی رخ داده است." }