1.1.3 • Published 1 year ago

eazy-idpay v1.1.3

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

درباره ایزی آیدی پی

روش نصب

npm i eazy-idpay

متد ها

احراز هویت درگاه

issandbox : بودن درگاه به صورت آزمایشی می باشد true می باشد و در صورت false به صورت پیش فرض

const createpay = await idpay.create({
amount: 100000,
order_id: 2423,
callback: "http://localhost:3000/callback",
name: "فتاح رنجبر",
phone: "09339993377",
mail: "my@site.com",
desc: "توضیحات",
});
{
"id": "d2e353189823079e1e4181772cff5292",
"link": "https://idpay.ir/p/ws-sandbox/d2e353189823079e1e4181772cff5292"
}

در صورت بروز خطا در ایجاد تراکنش پاسخی مشابه زیر به صورت جیسون دریافت می کنید

{
  status: 406
  data:{
    "error_code": 32,
    "error_message": ".نباید خالی باشد `order_id` مقدار"
  }
}

لیست خطاها

اجبارینوعورودی
بلهعددamount
بلهرشتهorder_id
بلهرشتهcallback
خیررشتهname
خیررشتهphone
خیررشتهmail
خیررشتهdesc

تایید تراکنش

در صفحه کال بک می توانید مرحله اعتبار سنجی تراکنش را با متد verify انجام دهید.

const verifypay = await idpay.verify(id, order_id);
	{
"status": "100",
"track_id": "10012",
"id": "d2e353189823079e1e4181772cff5292",
"order_id": "101",
"amount": "10000",
"date": "1546288200",
"payment": {
    "track_id": "888001",
    "amount": "10000",
    "card_no": "123456******1234",
    "hashed_card_no": "E59FA6241C94B8836E3D03120DF33E80FD988888BBA0A122240C2E7D23B48295",
    "date": "1546288500" },
"verify": { "date": "1546288800" }
}

کد های وضعیت تراکنش درصوت پرداخت توسط کاربر کد status باید 100 باشد و صورت کد 101 یعنی پرداخت قبلا تایید شده است و احتمال دارد کاربر می خواد دوباره از شناسه تراکنش بدون پرداخت دوباره استفاده کند

هشدار آیدی پی : جهت جلوگیری از دوبار مصرف شدن یک پرداخت (Double Spending)، پذیرنده موظف است کلیدهای منحصر بفردی که از طریق API آیدی پی دریافت می‌کند را (مثل id و track_id) در دیتابیس خود ذخیره کند و از یکتا بودن آنها اطمینان حاصل فرماید. توجه داشته باشید که ممکن است یک مشتری رسید پرداخت آیدی پی را ذخیره کند و برای یک خرید دیگر از آن استفاده کند. مسئولیت بررسی و شناسایی Double Spending کاملا به عهده پذیرنده می‌باشد. در صورت بروز خطا در ایجاد تراکنش پاسخی مشابه زیر به صورت جیسون دریافت می کنید

{
status: 406
data:{
  "error_code": 32,
  "error_message": ".نباید خالی باشد `order_id` مقدار"
}
}

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

const inquirypay = await idpay.inquiry(id, order_id);
اجبارینوعورودی
بلهرشتهid
بلهرشتهorder_id

در صورت صحیح بودن اطلاعات تراکنشد پاسخ متد inquiry مشابه زیر است

{
  "status": "100",
  "track_id": "10012",
  "id": "d2e353189823079e1e4181772cff5292",
  "order_id": "101",
  "amount": "10000",
  "wage": {
    "by": "payee",
    "type": "percent",
    "amount": "2500"
  },
  "date": "1546288200",
  "payer": {
    "name": "قاسم رادمان",
    "phone": "09382198592",
    "mail": "my@site.com",
    "desc": "توضیحات پرداخت کننده"
  },
  "payment": {
    "track_id": "888001",
    "amount": "10000",
    "card_no": "123456******1234",
    "hashed_card_no": "E59FA6241C94B8836E3D03120DF33E80FD988888BBA0A122240C2E7D23B48295",
    "date": "1546288500"
  },
  "verify": {
    "date": "1546288800"
  },
  "settlement": {
    "track_id": "12345678900",
    "amount": "7500",
    "date": "1546398000"
  }
}
{
  status: 406
  data:{
    "error_code": 32,
    "error_message": ".نباید خالی باشد `order_id` مقدار"
  }
}

نمونه کد

const Eazyidpay = require("eazy-idpay");

const express = require("express");
const bodyParser = require("body-parser");

const idpay = new Eazyidpay("318a34543-dff-40a2-bcc0-25435f30bde8b");
const app = express();
const port = 3000;

app.use(bodyParser.urlencoded({ extended: false }));

app.get("/buy", async (req, res) => {
  const createpay = await idpay.create({
    order_id: 2423,
    amount: 100000,
    callback: "http://localhost:3000/callback",
    name: "فتاح رنجبر",
    phone: "09000000000",
    mail: "my@site.com",
    desc: "تلگرام : @fanishah",
  });
  console.log(createpay);
  res.redirect(createpay.data.link);
});

app.post("/callback", async (req, res) => {
  const verifypay = await idpay.verify(req.body.id, req.body.order_id);
  const inquirypay = await idpay.inquiry(req.body.id, req.body.order_id);
  console.log(verifypay);
  res.send(inquirypay);
});
app.listen(port, () => console.log(`Example app listening on port ${port}!`));
1.1.1

1 year ago

1.1.0

1 year ago

1.0.1

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.0.0

1 year ago