This is Bangladeshi nagad payment gateway api development php sdk library. This library can be used in any php application.
composer require xenon/nagad-api
<?php
use Xenon\NagadApi\Helper;
use Xenon\NagadApi\Base;
require 'vendor/autoload.php';
/**
* ==============================================================================
* all configuration are used here for demo purpose.
* for use in dev mode use 'development'
* for use in production mode use 'production'
* ===============================================================================
**/
$config = [
'NAGAD_APP_ENV' => 'development', // development|production
'NAGAD_APP_LOG' => '1',
'NAGAD_APP_ACCOUNT' => '016XXXXXXXX', //demo
'NAGAD_APP_MERCHANTID' => '6800000025', //demo
'NAGAD_APP_MERCHANT_PRIVATE_KEY' => 'MIIEvFAAxN1qfKiRiCL720FtQfIwPDp9ZqbG2OQbdyZUB8I08irKJ0x/psM4SjXasglHBK5G1DX7BmwcB/PRbC0cHYy3pXDmLI8pZl1NehLzbav0Y4fP4MdnpQnfzZJdpaGVE0oI15l',
'NAGAD_APP_MERCHANT_PG_PUBLIC_KEY' => 'MIIBIjANBc54jjMJoP2toR9fGmQV7y9fzj',
'NAGAD_APP_TIMEZONE' => 'Asia/Dhaka',
];
$nagad = new Base($config, [
'amount' => 10,
'invoice' => Helper::generateFakeInvoice(15, true),
'merchantCallback' => 'https://example.com/payment/success/id=4',
]);
$status = $nagad->payNow($nagad); //will redirect to payment page
$paymentUrl = $nagad->payNowWithoutRedirection($nagad); //will return payment url like below. You can use that url and do whatever u want to get payment from clients.
http://sandbox.mynagad.com:10060/check-out/MDYyODAwNTcyNTYxNi42ODMwMDIwMDcxMDQyMjUuOU5PTEFVNkVaWkdUWVRBLmJiZGMyNTE3MTVmZTNiNjIzN2Zk
$successUrl = 'https://example.com/payment/success/id=4/?merchant=683XXXX225&order_id=CKH060JXXXXXFRA2&payment_ref_id=MXXXXXXXXtIMDYwSjFRSlBRMUZSQTIuMTg0NTE2Yzc3ZmEzNmEwZTJlZjk=&status=Success&status_code=00_0000_000&message=Successful%20Transaction&payment_dt=20211123235008&issuer_payment_ref=MTEyMzIzNDg1NzUwOS42ODMwMDIwMDcxMDQyMjUuQ0tIMDYwSjFRSlBRMUZSQTIuMTg0NTE2Yzc3ZmEzNmEwZTJlZjk=';
$response = Helper::successResponse("$successUrl");
Array
(
[merchant] => 683XXXX225
[order_id] => CKH060JXXXXXFRA2
[payment_ref_id] => MXXXXXXXXtIMDYwSjFRSlBRMUZSQTIuMTg0NTE2Yzc3ZmEzNmEwZTJlZjk=
[status] => Success
[status_code] => 00_0000_000
[message] => Successful Transaction
[payment_dt] => 20211123235008
[issuer_payment_ref] => MTEyMzIzNDg1NzUwOXXXXXtIMDYwSjFRSlBRMUZSQTIuMTg0NTE2Yzc3ZmEzNmEwZTJlZjk=
)
$helper = new Helper($config);
$response = $helper->verifyPayment($response['payment_ref_id']);
{
merchantId: "683XXXX225",
orderId: "CKH060JXXXXXFRA2",
paymentRefId: "MXXXXXXXXtIMDYwSjFRSlBRMUZSQTIuMTg0NTE2Yzc3ZmEzNmEwZTJlZjk=",
amount: "16",
clientMobileNo: "016****5428",
merchantMobileNo: "01XXXXXXX10",
orderDateTime: "2021-11-23 23:48:22.0",
issuerPaymentDateTime: "2021-11-23 23:50:08.0",
issuerPaymentRefNo: "000XXXW",
additionalMerchantInfo: null,
status: "Success",
statusCode: "000",
cancelIssuerDateTime: null,
cancelIssuerRefNo: null
}
Login to your Nagad Merchant Panel
https://auth.mynagad.com:10900/authentication-service-provider-1.0/login
Step 1: In the Merchant Portal, Go to Merchant Integration Details under Merchant Management Menu. You will get the Merchant ID which is your Merchant ID for Integration.
Then, Click on “Key Generate” and Download the Merchant Private Key and Merchant Public Key.
Step 2: _Go to Merchant Integration under Merchant Management Menu. Put your Call Back URL and Upload the Merchant Public Key which you have downloaded in Step 1. Add and Submit!_
Step 3: _Usage Production Details . You have to use public key and private key that you have downloaded!_