کارت بانکی
برای هر کارت بانک، شماره کارت، صاحب حساب، وزن پخش و سقفهای مبلغ را ثبت کنید. وزن ۷۰ و ۳۰ یعنی سامانه در بلندمدت تلاش میکند تقریباً ۷۰٪ مبلغها را به کارت اول و ۳۰٪ را به کارت دوم اختصاص دهد؛ یک فاکتور هرگز تقسیم نمیشود.
راهنمای مشتری
واریز بان هر فاکتور را به یک کارت اختصاص میدهد، واریز را از طریق گوشی تشخیص میدهد و نتیجه تأییدشده را با Webhook به سایت یا ربات شما میرساند.
۱. شروع سریع
وارد پنل شوید و رمز اولیه را تغییر دهید.
کارت، نام صاحب حساب، وزن پخش و محدودیتهای مبلغ را ثبت کنید.
برای Backend یک API Key و برای هر گوشی یک Device Token جدا بسازید.
یک آدرس HTTPS عمومی و Signing Secret حداقل ۳۲ کاراکتری ثبت کنید.
یک فاکتور کممبلغ بسازید، مبلغ دقیق را واریز کنید و تحویل محصول را بررسی کنید.
payableAmountRials را پرداخت کند؛ مبلغ اولیه سفارش معیار پرداخت نیست.۲. پنل فروشنده
برای هر کارت بانک، شماره کارت، صاحب حساب، وزن پخش و سقفهای مبلغ را ثبت کنید. وزن ۷۰ و ۳۰ یعنی سامانه در بلندمدت تلاش میکند تقریباً ۷۰٪ مبلغها را به کارت اول و ۳۰٪ را به کارت دوم اختصاص دهد؛ یک فاکتور هرگز تقسیم نمیشود.
در «اتصالها» برای Backend سایت یا ربات API Key بسازید. برای هر گوشی Device Token مستقل ایجاد کنید. هر دو فقط یکبار نمایش داده میشوند؛ در صورت افشا آنها را لغو یا Rotate کنید.
۳. اتصال سایت یا ربات
API Key نباید به JavaScript مرورگر، اپ مشتری، Git یا پیامرسان ارسال شود. سایت یا ربات شما باید از Backend خود درخواست زیر را بفرستد:
POST https://varizban.chipsomast.com/api/v1/invoices
Content-Type: application/json
X-Api-Key: YOUR_MERCHANT_API_KEY
{
"merchantOrderId": "order-78452",
"amountRials": 3600000,
"idempotencyKey": "invoice-order-78452-v1",
"metadata": {
"customerId": "customer-19",
"productId": "product-42"
}
}
merchantOrderId و idempotencyKey باید برای هر سفارش یکتا باشند. اگر درخواست بهدلیل خطای شبکه تکرار شد، همان idempotencyKey قبلی را ارسال کنید.
payableAmountRials با تأکید «مبلغ را دقیقاً وارد کنید»expiresAt و شناسه سفارش{
"publicId": "inv_example123",
"requestedAmountRials": 3600000,
"payableAmountRials": 3600010,
"adjustmentRials": 10,
"status": "Pending",
"expiresAt": "2026-08-09T10:30:00Z",
"payment": {
"bankName": "نام بانک",
"cardNumber": "4242424242424242",
"holderName": "نام صاحب حساب"
}
}
برای پیگیری وضعیت از GET /api/v1/invoices/{publicId} استفاده کنید؛ اما تحویل محصول فقط با Webhook انجام شود. لغو فقط برای فاکتور Pending ممکن است: POST /api/v1/invoices/{publicId}/cancel.
۴. اتصال گوشی با MacroDroid
Notification Received بگذارید.HTTP Request با Method برابر POST بسازید.application/json را وارد کنید.X-Device-Token: DEVICE_TOKEN_SHOWN_ONCE
{
"eventId": "notif-{not_app_package}-{system_time_ms}",
"packageName": "{not_app_package}",
"title": "{not_title}",
"text": "{notification}",
"receivedAt": "{year}-{month_digit}-{dayofmonth}T{hour_0}:{minute}:{second}+03:30"
}
۵. تحویل خودکار محصول
پس از تأیید پرداخت، واریز بان یک درخواست POST به URL ثبتشده در پنل ارسال میکند:
X-Webhook-Id: evt_...
X-Webhook-Timestamp: 1785663900
X-Webhook-Signature: v1=HEX_HMAC_SHA256
امضا باید روی Body خام محاسبه شود:
HMAC_SHA256(signingSecret, timestamp + "." + rawRequestBody)
X-Webhook-Id را یکتا ذخیره کنید؛ رویداد تکراری باید پاسخ 2xx بگیرد ولی تحویل تکرار نشود.invoiceId و payableAmountRials را با دادههای ذخیرهشده تطبیق دهید.payment.confirmed قابل اعتماد است.۶. امنیت و عیبیابی
package_not_allowed: نام پکیج با الگوی فعال بانک برابر نیست.401: API Key یا Device Token نامعتبر است.409: کارت سازگار یا ظرفیت مبلغ یکتا موجود نیست.Rejected: متن اعلان یا الگوی بانک نیاز به بررسی دارد.