odenktools / php-bca
用于开发BCA付款的库REST API
Requires
- php: >=5.4
- ext-curl: *
- mashape/unirest-php: 3.0.4
- nesbot/carbon: ~1.18 || ^2.41
Requires (Dev)
- phpunit/phpunit: ^4.8.35 || ^5.7 || ^6.4 || ^7.0
This package is auto-updated.
Last update: 2024-09-07 01:23:07 UTC
README
BCA (Bank Central Asia)
用于将您的应用程序与BCA(Bank Central Asia)系统集成的本地PHP库。有关更详细和完整的文档,请访问其官方网站 Developer BCA。
对于Laravel
框架,可以使用Odenktools Laravel BCA库。
如果您觉得这个库很有帮助,请不要忘记给它STAR。
PHP版本支持
- PHP 5.4.x
- PHP 5.5.x
- PHP 5.6.x
- PHP 7.0.x
- PHP 7.1.x
- PHP 7.2.x
- PHP 7.3.x
有关更详细的信息,请访问 PHP BCA TravisCI
库功能
(2017年12月的新BCA API)
获取余额信息
/fire/accounts/balance
获取收款人账户信息
/fire/accounts
获取交易状态
/fire/transactions
直接向收款人账户转账资金
/fire/transactions/to-account
向收款人转账并亲自取款
/fire/transactions/cash-transfer
修改现金转账交易详情
/fire/transactions/cash-transfer/amend
取消现金转账交易
/fire/transactions/cash-transfer/cancel
根据CompanyCode和CustomerNumber或RequestID获取支付状态
/va/payments?CompanyCode=&RequestID=
安装
composer require "odenktools/php-bca"
连接和设置
在进入登录
阶段之前,请确保您已了解所有需求,例如CORP_ID, CLIENT_KEY, CLIENT_SECRET, APIKEY, SECRETKEY
。
$options = array( 'scheme' => 'https', 'port' => 443, 'host' => 'sandbox.bca.co.id', 'timezone' => 'Asia/Jakarta', 'timeout' => 30, 'debug' => true, 'development' => true ); // Setting default timezone Anda \Bca\BcaHttp::setTimeZone('Asia/Jakarta'); // ATAU // \Bca\BcaHttp::setTimeZone('Asia/Singapore'); $corp_id = "BCAAPI2016"; $client_key = "NILAI-CLIENT-KEY-ANDA"; $client_secret = "NILAI-CLIENT-SECRET-ANDA"; $apikey = "NILAI-APIKEY-ANDA"; $secret = "SECRETKEY-ANDA"; $bca = new \Bca\BcaHttp($corp_id, $client_key, $client_secret, $apikey, $secret); // ATAU $bca = new \Bca\BcaHttp($corp_id, $client_key, $client_secret, $apikey, $secret, $options);
使用自定义Curl Options
$options = array( 'curl_options' => array( CURLOPT_SSL_VERIFYHOST => 0, CURLOPT_SSLVERSION => 6, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_TIMEOUT => 60 ), 'scheme' => 'https', 'port' => 443, 'host' => 'sandbox.bca.co.id', 'timezone' => 'Asia/Jakarta', 'timeout' => 30, 'debug' => true, 'development' => true ); // Setting default timezone Anda \Bca\BcaHttp::setTimeZone('Asia/Jakarta'); // ATAU // \Bca\BcaHttp::setTimeZone('Asia/Singapore'); $corp_id = "BCAAPI2016"; $client_key = "NILAI-CLIENT-KEY-ANDA"; $client_secret = "NILAI-CLIENT-SECRET-ANDA"; $apikey = "NILAI-APIKEY-ANDA"; $secret = "SECRETKEY-ANDA"; $bca = new \Bca\BcaHttp($corp_id, $client_key, $client_secret, $apikey, $secret, $options);
登录
$corp_id = "CORP_ID-ANDA"; $client_key = "NILAI-CLIENT-KEY-ANDA"; $client_secret = "NILAI-CLIENT-SECRET-ANDA"; $apikey = "NILAI-APIKEY-ANDA"; $secret = "SECRETKEY-ANDA"; $bca = new \Bca\BcaHttp($corp_id, $client_key, $client_secret, $apikey, $secret); // Request Login dan dapatkan nilai OAUTH $response = $bca->httpAuth(); // Cek hasil response berhasil atau tidak echo json_encode($response);
登录成功后,请确保您已将TOKEN
保存在安全的地方,因为该TOKEN
将用于后续任务。
余额信息
请确保您已获取TOKEN
,并且该TOKEN
仍然有效(未过期)。
// Ini adalah nilai token yang dihasilkan saat login $token = "MvXPqa5bQs5U09Bbn8uejBE79BjI3NNCwXrtMnjdu52heeZmw9oXgB"; //Nomor akun yang akan di ambil informasi saldonya, menggunakan ARRAY $arrayAccNumber = array('0201245680', '0063001004', '1111111111'); $response = $bca->getBalanceInfo($token, $arrayAccNumber); // Cek hasil response berhasil atau tidak echo json_encode($response);
资金转账(更新)
请确保您已获取TOKEN
,并且该TOKEN
仍然有效(未过期)。
// Ini adalah nilai token yang dihasilkan saat login $token = "MvXPqa5bQs5U09Bbn8uejBE79BjI3NNCwXrtMnjdu52heeZmw9oXgB"; $amount = '50000.00'; // Nilai akun bank anda $nomorakun = '0201245680'; // Nilai akun bank yang akan ditransfer $nomordestinasi = '0201245681'; // Nomor PO, silahkan sesuaikan $nomorPO = '12345/PO/2017'; // Nomor Transaksi anda, Silahkan generate sesuai kebutuhan anda $nomorTransaksiID = '00000001'; $remark1 = 'Transfer Test Using Odenktools BCA'; $remark2 = 'Online Transfer Using Odenktools BCA'; // value hanya support idr dan usd $mataUang = 'idr'; $response = $bca->fundTransfers($token, $amount, $nomorakun, $nomordestinasi, $nomorPO, $remark1, $remark2, $nomorTransaksiID, $mataUang); // Cek hasil response berhasil atau tidak echo json_encode($response);
对于remark1
、remark2
、nomorPO
,将替换为lowercase
并删除whitespace
账户报表
请确保您已获取TOKEN
,并且该TOKEN
仍然有效(未过期)。
// Ini adalah nilai token yang dihasilkan saat login $token = "MvXPqa5bQs5U09Bbn8uejBE79BjI3NNCwXrtMnjdu52heeZmw9oXgB"; // Nilai akun bank anda $nomorakun = '0201245680'; // Tanggal start transaksi anda $startdate = '2016-08-29'; // Tanggal akhir transaksi anda $enddate = '2016-09-01'; $response = $bca->getAccountStatement($token, $nomorakun, $startdate, $enddate); // Cek hasil response berhasil atau tidak echo json_encode($response);
外汇汇率
//Tipe rate : bn, e-rate, tt, tc $rateType = 'e-rate'; $mataUang = 'usd'; $response = $bca->getForexRate($token, $rateType, $mataUang); // Cek hasil response berhasil atau tidak echo json_encode($response);
最近ATM位置
$latitude = '-6.1900718'; $longitude = '106.797190'; $totalAtmShow = '10'; $radius = '20'; $response = $bca->getAtmLocation($token, $latitude, $longitude, $totalAtmShow, $radius); // Cek hasil response berhasil atau tidak echo json_encode($response);
存款利率
请确保您已获取TOKEN
,并且该TOKEN
仍然有效(未过期)。
// Ini adalah nilai token yang dihasilkan saat login $token = "MvXPqa5bQs5U09Bbn8uejBE79BjI3NNCwXrtMnjdu52heeZmw9oXgB"; $response = $bca->getDepositRate($token); // Cek hasil response berhasil atau tidak echo json_encode($response);
生成签名
用于测试目的。
$secret = "NILAI-SECRET-ANDA"; // Ini adalah nilai token yang dihasilkan saat login $token = "MvXPqa5bQs5U09Bbn8uejBE79BjI3NNCwXrtMnjdu52heeZmw9oXgB"; $uriSign = "GET:/general/info-bca/atm"; // Format timestamp harus dalam ISO8601 format (yyyy-MM-ddTHH:mm:ss.SSSTZD) $isoTime = "2016-02-03T10:00:00.000+07:00"; $bodyData = array(); //nilai body anda disini $bodyData['a'] = "BLAAA-BLLLAA"; $bodyData['b'] = "BLEHH-BLLLAA"; //ketentuan BCA array harus disort terlebih dahulu ksort($bodyData); $authSignature = \Bca\BcaHttp::generateSign($uriSign, $token, $secret, $isoTime, $bodyData); echo $authSignature;
测试
要执行测试,请运行以下command
composer run-script test
或使用PHPUnit
vendor/bin/phpunit --verbose --coverage-text
如何贡献
- 进行
FORK
代码。 - 将
FORK
添加到您的git remote
例如命令行
git remote add fork git@github.com:$USER/php-bca.git # Tambahkan fork pada remote, $USER adalah username GitHub anda
例如
git remote add fork git@github.com:johndoe/php-bca.git
- FORK后,创建一个新的
branch
进行功能开发
git checkout -b feature/my-new-feature origin/develop
- 在该仓库上进行工作。
- 在提交之前,请使用相应的PSR-2 Coding Style Guide进行代码格式化
- 完成后,进行提交
git commit -am 'Menambahkan fitur A..B..C..D'
- 将更改推送到已创建的branch
git push fork feature/my-new-feature
- 在GitHub上创建PullRequest,我们的团队将进行审查。完成。
指南
- 遵循标准PSR-2 Coding Style Guide
- 请确保所有测试都已通过。如果您添加了新功能,您必须为该功能创建相关的单元测试。
- 使用rebase以避免冲突和合并代码
- 如果您添加了功能,可能还需要更新此仓库中的文档页面。
许可
MIT许可
版权所有(c)2017 odenktools
特此授予任何人免费获得本软件及其相关文档文件(以下简称“软件”)的副本的许可,无限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许获得软件的人进行此类操作,但需遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是在合同行为、侵权行为或其他情况下,这些索赔、损害或其他责任源于、因之产生或与此软件的使用或其他操作有关。