dbseller / sdk-api-pix-bb
用于巴西银行PIX API的PHP客户端
2.0.0
2022-10-05 16:31 UTC
Requires
- php: >=7.4.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: 7.5.0
Requires (Dev)
- friendsofphp/php-cs-fixer: v3.11.0
- phpunit/phpunit: 9.5.25
- squizlabs/php_codesniffer: 3.7.1
This package is not auto-updated.
Last update: 2024-09-20 03:10:23 UTC
README
用于管理BB银行PIX(即时支付系统)服务的API。
- API版本:1.8
- 有关巴西银行API集成到PIX V1的更多信息,请访问https://developers.bb.com.br
要求
PHP >=5.5
安装和使用
Composer
要通过composer安装,请添加以下仓库,以及依赖项
{
"repositories": [
{
"type": "vcs",
"url": "git@github.com:tiagoskabrazil/pixbbrestclient-php.git"
}
],
"require": {
"montreal/pixbbapi": "dev-dev-pixbbrestclient-php",
}
}
之后,执行composer install
手动安装
下载文件,并将autoload.php
包含到您要使用的地方
require_once('/path/para/pixbbapi/vendor/autoload.php');
测试
要运行测试
composer install
./vendor/bin/phpunit
使用示例 - 生成QRCode
按照安装说明操作,然后执行以下操作
/******************************************************************************************************* * Definindo as configurações para o consumo da API Arrecadação Integrada ao PIX do BB. * Aqui definimos a URL para autenticação oauth2, a URL de chamada para a API ( temos teste, hmg e prd) * e as credenciais da aplicação, que são obtidas em app.developers.bb.com.br * *****************************************************************************************************/ $config = Swagger\Client\Configuration::getDefaultConfiguration(); $config->setAmbienteBB("T"); // em ambiente T usamos gw-dev-app-key nas requisições, em ambiente P, usamos gw-app-key. $config->setHost("https://api.sandbox.bb.com.br/pix-bb/v1"); // HOST BB HMG 1 //$config->setHost("https://api.hm.bb.com.br/pix-bb/v1"); // HOST BB HMG 2 //$config->setHost("https://api.bb.com.br/pix-bb/v1"); // HOST BB PRODUÇÃO $config->setUrlAutenticacaoOauth2("https://oauth.sandbox.bb.com.br/oauth/token"); //URL OAUTH BB //$config->setUrlAutenticacaoOauth2("https://oauth.hm.bb.com.br/oauth/token"); //URL OAUTH BB //$config->setUrlAutenticacaoOauth2("https://oauth.hm.bb.com.br/oauth/token"); //URL OAUTH BB PRD //developer_application_key $config->setChaveAplicacaoBB("d27b077907ffab60136de17dc0050656b911a5bb"); //client_id $config->setUsername("eyJpZCI6IjJmYWRkNTYtY2QwMi00ODNhLTgiLCJjb2RpZ29QdWJsaWNhZG9yIjowLCJjb2RpZ29Tb2Z0d2FyZSI6MjIyODgsInNlcXVlbmNpYWxJbnN0YWxhY2FvIjoxfQ"); //client_secret $config->setPassword("eyJpZCI6IjdhNjM3NTMtYjA3ZC00ODEyLWE4IiwiY29kaWdvUHVibGljYWRvciI6MCwiY29kaWdvU29mdHdhcmUiOjIyMjg4LCJzZXF1ZW5jaWFsSW5zdGFsYWNhbyI6MSwic2VxdWVuY2lhbENyZWRlbmNpYWwiOjEsImFtYmllbnRlIjoiaG9tb2xvZ2FjYW8iLCJpYXQiOjE2MzE3MzQ4MjM2MzF9"); /********************************************************************************************* * Obtendo access token e utilizando no configurador * ******************************************************************************************/ $oauth2Api = new Swagger\Client\Api\Oauth2Api(new GuzzleHttp\Client(),$config); try { $token = $oauth2Api->gerarAccessToken(); $config->setAccessToken($token); } catch (Exception $e) { echo 'ERRO->', $e->getMessage(), PHP_EOL; } /********************************************************************************************* * Efetuando chamada a API de geração de QRCode usando o token obtido * ******************************************************************************************/ $apiInstance = new Swagger\Client\Api\QrCodesApi(new GuzzleHttp\Client(),$config); $body = new \Swagger\Client\Model\ArrecadacaoqrcodesBody(); try { $body['numero_convenio']=62191; $body['indicador_codigo_barras'] = "S"; $body['codigo_guia_recebimento'] = "83660000000199800053846101172358000000000000"; $body['email_devedor'] = "contribuinte.silva@provedor.com.br"; $body['codigo_pais_telefone_devedor'] = 55; $body['ddd_telefone_devedor'] = 61; $body['numero_telefone_devedor'] = "999731240"; $body['codigo_solicitacao_banco_central_brasil'] = "88a33759-78b0-43b7-8c60-e5e3e7cb55fe"; $body['descricao_solicitacao_pagamento'] = "Arrecadação Pix"; $body['valor_original_solicitacao'] = 18.98; $body['cpf_devedor'] = "19917885250"; $body['cnpj_devedor'] = null; $body['nome_devedor'] = "Contribuinte da Silva"; $body['quantidade_segundo_expiracao'] = 3600; $body['lista_informacao_adicional'] = null; $result = $apiInstance->criaBoletoBancarioId($body, $config->getAccessToken(), $config->getChaveAplicacaoBB()); } catch (Exception $e) { echo 'Erro na chamada QrCodesApi->criaBoletoBancarioId: ', $e->getMessage(), PHP_EOL; } ?> OBS: $body também pode ser passado no formato JSON, conforme exemplo abaixo: { "numeroConvenio": 62191, "indicadorCodigoBarras": "S", "codigoGuiaRecebimento": "83660000000199800009846101173758000000000000", "emailDevedor": "contribuinte.silva@provedor.com.br", "codigoPaisTelefoneDevedor": 55, "dddTelefoneDevedor": 61, "numeroTelefoneDevedor": "999731240", "codigoSolicitacaoBancoCentralBrasil": "88a33759-78b0-43b7-8c60-e5e3e7cb55fe", "descricaoSolicitacaoPagamento": "Arrecadação Pix", "valorOriginalSolicitacao": 19.98, "cpfDevedor": "19917885250", "nomeDevedor": "Contribuinte da Silva", "quantidadeSegundoExpiracao": 3600, "listaInformacaoAdicional": [ { "codigoInformacaoAdicional": "IPTU", "textoInformacaoAdicional": "COTA ÚNICA 2021" } ] }
BB返回的示例
{
"timestampCriacaoSolicitacao": "2021-11-11T14:34:31.24-03:00",
"estadoSolicitacao": "ATIVA",
"codigoConciliacaoSolicitante": "ogyevSKPZSj770FYgbf1Ub1GavxgOpvPKy9",
"numeroVersaoSolicitacaoPagamento": "0",
"linkQrCode": "qrcodepix-h.bb.com.br/pix/v2/38472887-c0e5-41db-b1c6-20cc3e6086e5",
"qrCode": "00020101021226870014br.gov.bcb.pix2565qrcodepix-h.bb.com.br/pix/v2/38472887-c0e5-41db-b1c6-20cc3e6086e55204000053039865802BR5925SECRETARIA DA RECEITA FED6008BRASILIA62070503***63043C35"
}
使用示例 - 查询生成的QRCode
/******************************************************************************************************* * Definindo as configurações para o consumo da API Arrecadação Integrada ao PIX do BB. * Aqui definimos a URL para autenticação oauth2, a URL de chamada para a API ( temos teste, hmg e prd) * e as credenciais da aplicação, que são obtidas em app.developers.bb.com.br * *****************************************************************************************************/ $config = Swagger\Client\Configuration::getDefaultConfiguration(); $config->setAmbienteBB("T"); // em ambiente T usamos gw-dev-app-key nas requisições, em ambiente P, usamos gw-app-key. $config->setHost("https://api.sandbox.bb.com.br/pix-bb/v1"); // HOST BB HMG 1 //$config->setHost("https://api.hm.bb.com.br/pix-bb/v1"); // HOST BB HMG 2 //$config->setHost("https://api.bb.com.br/pix-bb/v1"); // HOST BB PRODUÇÃO $config->setUrlAutenticacaoOauth2("https://oauth.sandbox.bb.com.br/oauth/token"); //URL OAUTH BB //$config->setUrlAutenticacaoOauth2("https://oauth.hm.bb.com.br/oauth/token"); //URL OAUTH BB //$config->setUrlAutenticacaoOauth2("https://oauth.hm.bb.com.br/oauth/token"); //URL OAUTH BB PRD //developer_application_key $config->setChaveAplicacaoBB("d27b077907ffab60136de17dc0050656b911a5bb"); //client_id $config->setUsername("eyJpZCI6IjJmYWRkNTYtY2QwMi00ODNhLTgiLCJjb2RpZ29QdWJsaWNhZG9yIjowLCJjb2RpZ29Tb2Z0d2FyZSI6MjIyODgsInNlcXVlbmNpYWxJbnN0YWxhY2FvIjoxfQ"); //client_secret $config->setPassword("eyJpZCI6IjdhNjM3NTMtYjA3ZC00ODEyLWE4IiwiY29kaWdvUHVibGljYWRvciI6MCwiY29kaWdvU29mdHdhcmUiOjIyMjg4LCJzZXF1ZW5jaWFsSW5zdGFsYWNhbyI6MSwic2VxdWVuY2lhbENyZWRlbmNpYWwiOjEsImFtYmllbnRlIjoiaG9tb2xvZ2FjYW8iLCJpYXQiOjE2MzE3MzQ4MjM2MzF9"); /********************************************************************************************* * Obtendo access token e utilizando no configurador * ******************************************************************************************/ $oauth2Api = new Swagger\Client\Api\Oauth2Api(new GuzzleHttp\Client(),$config); try { $token = $oauth2Api->gerarAccessToken(); $config->setAccessToken($token); } catch (Exception $e) { echo 'ERRO->', $e->getMessage(), PHP_EOL; } /********************************************************************************************* * Efetuando chamada a API de consulta de QRCode usando o token obtido * ******************************************************************************************/ $apiInstance = new Swagger\Client\Api\QrCodesApi(new GuzzleHttp\Client(),$config); try { $numeroConvenio = 12345; $codigoGuiaRecebimento = "54321"; $result = $apiInstance->consultaQrCodeGuiaRecolhimento($config->getAccessToken(), $config->getChaveAplicacaoBB(), $numeroConvenio, $codigoGuiaRecebimento); } catch (Exception $e) { echo 'Erro na chamada QrCodesApi->consultaQrCodeGuiaRecolhimento: ', $e->getMessage(), PHP_EOL; } ?>
BB返回的示例
Swagger\Client\Model\InlineResponse200 Object
(
[container:protected] => Array
(
[codigo_conciliacao_solicitante] => FzzeRbS7JEfSyYdCRvV6L0WDiLxgx7Obhqk
[email_devedor] => contribuinte.silva@provedor.com.br
[codigo_pais_telefone_devedor] => 55
[ddd_telefone_devedor] => 61
[numero_telefone_devedor] => 999731240
[timestamp_criacao_solicitacao] => 2021-05-10T17:15:48.53-03:00
[quantidade_segundo_expiracao] => 1728000
[estado_solicitacao] => CONCLUIDA
[numero_versao_solicitacao_pagamento] => 3
[link_qr_code] => qrcodepix-h.bb.com.br/pix/v2/b6063404-fc6d-4dad-a416-0e153a9f8621
[qr_code] => 00020101021226870014br.gov.bcb.pix2565qrcodepix-h.bb.com.br/pix/v2/b6063404-fc6d-4dad-a416-0e153a9f86215204000053039865802BR5925SECRETARIA DA RECEITA FED6008BRASILIA62070503***630491D1
[cpf_devedor] => -1556951230
[cnpj_devedor] => 0
[nome_devedor] => Contribuinte da Silva
[valor_original_solicitacao] => 19.98
[codigo_solicitacao_banco_central_brasil] => 88a33759-78b0-43b7-8c60-e5e3e7cb55fe
[descricao_solicitacao_pagamento] => Arrecadação Pix
[lista_informacao_adicional] => Array
(
[0] => Swagger\Client\Model\InlineResponse200ListaInformacaoAdicional Object
(
[container:protected] => Array
(
[codigo_informacao_adicional] => IPTU
[texto_informacao_adicional] => COTA ÚNICA 2021 teste 2
)
)
)
[codigo_identificador_pagamento] => E0000000020210520172412581438073
[valor_pagamento] => 19.98
[timestamp_pagamento] => 2021-05-20T14:24:27.00-03:00
[cpf_pagador] => 0
[cnpj_pagador] => 425010
[nome_cliente_pagador] => PADARIA LEMES PESSOA
[texto_informativo_pagador] =>
)
API端点文档
相对于https://api.sandbox.bb.com.br/pix-bb/v1(我们客户的默认测试环境。如果选择了其他环境,则URL将相对于该环境。)
模型文档
- ArrecadacaoqrcodesBody
- ArrecadacaoqrcodesIdBody
- ArrecadacaoqrcodesListaInformacaoAdicional
- ArrecadacaoqrcodesidListaInformacaoAdicional
- 错误
- 错误Erros
- 错误OAuthNaoAutorizado
- 错误OAuthNaoAutorizadoAttributes
- IdBaixarBody
- InlineResponse200
- InlineResponse2001
- InlineResponse2001ListaInformacaoAdicional
- InlineResponse2002
- InlineResponse2003
- InlineResponse200ListaInformacaoAdicional
- InlineResponse201
OAuth2-ClientCredentials
- 类型: OAuth
- 流程: 应用程序
- 授权URL:
- 作用域:
- pix.arrecadacao-requisicao: 允许使用收据数据(带或不带条形码)生成支付即时二维码(PIX)
- pix.arrecadacao-info: 允许使用收据数据(带或不带条形码)查询支付即时二维码(PIX)