fernandocvargas/bradesco-api-php

Bradesco 收款条 API 的 PHP SDK

dev-master 2021-05-17 23:52 UTC

This package is auto-updated.

Last update: 2024-09-18 07:16:41 UTC


README

Bradesco 在线收款条 API 的 PHP SDK

描述

PHP SDK 用于与 Bradesco 在线收款条注册服务集成

Manual Registro de Boleto Bancario Online Dez17.pdf

安装

通过 Composer

composer require fernandcvargas/bradesco-api-php

参数

如何使用

  1. 参数可以通过环境变量定义
putenv('BRADESCO_SANDBOX=true');
putenv('BRADESCO_TIMEOUT=20');
putenv('BRADESCO_CERT_PATH=myCertificate.pfx');
putenv('BRADESCO_CERT_PASSWORD=myPassword');

或通过 array 传递

Bradesco::setParams([
    'BRADESCO_SANDBOX' => true,
    'BRADESCO_TIMEOUT' => 20,
    'BRADESCO_CERT_PATH' => 'myCertificate.pfx',
    'BRADESCO_CERT_PASSWORD' => 'myPassword'
]);
  1. 然后,只需使用以下命令并传递格式为 array 的收款条数据。
$boleto = \BradescoApi\BankSlip::create($data);

数据标准化

添加了多个函数以根据 Bradesco API 的要求标准化数据

  • 缺失的字段将插入其相应的默认值(手册第 19 页)。
  • null 值被替换为空字符串 ""。
  • integerfloat 值被转换为字符串。
  • 包含特殊字符(如 "ção")的值被替换为基本字符(如 "cao")。
  • 收款人姓名和地址的值被截断为最大字符数。
  • 格式为 "yyyy-mm-dd" 或 "dd/mm/yyy" 的日期被标准化为 "dd.mm.yyyy"。
  • 格式为 14.90 或 "14,90" 的货币被标准化为 "1490"。
  • 格式为 "123.456.789-01" 的 CPF 和 CNPJ 号码被标准化为 "00012345678901"。

实现示例

error_reporting(E_ALL);
ini_set('display_errors', 1);

require __DIR__.'/vendor/autoload.php';

putenv('BRADESCO_SANDBOX=true');
putenv('BRADESCO_TIMEOUT=20');
putenv('BRADESCO_CERT_PATH=myCertificate.pfx');
putenv('BRADESCO_CERT_PASSWORD=myPassword');

use BradescoApi\Exceptions\BradescoApiException;
use BradescoApi\Exceptions\BradescoRequestException;

$data = [
  "nuCPFCNPJ" => "123456789",
  "filialCPFCNPJ" => "0001",
  "ctrlCPFCNPJ" => "39",
  "idProduto" => "09",
  "nuNegociacao" => "123400000001234567",
  "nuCliente" => "123456",
  "dtEmissaoTitulo" => "25/05/2017",
  "dtVencimentoTitulo" => "2017-06-20",
  "vlNominalTitulo" => 100.00,
  "cdEspecieTitulo" => "04",
  "nomePagador" => "Cliente Teste",
  "logradouroPagador" => "Rua Teste",
  "nuLogradouroPagador" => "90",
  "complementoLogradouroPagador" => null,
  "cepPagador" => "12345",
  "complementoCepPagador" => "500",
  "bairroPagador" => "Bairro Teste",
  "municipioPagador" => "Cidade Teste",
  "ufPagador" => "SP",
  "nuCpfcnpjPagador" => "549.435.260-98",
];

try {
    $bankSlip = \BradescoApi\BankSlip::create($data);
    print_r($bankSlip);
} catch (BradescoApiException $e) { // erros retornados pela API Bradesco
    echo sprintf("%s (%s)", $e->getMessage(), $e->getErrorCode());
} catch (BradescoRequestException $e) { // erros de servidor (erros HTTP 4xx e 5xx)
    eecho sprintf("%s (%s)", $e->getMessage(), $e->getErrorCode());
} catch (\Exception $e) { // demais erros
    echo $e->getMessage();
}

测试

如要贡献,请实现 PHPUnit 的单元测试。

为了执行

  1. 在项目根目录中复制 phpunit.xml.dist 到 phpunit.xml
  2. 更改 ENV 参数以使用您的访问数据
  3. 在项目文件夹中打开终端并执行以下命令
composer test