The Arifpay Node library provides convenient access to the Arifpay API from applications written in server-side JavaScript.
See the Developer
API docs. For Laravel SDK visit here.
Node 8, 10 or higher.
Install the package with:
npm install arifpay --save
# or
yarn add arifpay
The package needs to be configured with your account's API key, which is available in the Arifpay Dashboard. Require it with the key's value:
const arifpay = require('arifpay')('API KEY...');
Or using ES modules and async
/await
:
import Arifpay from 'arifpay';
const arifpay = new Arifpay('API KEY...');
//for common js
const Arifpay = require('arifpay').default;
const arifpay = new Arifpay('API KEY...');
Import Arifpay as a default import.
import Arifpay from 'arifpay';
const arifpay = new Arifpay('API KEY...');
You can find a full server example in arifpay-samples.
After importing the arifpay
package, use the checkout property of the Arifpay instance to create or fetch checkout sessions
.
const arifpay = new Arifpay('API KEY...');
const date = new Date();
date.setMonth(10);
const expired = getExpireDateFromDate(date);
const data: ArifpayCheckoutRequest = {
beneficiaries: [
{
accountNumber: 'account number',
bank: 'bank id',
amount: amount,
},
],
cancelUrl: 'https://gateway.arifpay.net/',
errorUrl: 'https://gateway.arifpay.net/',
notifyUrl: 'https://gateway.arifpay.net/',
expireDate: expired,
nonce: Math.floor(Math.random() * 10000).toString(),
paymentMethods: [],
successUrl: 'https://gateway.arifpay.net',
items: [
{
name: 'Banana',
price: 10.0,
quantity: 1,
image: "image url",
description: "description..."
},
],
};
After putting your building ArifpayCheckoutRequest
just call the create
method. Note passing sandbox: true
option will create the session in test environment.
let session = await arifpay.checkout.create(data, { sandbox: true});
console.log(session)
This is session response object contains the following fields
{
sessionId: string;
paymentUrl: string;
cancelUrl: string;
totalAmount: number;
}
To track the progress of a checkout session you can use the fetch method as shown below:
const arifpay = new Arifpay('API KEY...');
// A sessionId will be returned when creating a session.
const session = await arifpay.checkout.fetch('checkOutSessionID', { sandbox: true});
The following object represents a session
{
id: number;
transaction: ArifpayTranscation;
totalAmount: number;
test: boolean;
updatedAt: string;
createdAt: string;
uuid: string;
cancelUrl: string;
nonce: string;
errorUrl: string;
notifyUrl: string;
successUrl: string;
paymentMethods: string[];
expireDate: string;
items: ArifpayCheckoutItem[];
beneficiaries: ArifpayBeneficary[];
}
If the merchant want to cancel a checkout session. it's now possible as shown below.
$arifpay = new Arifpay('API KEY...');
// A sessionId will be returned when creating a session.
$session = $arifpay->checkout->cancel('checkOutSessionID', new ArifpayOptions(true));
The ArifpayCheckoutSession
class is returned.
learn more about DirectPay here
session = arifpay.checkout.create($data, new ArifpayOptions(true));
return arifpay.directPay.telebirr.pay(session.sessionId);
Released Date: v1.0.1
June 03, 2022
- Initial Release
Released Date: v1.0.2
June 03, 2022
- added
ArifpayOptions
tocheckout.create
andcheckout.fetch
Released Date: v2.0.0
Aug 15, 2022
DirectPay
added for Telebirr and Awash payment options