راهنمای اتصال به درگاه پرداخت جیبیتال

فروش کالا و خدمات با دریافت رمزارز

در این مقاله راهنمای پیاده سازی درگاه پرداخت جیبیتال برای پذیرندگان رمزارز جیبیتال تشریح می گردد.

نمونه یک درگاه پیاده سازی شده در آدرس زیر نمایش داده شده است:
https://jibital.ir/payment
به طور کلی پیاده سازی درگاه پرداخت جیبیتال سه مرحله اصلی دارد:
1) دریافت آدرس اختصاصی تراکنش:
در این مرحله پذیرنده ابتدا شناسه خود را به سرور جیبیتال ارسال میکند تا در پاسخ یک آدرس اختصاصی دریافت نماید.
جهت دریافت آدرس، پذیرنده باید درخواست با مشخصات زیر را به سرور جیبیتال ارسال نماید:

POST:

https://jibital.ir/payment-api/start-new-transaction

Headers:

Content-Type application/json

Accept application/json

Body:

   {
     “shopId”: “bookStore1”,

     “metaData”: {

          “username”:”aminmazi”,

          “description”: “خرید کتاب آموزشی”

   }

}

مقادیر ارسالی در این درخواست به شرح زیر می باشند:

shopId: شناسه منحصر به فرد فروشگاه، در صورتی که چند فروشگاه مختلف دارید، می توانید برای هر فروشگاه یک شناسه جداگانه در نظر بگیرید. اما همه ی درخواست های ارسالی از یک فروشگاه باید شناسه یکسان داشته باشند.

metaData: این فیلد اختیاری است و هر نوع داده ای که مایل باشید می توانید با فرمت json در یک تراکنش ذخیره کنید.

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

{

“_id”: “5b82ee23294ece080b888547”,

“shopId”: “bookStore1”,

“metaData”: {

“username”: “aminmazi”,

“description”: “خرید کتاب آموزشی”

},

“createDate”: “2018-08-26T18:14:59.585Z”,

“address”: “1Yp5R5RtEhr9E9RNgjmWnJf1BLbBkHh3s2Uywo”,

“__v”: 0

}

فیلد _id شناسه منحصر به فرد این تراکنش است و پذیرنده می تواند با استفاده از این شناسه در آینده، تراکنش را ویرایش نماید.

فیلد address حاوی آدرس منحصر به فرد تراکنش است که در مرحله بعد به آن نیاز خواهیم داشت.

2) نمایش آدرس به کاربر و بررسی موجودی

پس از اینکه آدرس تراکنش از درخواست قبلی به دست آمد، باید آدرس را به کاربر نمایش داده و از کاربر بخواهیم مبلغ مورد نظر را از طریق کیپول، به این آدرس واریز نماید. در این مرحله باید به صورت متناوب (مثل هر 10 ثانیه یک بار) درخواست دوم را به سرور ارسال کنیم تا میزان موجودی واریز شده به آدرس مشخص گردد، در صورتی که مبلغ مورد نظر واریز شده بود عملیات خرید را تکمیل شده و پذیرنده باید کالا یا خدمات مورد نظر را به کاربر ارائه کند.

دستور بررسی موجودی به شرح زیر می باشد:

GET get-balance
https://jibital.ir/payment-api/get-balance/[address_from_step1]

در دستور بالا آدرس دریافت شده از مرحله اول را جایگزین [address_from_step1] میکنیم.

نتیجه درخواست موجودی آدرس به شرح زیر از سرور دریافت میگردد:

[ { “assetref”: “”, “qty”: 1, “raw”: 100000000 } ]

موجودی آدرس در فیلد qty نمایش داده می شود. توجه داشته باشید که نتیجه درخواست قبلی یک آرایه است و اولین عضو آرایه نشان دهنده موجودی آدرس از سکه جیبیتال می باشد.

پس از اینکه پرداخت انجام شد و خرید تکمیل شد، پذیرنده میتواند رکورد مربوط به این تراکنش را ویرایش نماید. این مرحله اختیاری است.

3) ویرایش تراکنش (اختیاری)

در نمونه دستور زیر فیلد metaData یک تراکنش ویرایش شده است. توجه داشته باشید که ارسال فیلد _id  که در مرحله اول دریافت شد، برای ویرایش تراکنش الزامی است.

POST https://jibital.ir/payment-api/update-transaction/ Headers Content-Type application/json Body { "_id": "5b80fda07a01c847e4846832", "metaData" : { "paid" : true } }

نتیجه دستور بالا به صورت زیر بازمیگردد:

 

{
    "n": 1,
    "nModified": 1,
    "ok": 1
}

 

که در آن فیلد n نمایانگر تعداد رکوردهایی است که با این شناسه پیدا شده (این فیلد همیشه باید برابر 1 باشد)
فیلد nModified نمایانگر تعداد رکوردهایی است که ویرایش شده اند (ممکن است تغییرات ارسال شده برای یک شناسه از قبل در آن ذخیره شده باشند و در این حالت این فیلد 0 را نشان میدهد)
و فیلد ok در صورت اجرای موفقیت آمیز دستور 1 می شود.

Leave a Reply

Close Menu