PHP code example of nicepay / nicepay-laravel
1. Go to this page and download the library: Download nicepay/nicepay-laravel library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
nicepay / nicepay-laravel example snippets
protected $client_id = "IONPAYTEST";
protected $base_url = "https://dev.nicepay.co.id/nicepay/v1.0/access-token/b2b";
PROTECTED $key = "-----BEGIN RSA PRIVATE KEY-----" . "\r\n" ."MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAInJe1G22R2fMchIE6BjtYRqyMj6lurP/zq6vy79WaiGKt0Fxs4q3Ab4ifmOXd97ynS5f0JRfIqakXDcV/e2rx9bFdsS2HORY7o5At7D5E3tkyNM9smI/7dk8d3O0fyeZyrmPMySghzgkR3oMEDW1TCD5q63Hh/oq0LKZ/4Jjcb9AgMBAAECgYA4Boz2NPsjaE+9uFECrohoR2NNFVe4Msr8/mIuoSWLuMJFDMxBmHvO+dBggNr6vEMeIy7zsF6LnT32PiImv0mFRY5fRD5iLAAlIdh8ux9NXDIHgyera/PW4nyMaz2uC67MRm7uhCTKfDAJK7LXqrNVDlIBFdweH5uzmrPBn77foQJBAMPCnCzR9vIfqbk7gQaA0hVnXL3qBQPMmHaeIk0BMAfXTVq37PUfryo+80XXgEP1mN/e7f10GDUPFiVw6Wfwz38CQQC0L+xoxraftGnwFcVN1cK/MwqGS+DYNXnddo7Hu3+RShUjCz5E5NzVWH5yHu0E0Zt3sdYD2t7u7HSr9wn96OeDAkEApzB6eb0JD1kDd3PeilNTGXyhtIE9rzT5sbT0zpeJEelL44LaGa/pxkblNm0K2v/ShMC8uY6Bbi9oVqnMbj04uQJAJDIgTmfkla5bPZRR/zG6nkf1jEa/0w7i/R7szaiXlqsIFfMTPimvRtgxBmG6ASbOETxTHpEgCWTMhyLoCe54WwJATmPDSXk4APUQNvX5rr5OSfGWEOo67cKBvp5Wst+tpvc6AbIJeiRFlKF4fXYTb6HtiuulgwQNePuvlzlt2Q8hqQ=="."\r\n"."-----END RSA PRIVATE KEY-----"
public function generateAccessToken()
{
$helper = new Helpers();
$x_time_stamp = Carbon::now()->toIso8601String();
$client_id = $this->client_id;
$addInfo = new \stdClass();
$bd = [
"grantType" => "client_credentials",
"additionalInfo" => json_encode($addInfo)
];
$string_to_sign = $client_id . "|" . $x_time_stamp;
print_r($string_to_sign);
print_r("\r\n");
$signature = $helper->generateSignature($string_to_sign, $this->key, OPENSSL_ALGO_SHA256);
print_r($signature);
print_r("\r\n");
$header = $helper->generateHeaderAccessToken($x_time_stamp, $client_id, $signature);
}
public function generateVirtualAccount()
{
$helper = new Helpers();
$http_method = "POST";
$date = Carbon::now();
$x_time_stamp = $date->toIso8601String();
$time_stamp = $date->format("YmdHis");
$partner_id = "TNICEVA023";
$client_secret = $this->client_secret;
$access_token = $this->access_token;
$external_id = "MrVATst" . $time_stamp . Str::random(5);
$totalAmount = [
"value" => "15000.00",
"currency" => "IDR"
];
$additionalInfo = [
"bankCd" => "CENA",
"goodsNm" => "CENA",
"dbProcessUrl" => "https://ptsv2.com/t/jhon/post",
"vacctValidDt" => "",
"vacctValidTm" => "",
"msId" => "",
"msFee" => "",
"mbFee" => "",
"mbFeeType" => ""
];
$body = [
"partnerServiceId" => "",
"customerNo" => "", //for fix
"virtualAccountNo" => "",
"virtualAccountName" => "Testing Create Virtual Account Nicepay",
"trxId" => "trxIdVa" . $time_stamp,
"totalAmount" => $totalAmount,
"additionalInfo" => $additionalInfo
];
$bodyModel = [
"partnerServiceId" => "",
"customerNo" => "",
"virtualAccountNo" => "",
"virtualAccountName" => "Laravel SNAP VA",
"trxId" => "trxIdVa" . $time_stamp,
"totalAmount" => $totalAmount,
"additionalInfo" => $additionalInfo
];
// $encBody = json_encode($bodyModel); //minify body
$string_to_sign = $helper->generateStringToSign(
$http_method,
$this->end_point,
$access_token,
$bodyModel,
$x_time_stamp
);
$signature = $helper->hmacSHA512Encoded(
$string_to_sign,
$client_secret,
OPENSSL_ALGO_SHA512
);
$header = $helper->generateHeader(
$access_token,
$x_time_stamp,
$signature,
$partner_id,
$external_id,
$partner_id . "02"
);
try {
$response = Http::withHeaders($header)->post($this->domain . $this->end_point, $bodyModel);
$data = [
"data" => $response
];
} catch (\Throwable $th) {
throw $th;
return response()->json([
'status' => 500,
'message' => "Internal Server Error",
'data' => $th
]);
}
return response()->json([
'status' => $response->status(),
'message' => $response->successful(),
'data' => $data
]);
}
composer