Biblioteca PHP nativa para integrar sua aplicação ao sistema BCA (Bank Central Asia). Para uma documentação mais clara e completa, visite o site oficial em Developer BCA.
Para o Laravel
Framework, você pode usar a biblioteca Odenktools Laravel BCA.
Se você se sentir ajudado por esta biblioteca, não esqueça de dar uma ESTRELA para esta biblioteca.
Para mais detalhes, visite php bca TravisCI
Obtenha informações de saldo
/fire/accounts/balance
Obtenha informações da conta do beneficiário
/fire/accounts
Obtenha o status de uma transação
/fire/transactions
Transferir fundos diretamente para a conta do beneficiário
/fire/transactions/to-account
Transferir fundos para o beneficiário para serem levados pessoalmente
/fire/transactions/cash-transfer
Alterar os detalhes da transação de transferência de dinheiro
/fire/transactions/cash-transfer/amend
Cancelar transação de transferência de dinheiro
/fire/transactions/cash-transfer/cancel
Obtenha o status do pagamento por CompanyCode e CustomerNumber ou RequestID
/va/payments?CompanyCode=&RequestID=
composer require " odenktools/php-bca "
Antes de entrar no estágio LOGIN
, certifique-se de que todos os requisitos como CORP_ID, CLIENT_KEY, CLIENT_SECRET, APIKEY, SECRETKEY
sejam conhecidos.
$ 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
// BcaBcaHttp::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 );
Usando opções de curvatura personalizadas
$ 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
// BcaBcaHttp::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 );
Após o login bem-sucedido, certifique-se de salvar o valor TOKEN
em um local seguro, pois o valor TOKEN
será usado para a próxima atribuição.
Certifique-se de obter o valor TOKEN
e que o TOKEN
ainda seja válido (não expirou).
// 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 );
Certifique-se de obter o valor TOKEN
e que o TOKEN
ainda seja válido (não expirou).
// 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 );
Para dados remark1
, remark2
, nomorPO
será substituído por lowercase
e whitespace
serão removidos
Certifique-se de obter o valor TOKEN
e que o TOKEN
ainda seja válido (não expirou).
// 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 );
$ 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 );
Certifique-se de obter o valor TOKEN
e que o TOKEN
ainda seja válido (não expirou).
// Ini adalah nilai token yang dihasilkan saat login
$ token = " MvXPqa5bQs5U09Bbn8uejBE79BjI3NNCwXrtMnjdu52heeZmw9oXgB " ;
$ response = $ bca -> getDepositRate ( $ token );
// Cek hasil response berhasil atau tidak
echo json_encode ( $ response );
Quando útil para fins de teste.
$ 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 ;
Para realizar o teste, execute o seguinte command
composer run-script test
Ou use PHPUnit
vendor/bin/phpunit --verbose --coverage-text
Para um exemplo da linha de comando:
git remote add fork [email protected]: $USER /php-bca.git # Tambahkan fork pada remote, $USER adalah username GitHub anda
Por exemplo:
git remote add fork [email protected]:johndoe/php-bca.git
branch
de recurso da seguinte maneira git checkout -b feature/my-new-feature origin/develop
Reformat kode
usando o PSR-2 Coding Style Guidegit commit -am ' Menambahkan fitur A..B..C..D '
Push
para o branch que foi criado git push fork feature/my-new-feature
Licença MIT
Copyright (c) 2017 odenktools
É concedida permissão, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos arquivos de documentação associados (o "Software"), para negociar o Software sem restrições, incluindo, sem limitação, os direitos de usar, copiar, modificar, mesclar , publicar, distribuir, sublicenciar e/ou vender cópias do Software e permitir que as pessoas a quem o Software seja fornecido o façam, sujeito às seguintes condições:
O aviso de direitos autorais acima e este aviso de permissão serão incluídos em todas as cópias ou partes substanciais do Software.
O SOFTWARE É FORNECIDO "NO ESTADO EM QUE SE ENCONTRA", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM DETERMINADO FIM E NÃO VIOLAÇÃO. EM HIPÓTESE ALGUMA OS AUTORES OU DETENTORES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER REIVINDICAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGÓCIOS EM O SOFTWARE.