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

View Categories

مصرف خرید درون‌برنامه‌ای با استفاده از API

در بعضی از سناریوهای پشتیبانی کاربر برای پرداخت درون‌برنامه‌ای نیاز است که با استفاده از API محصول درون‌برنامه‌ای را برای یک کاربر مصرف (Consume) کنید. این سناریوها معمولا موقعی پیش می‌آید که کاربر در فرایند پرداخت درون‌برنامه‌ای محصولی را خریداری کرده و به هر دلیلی تحویل نگرفته و توسعه‌دهندگان از طریق پشتیبانی محصول را به کاربر تحویل می‌دهند. در این حالت نیاز است که بعد از تحویل محصول با استفاده از API آن محصول را برای کاربر مورد نظر Consume کنند.

توجه کنید، در صورتی که فرایند پرداخت درون‌برنامه‌ای به صورت صحیح پیاده‌سازی شده باشد، نیازی به این API ندارید و فقط در سناریوهای خاص استفاده می‌شود.

استفاده از API مصرف محصولات درون‌برنامه‌ای

[PUT]
[Header: X-Access-Token]
https://developer.myket.ir/api/partners/applications/{PAKCAGE_NAME}/purchases/products/{SKU_ID}/tokens/{TOKEN}/consume

ورودی‌ها

X-Access-Token

برای استفاده از این سرویس باید کلید X-Access-Token را از پنل توسعه‌دهندگان بخش محصولات درون‌برنامه‌ای برنامه مورد نظر، قسمت محصولات و «توکن صحت‌سنجی» دریافت نمایید و به عنوان Header در سرویس خود قرار دهید. به عنوان مثال:

X-Access-Token: 650e0714-a4348-v475-a40-3f3ec5fcf001

PAKCAGE_NAME

پارامتر {PACKAGE_NAME} برابر نام پکیج برنامه شماست: مثلا org.medrik.roosterwars

SKU_ID

پارامتر {SKU_ID} برابر شناسه‌ی محصول درون‌برنامه‌ای شما است: مثلا GEM2

TOKEN

پارامتر {TOKEN} برابر توکن خرید درون‌برنامه‌ای است: مثلا 12345678

خروجی‌‌ها

خروجی موفق

در صورتی که Consume شدن محصول مورد نظر با موفقیت انجام شد، خروجی زیر را همراه با دریافت می‌کنید:

HttpStatusCode: 200
{
    "code": 200,
    "messageCode": "Successful",
    "translatedMessage": "عملیات با موفقیت انجام شد"
}

خروجی‌های ناموفق

در صورتی که یک محصول قبلا مصرف شده باشد:

HttpStatusCode: 400
{
    "code": 400,
    "messageCode": "SkuAlreadyConsumed",
    "translatedMessage": "محصول قبلا مصرف شده است"
}

در صورتی که توکن مورد نظر یافت نشود:

HttpStatusCode: 404
{
    "code": 404,
    "messageCode": "PurchasedSkuNotFound",
    "translatedMessage": "خرید مورد نظر پیدا نشد"
}

در صورتی که محصول مورد نظر یافت نشود:

HttpStatusCode: 404
{
    "code": 404,
    "messageCode": "SkuIdNotFound",
    "translatedMessage": "محصول درون برنامه ای یافت نشد"
}

در صورت بروز خطاهای داخلی:

HttpStatusCode: 500
{
    "code": 500,
    "messageCode": "InternalError",
    "translatedMessage": "خطای داخلی سرور"
}