nicepay / nicepay-php
Laravel 框架。
1.0.2
2024-08-14 07:24 UTC
Requires
- php: ^7.3|^8.0
- fruitcake/laravel-cors: ^2.0
- guzzlehttp/guzzle: ^7.0.1
- laravel/framework: ^8.75
- laravel/sanctum: ^2.11
- laravel/tinker: ^2.5
- nesbot/carbon: ^2.0
Requires (Dev)
- facade/ignition: ^2.5
- fakerphp/faker: ^1.9.1
- laravel/sail: ^1.0.1
- mockery/mockery: ^1.4.4
- nunomaduro/collision: ^5.10
- phpunit/phpunit: ^9.5.10
This package is auto-updated.
Last update: 2024-09-27 02:01:10 UTC
README
NICEPAY ❤️PHP!
这是NICEPAY支付API的官方PHP API客户端库。访问PHP库。更多关于产品信息及文档,请访问NICEPAY Docs以获取更多技术细节。此库提供访问Nicepay BI SNAP API的权限。
1. 安装
1.1 手动安装
您可以通过克隆或下载我们的源代码,然后将文件夹手动导入到您的项目中。
1.2 Composer 安装
如果您使用Composer,您可以通过Composer CLI进行安装
composer require nicepay/nicepay-php
2. 使用
2.1 客户端初始化和配置
从Nicepay 仪表板获取凭证,初始化Nicepay配置
警告:此处使用的凭证仅用于测试目的。
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-----"
2.2 访问令牌请求
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); }
2.2 支付请求(例如虚拟账户)
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 ]); }
注意事项
此库旨在使用PHP在您的后端服务器上实现。
获取帮助
- NICEPAY 文档
- NICEPAY 仪表板
- SNAP 文档
- 找不到您想要的答案?请发送电子邮件至cs@nicepay.co.id