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

View Categories

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

این سرویس صرفاً مجاز به فراخوانی در حالت Server to Server است.
استفاده مستقیم از سمت کلاینت می‌تواند منجر به افشای کلید توسعه‌دهنده و سوءاستفاده احتمالی از آن شود.

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

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