نمونه کد و SDK
نمونه کد در PHP، JavaScript و Python.
هنوز SDK رسمی (بسته composer، npm یا pip) منتشر نشده است. API ساده و مبتنی بر REST است و نمونه کدهای زیر بدون وابستگی خاص کار میکنند. با انتشار SDK، این صفحه بهروز میشود.
نمونه کد
نمونهها مستقیماً بر اساس قرارداد واقعی API (مستند OpenAPI) نوشته شدهاند.
ایجاد پرداخت
bash
curl -X POST https://api.sheypay.ir/api/v1/payments \
-H "Authorization: Bearer sk_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-1042-create-1" \
-d '{
"amount": 1500000,
"callback_url": "https://shop.example.ir/payment/callback",
"merchant_reference": "ORDER-1042-1",
"description": "خرید سفارش ۱۰۴۲",
"mobile": "09121234567"
}'تأیید پرداخت
bash
curl -X POST https://api.sheypay.ir/api/v1/payments/PAYMENT_ID/verify \
-H "Authorization: Bearer sk_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "amount": 1500000 }'تولید کلاینت از OpenAPI
میتوانید با ابزارهایی مانند openapi-generator یا openapi-typescript از روی مستند OpenAPI کلاینت تولید کنید. مستند از همان schemaهایی ساخته میشود که درخواستها را اعتبارسنجی میکنند، پس با رفتار سرور یکسان است.
معماری پیشنهادی SDK
- یک کلاینت با کلید API، نشانی پایه و timeout قابل تنظیم.
- ارسال خودکار Idempotency-Key برای ایجاد پرداخت و استرداد.
- تبدیل پاسخ خطا به exception با code، message و request_id.
- تابع بررسی امضای وبهوک با مقایسه زمانثابت و کنترل برچسب زمانی.