کار با پرداخت درون برنامهای - REST
نکته: در صورتی که با مفهوم REST و سرویسهای سمت سرور و یا با دستور curl آشنایی ندارید، به آشنایی با REST مراجعه کنید.
در ادامه سرویسهای مختلفی که سرویس درون پرداخت امن بکتوری برای کار با کافه بازار به صورت REST در اختیار شما قرار میدهد، را آوردهایم.
پیشنیازها
- در صورتی که با سرویس درون پرداخت امن آشنایی ندارید، به معرفی سرویس درون پرداخت امن مراجعه کنید.
- در صورتی که هنوز در پنل توسعهدهنده خود سرویس پرداخت درون برنامهای را راهاندازی نکردهاید، به تنظیمات پنل مراجعه کنید.
- در صورتی که با راهاندازی REST در پلتفرمهای مختلف آشنایی ندارید، به راهاندازی REST در پلتفرمهای مختلف مراجعه کنید.
بررسی صحت انجام شدن خرید
همانطور که در مستندات کافه بازار مطالعه کردهاید، محصولات کافه بازار به دو دسته تقسیم میشوند:
- محصولات خریدنی (مصرفی یا غیرمصرفی)
- محصولات اشتراکی (ماهانه یا سالانه)
اگر پس از خرید محصول خریدنی از کافه بازار، میخواهید صحتسنجی (verify) کنید که خرید با موفقیت انجام شده است یا خیر، میتوانید از درخواست زیر استفاده کنید:
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Backtory-Game-Id: <game-Id>' \
https://api.backtory.com/game/iap-clients/packages/<packageName>/inapp/<productId>/purchases/<purchaseToken>/is-purchased?metadata=<metaData>
این درخواست REST یک درخواست با متد GET هست و بنابراین نیازی به بدنهی درخواست ندارد. اما در url آن پارامترهایی وجود دارد که بدین شرح هستند:
- packageName: نام پکیج برنامهی شما که رشتهای شبیه به com.yourcompany.yourapp است.
- productId: شناسهی کالای شما که در پنل پرداخت درون برنامهای کافه بازار آن را تعریف کردهاید. از شناسهی کالا با عنوان (sku (stock keeping unit نیز یاد میشود. در پروژهی نمونهی TrivialDrive که توسط گوگل ارائه و در مستندات کافه بازار به آن ارجاع داده شده است، gas و premium دو نمونه از شناسههای کالا هستند.
- purchaseToken: توکن خرید که پس از انجام موفق خرید توسط کافه بازار به شما ارائه میشود. (لاکی پچر به شما توکن خرید تقلبی میدهد و در نتیجه توسط کافه بازار اعتبارش مورد قبول نخواهد بود.)
- metadata: رشتهای که به عنوان ورودی به وبهوک پرداخت درونبرنامهای ارسال میشود. مثلا این رشته میتواند Stringify شدهی یک json حاوی اطلاعات اضافی باشد. در مورد ساختار این وبهوک اینجا را مطالعه کنید. در صورتی که وبهوکی در این قسمت ست نکردهاید، میتوانید این پارامتر را پاس ندهید.
در صورتی که فراخوانی آدرس بالا موفقیت آمیز باشد، بدنهی پاسخ یک json مشابه زیر خواهد بود:
{
status: true,
metaData, "<Webhook-response>"
}
کلیدهای این json عبارتند از:
- status: یک متغیر بولین است که در صورت تصدیق صحت از سمت کافه بازار برابر true و در صورت عدم تصدیق برابر false است.
- metaData: پاسخ وبهوک را به صورت رشته برمیگرداند. در صورتی که پاسخ وبهوک شما یک json باشد، باید آن را در سمت کلاینت parse کنید.
بررسی صحت مصرف شدن خرید
اگر پس از خرید محصول خریدنی قابل مصرف از کافه بازار، میخواهید صحتسنجی (verify) کنید که خرید با موفقیت مصرف شده است یا خیر، میتوانید از درخواست زیر استفاده کنید:
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Backtory-Game-Id: <game-Id>' \
https://api.backtory.com/game/iap-clients/packages/<packageName>/inapp/<productId>/purchases/<purchaseToken>/is-consumed?metadata=<metaData>
این درخواست REST نیز یک درخواست با متد GET هست و پارامترهای url آن مشابه قبلی هستند. همچنین، در صورتی که فراخوانی این آدرس موفقیت آمیز باشد، ساختار response body نیز مشابه سابق است.
بررسی صحت فعال بودن اشتراک
اگر پس از خرید محصول اشتراکی از کافه بازار (سالانه یا ماهانه، فرقی نمیکند)، میخواهید صحتسنجی (verify) کنید که اشتراک فعال هست یا خیر، میتوانید از درخواست زیر استفاده کنید:
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Backtory-Game-Id: <game-Id>' \
https://api.backtory.com/game/iap-clients/packages/<packageName>/subscriptions/<subscriptionId>/purchases/<purchaseToken>/is-active?metadata=<metaData>
این درخواست REST نیز یک درخواست با متد GET است و پارامترهای url آن مشابه قبلی هستند؛ تنها تفاوت در پارامتر subscriptionId است. این پارامتر شناسهی کالای اشتراکی را که در پنل کافه بازار تعریف کردهاید، نشان میدهد. در پروژهی نمونهی TrivialDrive به عنوان مثال infinite_gas یک شناسهی کالای اشتراکی است. به علاوه، در صورتی که فراخوانی این آدرس موفقیت آمیز باشد، ساختار response body نیز مشابه سابق است.
به این ترتیب شما با امکانات بکتوری برای صحتسنجی پرداختهای انجام شده با کافه بازار به طور کامل آشنا شدید.