پایگاه دانش مایکت

View Categories

استفاده از API صحت سنجی خرید

 برای چک کردن پرداخت‌های درون‌برنامه‌ای با سرور مایکت، جهت اطمینان از وضعیت آن‌ها و جلوگیری از تقلب در خرید درون‌برنامه‌ای، لازم است که از طریق سرور خود به سرور مایکت متصل شوید. شما باید سرویس زیر را فراخوانی نمایید:

[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
استفاده از API صحت سنجی خرید

ورودی

در سرویس صحت‌سنجی خریدهای درون‌برنامه‌ای مایکت، پارامتر‌های زیر را باید با مقادیر مناسب جایگزین نمایید:

  • پارامتر {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": "خطایی رخ داده است."
}