1.0.7 • Published 5 years ago

@bank-of-georgia/ipay-sdk v1.0.7

Weekly downloads
-
License
ISC
Repository
-
Last release
5 years ago

iPay SDK

Installation

npm i @bank-of-georgia/ipay-sdk

Usage

const SDK = require('@bank-of-georgia/ipay-sdk');

Create config

const ipay = new SDK.Ipay({
    intent: "AUTHORIZE",
    username: "1006",
    password: "581ba5eeadd657c8ccddc74c839bd3ad",
    api: "dev.ipay.ge",//dev.ipay.ge developer mode, ipay.ge production mode
    redirect_url: "http://localhost:3000",
    shop_order_id: "Shop order id",
    card_transaction_id: "",
    locale: "ka",
    industry_type: "ECOMMERCE",
    currency_code: "GEL"
});

Products array

const items = [
     { product_id: "123456789", quantity: 1, amount: 1.00, description: "product description text 1" },
     { product_id: "987654321", quantity: 3, amount: 5.00, description: "product description text 2" }
];

create order

const order = await ipay.createOrder(items);
response
{
    status: 'CREATED',
    payment_hash: 'c4737a6b4a2e5c9e1fe00a284d1e7baa631c68e2',
    links:[
        { 
            href: 'https://dev.ipay.ge/opay/api/v1/checkout/orders/aa233c3b716cae55c403553c49657ee55fe208ad?locale=ka',
            rel: 'self',
            method: 'GET' 
        },
        { 
            href: 'https://dev.ipay.ge/?paymentId=aa233c3b716cae55c403553c49657ee55fe208ad',
            rel: 'approve',
            method: 'GET' 
        } 
    ],
    order_id: 'aa233c3b716cae55c403553c49657ee55fe208ad' 
}

payment_hash and order_id have to be stored in safe location

get orders

const ordersList = await ipay.getOrders("<saved order_id>");

callback

router.route('/pay/status').post( async (req, res, next) => {
    const { status, payment_hash, order_id, status_description, shop_order_id, ipay_payment_id } = req.body;
    const saved_order_id = "<saved order_id>";
    const saved_payment_hash = "<saved payment_hash>";
    if(order_id == saved_order_id && payment_hash == saved_payment_hash){
        //update status and send response
        res.sendStatus(200);
    }else{
        res.sendStatus(404);
    }
});
1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago