odenktools/php-bca

用于开发BCA付款的库REST API

v2.3.2 2020-10-13 06:01 UTC

This package is auto-updated.

Last update: 2024-09-07 01:23:07 UTC


README

SensioLabsInsight Build Status codecov Scrutinizer Code Quality Latest Stable Version Latest Unstable Version Total Downloads

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);

对于remark1remark2nomorPO,将替换为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

特此授予任何人免费获得本软件及其相关文档文件(以下简称“软件”)的副本的许可,无限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许获得软件的人进行此类操作,但需遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是在合同行为、侵权行为或其他情况下,这些索赔、损害或其他责任源于、因之产生或与此软件的使用或其他操作有关。