Skip to content

Commit 73c9ab7

Browse files
authored
Merge pull request #1071 from robmachado/master
inclusão do evento de conciliação financeira
2 parents c563888 + 342f82e commit 73c9ab7

16 files changed

+1144
-20
lines changed

Diff for: examples/5.0testSefazCadastro.php

+11-8
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
use NFePHP\Common\Soap\SoapCurl;
99

1010
//tanto o config.json como o certificado.pfx podem estar
11-
//armazenados em uma base de dados, então não é necessário
12-
///trabalhar com arquivos, este script abaixo serve apenas como
11+
//armazenados em uma base de dados, então não é necessário
12+
///trabalhar com arquivos, este script abaixo serve apenas como
1313
//exemplo durante a fase de desenvolvimento e testes.
1414
$arr = [
1515
"atualizacao" => "2016-11-03 18:01:21",
@@ -27,21 +27,24 @@
2727
"proxyPort" => "",
2828
"proxyUser" => "",
2929
"proxyPass" => ""
30-
]
30+
]
3131
];
3232
//monta o config.json
3333
$configJson = json_encode($arr);
3434

3535
//carrega o conteudo do certificado.
36-
$content = file_get_contents('expired_certificate.pfx');
36+
$content = file_get_contents('fixtures/expired_certificate.pfx');
37+
$soap = new \NFePHP\Common\Soap\SoapFake();
38+
$soap->disableCertValidation(true);
3739

3840
$tools = new Tools($configJson, Certificate::readPfx($content, 'associacao'));
41+
$tools->loadSoapClass($soap);
3942

40-
//Somente para modelo 55, o modelo 65 evidentemente não possue
43+
//Somente para modelo 55, o modelo 65 evidentemente não possue
4144
//esse tipo de serviço
4245
$tools->model('55');
4346

44-
//coloque a UF e escolha entre
47+
//coloque a UF e escolha entre
4548
//CNPJ
4649
//IE
4750
//CPF
@@ -53,6 +56,6 @@
5356
$cpf = '';
5457
$response = $tools->sefazCadastro($uf, $cnpj, $iest, $cpf);
5558

56-
header('Content-type: text/xml; charset=UTF-8');
57-
echo $response;
59+
echo \NFePHP\NFe\Common\FakePretty::prettyPrint($response);
60+
5861

Diff for: examples/5.0testSefazCancela.php

+20-12
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@
99
use NFePHP\NFe\Complements;
1010

1111
//tanto o config.json como o certificado.pfx podem estar
12-
//armazenados em uma base de dados, então não é necessário
13-
///trabalhar com arquivos, este script abaixo serve apenas como
12+
//armazenados em uma base de dados, então não é necessário
13+
///trabalhar com arquivos, este script abaixo serve apenas como
1414
//exemplo durante a fase de desenvolvimento e testes.
1515
$arr = [
1616
"atualizacao" => "2016-11-03 18:01:21",
1717
"tpAmb" => 2,
1818
"razaosocial" => "SUA RAZAO SOCIAL LTDA",
1919
"cnpj" => "99999999999999",
20-
"siglaUF" => "SP",
20+
"siglaUF" => "MG",
2121
"schemes" => "PL_009_V4",
2222
"versao" => '4.00',
2323
"tokenIBPT" => "AAAAAAA",
@@ -28,26 +28,34 @@
2828
"proxyPort" => "",
2929
"proxyUser" => "",
3030
"proxyPass" => ""
31-
]
31+
]
3232
];
3333
//monta o config.json
3434
$configJson = json_encode($arr);
3535

3636
//carrega o conteudo do certificado.
37-
$content = file_get_contents('expired_certificate.pfx');
37+
$content = file_get_contents('fixtures/expired_certificate.pfx');
3838

3939
try {
40+
$soap = new \NFePHP\Common\Soap\SoapFake();
41+
$soap->disableCertValidation(true);
42+
43+
4044
$tools = new Tools($configJson, Certificate::readPfx($content, 'associacao'));
45+
$tools->loadSoapClass($soap);
4146
$tools->model('55');
42-
43-
$chave = '35170399999999999999550010000000301000000300';
47+
48+
$chave = '31170399999999999999550010000000301000000300';
4449
$xJust = 'Desistencia do comprador no momento da retirada';
4550
$nProt = '135170001136476';
4651
$response = $tools->sefazCancela($chave, $xJust, $nProt);
47-
52+
53+
echo \NFePHP\NFe\Common\FakePretty::prettyPrint($response);
54+
55+
/*
4856
//você pode padronizar os dados de retorno atraves da classe abaixo
4957
//de forma a facilitar a extração dos dados do XML
50-
//NOTA: mas lembre-se que esse XML muitas vezes será necessário,
58+
//NOTA: mas lembre-se que esse XML muitas vezes será necessário,
5159
// quando houver a necessidade de protocolos
5260
$stdCl = new Standardize($response);
5361
//nesse caso $std irá conter uma representação em stdClass do XML retornado
@@ -56,7 +64,7 @@
5664
$arr = $stdCl->toArray();
5765
//nesse caso o $json irá conter uma representação em JSON do XML retornado
5866
$json = $stdCl->toJson();
59-
67+
6068
//verifique se o evento foi processado
6169
if ($std->cStat != 128) {
6270
//houve alguma falha e o evento não foi processado
@@ -68,10 +76,10 @@
6876
$xml = Complements::toAuthorize($tools->lastRequest, $response);
6977
//grave o XML protocolado e prossiga com outras tarefas de seu aplicativo
7078
} else {
71-
//houve alguma falha no evento
79+
//houve alguma falha no evento
7280
//TRATAR
7381
}
74-
}
82+
}*/
7583
} catch (\Exception $e) {
7684
echo $e->getMessage();
7785
//TRATAR

Diff for: fake/fakeSefazConcilicacao.php

+127
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
<?php
2+
3+
error_reporting(E_ALL);
4+
ini_set('display_errors', 'On');
5+
require_once '../bootstrap.php';
6+
7+
use NFePHP\NFe\Tools;
8+
use NFePHP\Common\Certificate;
9+
use NFePHP\Common\Soap\SoapFake;
10+
use NFePHP\NFe\Common\FakePretty;
11+
12+
try {
13+
$arr = [
14+
"atualizacao" => "2016-11-03 18:01:21",
15+
"tpAmb" => 2,
16+
"razaosocial" => "SUA RAZAO SOCIAL LTDA",
17+
"cnpj" => "99999999999999",
18+
"siglaUF" => "SP",
19+
"schemes" => "PL_009_V4",
20+
"versao" => '4.00',
21+
"tokenIBPT" => "AAAAAAA",
22+
"CSC" => "GPB0JBWLUR6HWFTVEAS6RJ69GPCROFPBBB8G",
23+
"CSCid" => "000001",
24+
"proxyConf" => [
25+
"proxyIp" => "",
26+
"proxyPort" => "",
27+
"proxyUser" => "",
28+
"proxyPass" => ""
29+
]
30+
];
31+
$configJson = json_encode($arr);
32+
$soap = new SoapFake();
33+
$soap->disableCertValidation(true);
34+
35+
$content = file_get_contents('expired_certificate.pfx');
36+
$tools = new Tools($configJson, Certificate::readPfx($content, 'associacao'));
37+
$tools->model('55');
38+
$tools->setVerAplic('5.1.34');
39+
$tools->loadSoapClass($soap);
40+
41+
$std = new \stdClass();
42+
//$std->verAplic = '1.2.3'; //opcional se declarado anteriormente - versão da aplicação que está gerando o evento
43+
$std->nSeqEvento = 1;
44+
$std->chNFe = '12345678901234567890123456789012345678901234'; //chave de 44 digitos da nota do fornecedor
45+
$std->detPag[0] = new \stdClass();
46+
$std->detPag[0]->indPag = null; //opcional 0-Pagamento à Vista; 1-Pagamento à Prazo
47+
$std->detPag[0]->tPag = '04'; //Obrigatório forma de pagamento
48+
// '01' => 'Dinheiro',
49+
// '02' => 'Cheque',
50+
// '03' => 'Cartão de Crédito',
51+
// '04' => 'Cartão de Débito',
52+
// '05' => 'Cartão da Loja',
53+
// '10' => 'Vale Alimentação',
54+
// '11' => 'Vale Refeição',
55+
// '12' => 'Vale Presente',
56+
// '13' => 'Vale Combustível',
57+
// '14' => 'Duplicata Mercantil',
58+
// '15' => 'Boleto',
59+
// '16' => 'Depósito Bancário',
60+
// '17' => 'PIX Dinâmico',
61+
// '18' => 'Transferência bancária, Carteira Digital',
62+
// '19' => 'Programa fidelidade, Cashback, Créd Virt',
63+
// '20' => 'PIX Estático',
64+
// '21' => 'Crédito em Loja',
65+
// '22' => 'Pagamento Eletrônico não Informado - Falha de hardware',
66+
// '90' => 'Sem pagamento',
67+
// '99' => 'Outros'
68+
$std->detPag[0]->xPag = null; //opcional de 2 a 50 caracteres, usar quando tPag == 99
69+
$std->detPag[0]->vPag = 102.34; //Obrigatório valor pago
70+
$std->detPag[0]->dPag = '2024-07-30'; //Obrigatório data do pagamento
71+
72+
//grupo OPCIONAL de informações sobre envolvidos no pagamento
73+
$std->detPag[0]->CNPJPag = '12345678901234'; //opcional, caso seja informado a UFPag também deverá ser informada
74+
// CNPJ transacional do pagamento - Preencher informando o CNPJ do estabelecimento onde o pagamento foi
75+
// processado/transacionado/recebido quando a emissão do documento fiscal ocorrer em estabelecimento distinto
76+
$std->detPag[0]->UFPag = 'SP'; //opcional, caso seja informado a CNPJPag também deverá ser informada
77+
// UF do CNPJ do estabelecimento onde o pagamento foi processado/transacionado/recebido
78+
$std->detPag[0]->CNPJIF = '11111111111111'; //opcinal
79+
//CNPJ da instituição financeira, de pagamento, adquirente ou subadquirente.
80+
$std->detPag[0]->tBand = '20'; //opcional Bandeira da operadora de cartão
81+
//01 Visa
82+
//02 Mastercard
83+
//03 American Express
84+
//04 Sorocred
85+
//05 Diners Club
86+
//06 Elo
87+
//07 Hipercard
88+
//08 Aura
89+
//09 Cabal
90+
//10 Alelo
91+
//11 Banes Card
92+
//12 CalCard
93+
//13 Credz
94+
//14 Discover
95+
//15 GoodCard
96+
//16 GreenCard
97+
//17 Hiper
98+
//18 JcB
99+
//19 Mais
100+
//20 MaxVan
101+
//21 Policard
102+
//22 RedeCompras
103+
//23 Sodexo
104+
//24 ValeCard
105+
//25 Verocheque
106+
//26 VR
107+
//27 Ticket
108+
//99 Outros
109+
$std->detPag[0]->cAut = 'a23232-49329fed'; //opcional Número de autorização da operação com cartões, PIX, boletos e outros
110+
// pagamentos eletrônicos
111+
112+
//grupo OPCIONAL de informações sobre o
113+
$std->detPag[0]->CNPJReceb = '09876543210987';//opcional CNPJ do estab. benefic. do pag., se informado informar também a UFReceb
114+
$std->detPag[0]->UFReceb = 'CE'; //opcional se informado informar também a CNPJReceb
115+
116+
$std->cancelar = false; //permite cancelar um registro de conciliação financeira anterior
117+
118+
//para cancelar
119+
//$std->cancela = true;
120+
//$std->protocolo = '750123456789012';
121+
122+
$response = $tools->sefazConciliacao($std);
123+
124+
echo FakePretty::prettyPrint($response);
125+
} catch (\Exception $e) {
126+
echo $e->getMessage();
127+
}

Diff for: schemes/PL_009_V4/EventoCancEConf_v1.00.xsd

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.portalfiscal.inf.br/nfe" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" targetNamespace="http://www.portalfiscal.inf.br/nfe" elementFormDefault="qualified" attributeFormDefault="unqualified">
3+
<xs:include schemaLocation="leiauteEventoCancEConf_v1.00.xsd"/>
4+
<xs:element name="evento" type="TEvento">
5+
<xs:annotation>
6+
<xs:documentation>Schema XML de validação do evento de Cancelamento do Comprovante de Entrega da NFe</xs:documentation>
7+
</xs:annotation>
8+
</xs:element>
9+
</xs:schema>

Diff for: schemes/PL_009_V4/EventoEConf_v1.00.xsd

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.portalfiscal.inf.br/nfe" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" targetNamespace="http://www.portalfiscal.inf.br/nfe" elementFormDefault="qualified" attributeFormDefault="unqualified">
3+
<xs:include schemaLocation="leiauteEventoEConf_v1.00.xsd"/>
4+
<xs:element name="evento" type="TEvento">
5+
<xs:annotation>
6+
<xs:documentation>Schema XML de validação do evento de Conciliação Financeira</xs:documentation>
7+
</xs:annotation>
8+
</xs:element>
9+
</xs:schema>

0 commit comments

Comments
 (0)