درگاه پرداخت رمزارز

راهنمای اتصال به بیتا؛ درگاه پرداخت رمزارزی همراستا

مرحله صفر: ثبت نام و تعریف فروشگاه

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

مرحله یک: ارسال دیتا

در مرحله اول شما می بایست پارامترهای موجود در جدول زیر رو با متد POST و به صورت application/x-www-form-urlencoded به آدرسی که مشخص شده ارسال کنید.

نکته: تمامی داده های برگشتی از بیتا به صورت json می باشد

Path

https://bita.hamrasta.com/api/order/new

Method

POST

Parameters

apiKey *

شناسه یکتای فروشگاه که در پنل قابل مشاهده است

amount *

مبلغ مورد نظر بصورت ریال یا یکی از رمز ارز های پشتیبانی شده توسط بیتا

shareId *

شناسه یکتای هر پرداخت که از سمت پذیرنده برای هر تراکنش تخصیص داده میشه.

mode

یکی از مقادیر: IOS, ANDROID, WEB, OTHER

test

جهت تست و در نظر نگرفتن تراکنش رمزارزی این پارامتر را true تنظیم نمایید.

acceptedCoin

با ارسال این پارامتر میتوانید مشتری را محدود به پرداخت با رمز ارز مورد نظر خود کنید. مقادیر مجاز: BTC/BCH/ETH/USDT (فقط یک رمز ارز را میتوانید انتخاب کنید)

baseCurrency

نوع رمز ارز پایه. مقادیر مجاز: BTC/BCH/ETH/USDT/Rial (مقدار پیش فرض: Rial)

مرحله دوم: انتقال کاربر به صفحه پرداخت

بعد از مرحله یک، کاربر به صفحه ی پرداخت بیتا هدایت (Redirect) می شه که تو اون صفحه، باید ایمیلش رو وارد کنه و مراحل پرداخت رو انجام بده. نمونه کد فراخوانی این متد رو هم میتونید در انتها دانلود کنید. چون تایید تراکنش های رمزارزی در شبکه مدتی زمان میبره، برخلاف درگاه های ریالی، کاربر از این صفحه به وبسایت پذیرنده برنمیگرده.

مرحله سه: ارسال پاسخ تراکنش از سمت بیتا

بعد از دریافت رمزارز از مشتری، بیتا آدرس بازگشت (Callback URL) فروشگاه که در زمان تعریف فروشگاه مشخص شده رو با پارامترهای زیر فراخوانی میکنه و در جواب هم لازمه HTTP/1.1 200 OK برای بیتا ارسال بشه.

نکته: شما باید یک وب سرویس POST و با پارامترهای زیر بصورت json در سمت وبسایت فروشگاهتون پیاده سازی کنید.

** تراکنش های رمزارزی نیاز به تایید در شبکه دارند که بصورت پیشفرض 3 تایید شبکه (Confirmation) رو در نظر گرفتیم. این فراخوانی تایید تراکنش، در هر بار تایید تراکنش در شبکه رمزارز دوباره فراخوانی میشه، مگر اینکه:

۱- قبلا فراخوانی شده باشد و پاسخ 200 OK هم از وبسایت پذیرنده گرفته باشیم.

۲- تایید تراکنش (مرحله چهار) هم صدا زده شده باشه.

Method

POST

shareId

شناسه‌ی یکتایی که قبلا از سمت پذیرنده برای هر تراکنش اختصاص داده شده است.

seq

شماره ردیف تراکنشُ، یک شناسه عددی ترتیبی که بین بیتا و وبسایت فروشگاه رد و بدل می شود.

test

در صورتیکه در مرحله یک، پارامتر test=true تنظیم شده باشد، این پارامتر هم در فراخوانی بیتا با مقدار true مجدد ارسال خواهد شد.

مرحله چهار: تایید تراکنش

بعد از اینکه کاربر پرداخت رو انجام میده، بیتا با فراخوانی آدرس بازگشتی (Callback URL) تو مرحله ۳، پاسخ تراکنش رو برای پذیرنده ارسال میکنه. بعد از اون، پذیرنده لازمه که تایید تراکنش رو به بیتا اعلام کنه. برای این کار باید متد GET با پارامترهای زیر فراخوانی بشه که در جواب اون، وضعیت و اطلاعات تراکنش ارسال خواهد شد.

نکته: پذیرنده بعد از این مرحله میتونه همیشه برای دریافت آخرین وضعیت تراکنش استفاده کنه.

Path

https://bita.hamrasta.com/api/order/verify/{seq}

Method

GET

Parameters

seq *

شماره ردیف تراکنش که تو مرحله ۳ توسط بیتا ارسال شده

apiKey *

شناسه یکتای فروشگاه

test *

در صورتی که در مرحله ۱ پارامتر test=true تنظیم شده باشد، این پارامتر هم در فراخوانی بیتا با مقدار true مجدد ارسال خواهد شد.

Response

shareId

شناسه یکتای هر پرداخت که از سمت پذیرنده برای هر تراکنش تخصیص داده میشه.

mode

ANDROID,IOS,WEB,OTHER

seq

شماره ردیف تراکنش که تو مرحله سه توسط بیتا ارسال شده

amount

مبلغ به ارز پایه

coinAmount

مبلغ به رمزارز پرداخت شده

confirmations

تعداد تاییدها در شبکه بلاکچین

coinType

نوع رمزارزBTC/BCH/ETH/USDT

نمونه کد پیاده سازی شده

function paymentRequest(apiKey, amount, shareId, mode, test, acceptedCoin, baseCurrency) {

var form = document.createElement("form");

form.setAttribute("method", "post");

form.setAttribute("action", "https://bita.hamrasta.com/api/order/new");

form.setAttribute("target", "view");

var iapi = document.createElement("input");

iapi.setAttribute("type", "hidden");

iapi.setAttribute("name", "apiKey");

iapi.setAttribute("value", apiKey);

form.appendChild(iapi);

var iamount = document.createElement("input");

iamount.setAttribute("type", "hidden");

iamount.setAttribute("name", "amount");

iamount.setAttribute("value", amount);

form.appendChild(iamount);

var ishare = document.createElement("input");

ishare.setAttribute("type", "hidden");

ishare.setAttribute("name", "shareId");

ishare.setAttribute("value", shareId);

form.appendChild(ishare);

var imode = document.createElement("input");

imode.setAttribute("type", "hidden");

imode.setAttribute("name", "mode");

imode.setAttribute("value", mode);

form.appendChild(imode);

var itest = document.createElement("input");

itest.setAttribute("type", "hidden");

itest.setAttribute("name", "test");

itest.setAttribute("value", test);

form.appendChild(itest);

var iAcceptedCoin= document.createElement("input");

itest.setAttribute("type", "hidden");

itest.setAttribute("name", "acceptedCoin");

itest.setAttribute("value", acceptedCoin);

form.appendChild(iAcceptedCoin);

var iBaseCurrency= document.createElement("input");

itest.setAttribute("type", "hidden");

itest.setAttribute("name", "baseCurrency");

itest.setAttribute("value", baseCurrency);

form.appendChild(iBaseCurrency);

document.body.appendChild(form);

window.open('', 'view');

form.submit();

document.body.removeChild(form);

}
Share on facebook
Share on google
Share on twitter
Share on linkedin