راهنمای پرداخت درونبرنامهای در Web Application
برای مشاهده نمونه پیادهسازی پرداخت درونبرنامهای مایکت در وباپلیکیشن، به پروژه نمونه در GitHub مراجعه کنید.
این صفحه جریان خرید مستقیم مایکت را برای برنامههای وب، PWA و پلتفرمهایی توضیح میدهد که امکان استفاده از کتابخانهی IAB مایکت را ندارند. در این روش هیچ SDKای نصب نمیشود؛ برنامهی وب با چند فراخوانی HTTP از طریق سرور خود و هدایت مرورگر کاربر، خرید را انجام میدهد.
توکن دسترسی مایکت را در سرور نگه دارید. شروع خرید، صحتسنجی و مصرف محصول باید فقط از سرور شما به سرور مایکت فراخوانی شوند. کالبک خرید، درخواست POST مرورگر کاربر است و وبهوک سرور-به-سرور محسوب نمیشود؛ محصول را تنها پس از تأیید خرید با API صحتسنجی تحویل دهید.
جریان خرید مستقیم
۱. سرور شما سرویس شروع خرید را فراخوانی میکند و URL پرداخت را میگیرد.
۲. مرورگر کاربر به URL دریافتی هدایت میشود تا کاربر در سایت مایکت وارد شود، روش پرداخت را انتخاب کند و تراکنش را تکمیل کند.
۳. پس از پایان فرایند، مرورگر کاربر یک فرم را به callbackUrl برنامهی شما POST میکند.
۴. سرور شما اطلاعات کالبک را بررسی میکند و با API مایکت خرید را صحتسنجی میکند.
۵. پس از تحویل محصول مصرفشدنی، سرور شما آن را با API مصرف میکند.
۱. دریافت URL شروع خرید
این سرویس فقط باید از سرور برنامه فراخوانی شود؛ فراخوانی از کلاینت میتواند توکن دسترسی توسعهدهنده را افشا کند. نمونههای Python از کتابخانهی requests استفاده میکنند؛ در صورت نیاز آن را با python -m pip install requests نصب کنید.
- cURL
- Python
curl -X POST \
--location 'https://developer.myket.ir/api/partners/applications/{PACKAGE_NAME}/purchases/iap/start' \
--header 'X-Access-Token: {ACCESS_TOKEN}' \
--header 'Content-Type: application/json' \
--data '{
"skuId": "{SKU_ID}",
"callbackUrl": "{CALLBACK_URL}",
"developerPayload": "{DEVELOPER_PAYLOAD}"
}'
import requests
package_name = "{PACKAGE_NAME}"
sku_id = "{SKU_ID}"
access_token = "{ACCESS_TOKEN}"
callback_url = "{CALLBACK_URL}"
developer_payload = "{DEVELOPER_PAYLOAD}"
url = f"https://developer.myket.ir/api/partners/applications/{package_name}/purchases/iap/start"
headers = {
"X-Access-Token": access_token,
"Content-Type": "application/json",
}
payload = {
"skuId": sku_id,
"callbackUrl": callback_url,
"developerPayload": developer_payload,
}
response = requests.post(url, headers=headers, json=payload)
print(response.status_code, response.json())
X-Access-Token را از پنل توسعهدهندگان مایکت، بخش محصولات درونبرنامهای همان برنامه دریافت کنید.
| پارامتر | محل | توضیح |
|---|---|---|
X-Access-Token | هدر | توکن صحتسنجی برنامه از پنل توسعهدهندگان؛ آن را محرمانه نگه دارید. |
PACKAGE_NAME | مسیر URL | نام پکیج برنامهی ثبتشده در مایکت. |
skuId | بدنهی JSON | شناسهی محصول درونبرنامهای. |
callbackUrl | بدنهی JSON | URL عمومی برنامه که مرورگر کاربر پس از پایان خرید، فرم کالبک را به آن POST میکند. |
developerPayload | بدنهی JSON | مقدار غیرخالی و دلخواه برای تطبیق خرید با سفارش یا کاربر شما؛ حداکثر ۸۰۰ کاراکتر. |
توجه کنید که مقدار طول رشتهی developerPayload نمیتواند بیشتر از ۸۰۰ کاراکتر باشد.
پاسخ موفق با وضعیت 200 شامل URL شروع خرید است:
{
"url": "https://iap.myket.ir/purchases/{PURCHASE_ID}/start"
}
در صورت نامعتبر بودن URL، ممکن است پاسخ 400 با messageCode برابر InvalidUrl دریافت شود. نام پکیج نامعتبر یا ثبتنشده برای توسعهدهنده، SKU ناشناخته، callbackUrl خالی یا نامعتبر و developerPayload خالی یا بیش از ۸۰۰ کاراکتر نیز باعث خطا میشوند.