Getnet-Brasil / payment-magento

Módulo de Pagamento para lojas Magento Adobe Commerce
https://getnet.loja.ninja/
Open Software License 3.0
6 stars 5 forks source link

[Bug]: Pagamento PIX #18

Closed 0xjvict closed 2 years ago

0xjvict commented 2 years ago

Detalhes de contato

jvictor.express2@gmail.com

O que aconteceu?

Cá estou eu, pedindo encarecidamente sua ajuda novamente. Estou tendo um problema com o pagamento PIX, aparentemente ele está gerando o QR code de acordo com os logs da getnet e o log do próprio módulo, porém ele dá um erro interno no servidor ao tentar finalizar a compra. E parece que ele não está conseguindo capturar o nome completo e o CPF.

Versão do Magento

2.3.x (Magento >= 2.3.0 e < 2.4.0)

O problema pode ter alguma relação com um navegador específico?

Não tem relação com o navegador usado

Há logs relavantes sobre o problema?

# var/log/payment.log

[2022-06-28 19:56:57] main.DEBUG: array (
  'url' => 'https://api-sandbox.getnet.com.br/v1/payments/qrcode/pix',
  'request' => '{"amount":15500,"currency":"BRL","order_id":"000000114","customer_id":"luan@carreiradasilva.com"}',
  'response' => '{"payment_id":"3ebd6e5a-bf2b-447b-aa5f-b509bf8a4e71","status":"WAITING","description":"QR Code gerado com sucesso e aguardando o pagamento.","additional_data":{"transaction_id":"15500e0f19814-5154-432e-95ca-792fba550284","qr_code":"00020101021226740014br.gov.bcb.pix210812345678220412342308123456782420001122334455 667788995204000053039865406123.455802BR5913FULANO DE TAL6008BRASILIA62190515RP12345678- 201980720014br.gov.bcb.pix2550bx.com.br/spi/U0VHUkVET1RPVEFMTUVOVEVBTEVBVE9SSU8=63 0434D1","creation_date_qrcode":"2022-06-28T16:56:57","expiration_date_qrcode":"2022-06-28T16:59:57","psp_code":"033"}}',
) [] []

# corpo da requisição

{
  "cartId": "55",
  "billingAddress": {
    "customerAddressId": "94",
    "countryId": "BR",
    "regionId": "489",
    "regionCode": "BA",
    "region": "Bahia",
    "customerId": "13",
    "street": [
      "Rua Lisboa",
      "123",
      "Monte Castelo"
    ],
    "company": null,
    "telephone": "(73) 3826-0527",
    "fax": null,
    "postcode": "45990-093",
    "city": "Teixeira de Freitas",
    "firstname": "Luan Manuel",
    "lastname": "Renato Duarte",
    "middlename": null,
    "prefix": null,
    "suffix": null,
    "vatId": null,
    "customAttributes": [],
    "saveInAddressBook": null,
    "extension_attributes": {}
  },
  "paymentMethod": {
    "method": "getnet_paymentmagento_pix",
    "additional_data": {
      "pix_payer_fullname": "",
      "pix_payer_tax_document": ""
    }
  }
}

# Resposta da requisição

{
  "messages": {
    "error": [
      {
        "code": 500,
        "message": "Fatal Error: 'Uncaught TypeError: Argument 1 passed to Endroid\\QrCode\\QrCode::setErrorCorrectionLevel() must implement interface Endroid\\QrCode\\ErrorCorrectionLevel\\ErrorCorrectionLevelInterface, string given, called in /home/tipotenis/public_html/app/code/Getnet/PaymentMagento/Gateway/Config/ConfigPix.php on line 201 and defined in /home/tipotenis/public_html/vendor/endroid/qr-code/src/QrCode.php:96\nStack trace:\n#0 /home/tipotenis/public_html/app/code/Getnet/PaymentMagento/Gateway/Config/ConfigPix.php(201): Endroid\\QrCode\\QrCode->setErrorCorrectionLevel('high')\n#1 /home/tipotenis/public_html/app/code/Getnet/PaymentMagento/Gateway/Config/ConfigPix.php(162): Getnet\\PaymentMagento\\Gateway\\Config\\ConfigPix->createImageQrCode(Object(Magento\\Framework\\Filesystem\\Directory\\Write), '/home/tipotenis...', Object(Endroid\\QrCode\\QrCode))\n#2 /home/tipotenis/public_html/app/code/Getnet/PaymentMagento/Gateway/Response/TxnIdPixHandler.php(106): Getnet\\PaymentMagento\\Gateway\\Config\\ConfigPix->generateImageQrCode('000201010212267...', '3eb' in '/home/tipotenis/public_html/vendor/endroid/qr-code/src/QrCode.php' on line 96",
        "trace": "Trace is not available."
      }
    ]
  }
}

Meu log não contém informações confidênciais

Qual a severidade do problema?

Eu não consegui configurar o módulo

elisei commented 2 years ago

Olá @0xjvict

Bom parece que não está pegando a linha completa do erro do arquivo payment.log

você pode rodar

tail -f var/log/payment.log

Para capturar a linha completa. Mas o problema parece ser apontado para uma lib que não está presente https://github.com/getnet-adquirencia/payment-magento/blob/Magento%402.3/composer.json#L19

Você consegue me dizer se fez essa instalação agora pelo composer? pode me indicar a sub-versão do seu magento 2.3.? ?

elisei commented 2 years ago

ps. sobre os items vazios:

"additional_data": {
      "pix_payer_fullname": "",
      "pix_payer_tax_document": ""
}

É apenas porque não está sendo capturado no formulário. Não é um problema, caso fossem eles irão substituir os valores da conta de usuário.

0xjvict commented 2 years ago

tail -f var/log/payment.log

essa instalação foi feita manualmente, utilizei o zip da branch magento@2.3. magento2.3.7

var/log/payment.log

[2022-06-28 19:56:57] main.DEBUG: array ( 'url' => 'https://api-sandbox.getnet.com.br/v1/payments/qrcode/pix', 'request' => '{"amount":15500,"currency":"BRL","order_id":"000000114","customer_id":"luan@carreiradasilva.com"}', 'response' => '{"payment_id":"3ebd6e5a-bf2b-447b-aa5f-b509bf8a4e71","status":"WAITING","description":"QR Code gerado com sucesso e aguardando o pagamento.","additional_data":{"transaction_id":"15500e0f19814-5154-432e-95ca-792fba550284","qr_code":"00020101021226740014br.gov.bcb.pix210812345678220412342308123456782420001122334455 667788995204000053039865406123.455802BR5913FULANO DE TAL6008BRASILIA62190515RP12345678- 201980720014br.gov.bcb.pix2550bx.com.br/spi/U0VHUkVET1RPVEFMTUVOVEVBTEVBVE9SSU8=63 0434D1","creation_date_qrcode":"2022-06-28T16:56:57","expiration_date_qrcode":"2022-06-28T16:59:57","psp_code":"033"}}',

elisei commented 2 years ago

@0xjvict Obrigado!

Bom, o pagamento deu sucesso! o/

O erro está apenas nessa ausência da lib!

Vamos ver primeiro se tem alguma versão ai instalada: composer show endroid/qr-code

Por via das dúvidas, essa lib foi alterada na Magento pela bacon/bacon-qr-code mas ao que parece apenas no M 2.4.0, mas por favor rode também: composer show bacon/bacon-qr-code

0xjvict commented 2 years ago

composer show endroid/qr-code

name : endroid/qr-code descrip. : Endroid QR Code keywords : code, endroid, php, qr, qrcode versions : * 4.4.7 type : library license : MIT License (MIT) (OSI approved) https://spdx.org/licenses/MIT.html#licenseText homepage : https://github.com/endroid/qr-code source : [git] https://github.com/endroid/qr-code.git d9f12af739c11c70fa1e8132dba8f849395e939b dist : [zip] https://api.github.com/repos/endroid/qr-code/zipball/d9f12af739c11c70fa1e8132dba8f849395e939bd9f12af739c11c70fa1e8132dba8f849395e939b path : /home/tipotenis/public_html/vendor/endroid/qr-code names : endroid/qr-code

support issues : https://github.com/endroid/qr-code/issues source : https://github.com/endroid/qr-code/tree/4.4.7

autoload psr-4 Endroid\QrCode\ => src/

requires bacon/bacon-qr-code ^2.0 php ^7.4||^8.0

requires (dev) endroid/quality dev-master ext-gd * khanamiryan/qrcode-detector-decoder ^1.0.4 setasign/fpdf ^1.8.2

suggests ext-gd Enables you to write PNG images khanamiryan/qrcode-detector-decoder Enables you to use the image validator roave/security-advisories Makes sure package versions with known security issues are not installed setasign/fpdf Enables you to use the PDF writer

composer show bacon/bacon-qr-code

name : bacon/bacon-qr-code descrip. : BaconQrCode is a QR code generator for PHP. keywords : versions : * 2.0.3 type : library license : BSD 2-Clause "Simplified" License (BSD-2-Clause) (OSI approved) https://spdx.org/licenses/BSD-2-Clause.html#licenseText homepage : https://github.com/Bacon/BaconQrCode source : [git] https://github.com/Bacon/BaconQrCode.git 3e9d791b67d0a2912922b7b7c7312f4b37af41e4 dist : [zip] https://api.github.com/repos/Bacon/BaconQrCode/zipball/3e9d791b67d0a2912922b7b7c7312f4b37af41e4 3e9d791b67d0a2912922b7b7c7312f4b37af41e4 path : /home/tipotenis/public_html/vendor/bacon/bacon-qr-code names : bacon/bacon-qr-code

autoload psr-4 BaconQrCode\ => src/

requires dasprid/enum ^1.0.3 ext-iconv * php ^7.1 || ^8.0

requires (dev) phly/keep-a-changelog ^1.4 phpunit/phpunit ^7 | ^8 | ^9 squizlabs/php_codesniffer ^3.4

suggests ext-imagick to generate QR code images

elisei commented 2 years ago

@0xjvict Subi uma correção agora para essa lib por favor baixe novamente e me diga se funcionou!

0xjvict commented 2 years ago

@0xjvict Subi uma correção agora para essa lib por favor baixe novamente e me diga se funcionou!

Não resolveu.

Corpo da Resposta

Object { code: 500, message: "Fatal Error: 'Uncaught TypeError: Argument 1 passed to Endroid\QrCode\QrCode::setForegroundColor() must implement interface Endroid\QrCode\Color\ColorInterface, array given, called in /home/tipotenis/public_html/app/code/Getnet/PaymentMagento/Gateway/Config/ConfigPix.php on line 201 and defined in /home/tipotenis/public_html/vendor/endroid/qr-code/src/QrCode.php:129\nStack trace:\n#0 /home/tipotenis/public_html/app/code/Getnet/PaymentMagento/Gateway/Config/ConfigPix.php(201): Endroid\QrCode\QrCode->…net\PaymentMagento\Gateway\Config\ConfigPix->createImageQrCode(Object(Magento\Framework\Filesystem\Directory\Write), '/home/tipotenis...', Object(Endroid\QrCode\QrCode))\n#2 /home/tipotenis/public_html/app/code/Getnet/PaymentMagento/Gateway/Response/TxnIdPixHandler.php(106): Getnet\PaymentMagento\Gateway\Config\ConfigPix->generateImageQrCode('000201010212267...', 'b64203b8-c6b6-4...')\n#3 /home/tipotenis/publ' in '/home/tipotenis/public_html/vendor/endroid/qr-code/src/QrCode.php' on line 129", trace: "Trace is not available." }

elisei commented 2 years ago

@0xjvict Você pode por gentileza confirmar a versão que baixou: https://github.com/getnet-adquirencia/payment-magento/archive/refs/heads/Magento@2.3.zip

Essa é a correta para a sua versão do Magento, olhando para linha: https://github.com/getnet-adquirencia/payment-magento/blob/Magento%402.3/Gateway/Config/ConfigPix.php#L201

É assim que deve ficar no seu magento!

0xjvict commented 2 years ago

@0xjvict Você pode por gentileza confirmar a versão que baixou: https://github.com/getnet-adquirencia/payment-magento/archive/refs/heads/Magento@2.3.zip

Essa é a correta para a sua versão do Magento, olhando para linha: https://github.com/getnet-adquirencia/payment-magento/blob/Magento%402.3/Gateway/Config/ConfigPix.php#L201

É assim que deve ficar no seu magento!

f55d83d7d368e29dd711fe140ff7890369e1dec2 (sha1sum) Magento@2.3.zip

$qrCode->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0]);

elisei commented 2 years ago

@0xjvict A lib do qr-code é introduzida pelo módulo nativo https://packagist.org/packages/msp/twofactorauth mas é comum remover esse módulo, o que pode possivelmente ter gerado esse conflito por favor rode

composer require endroid/qr-code:2.5.0

0xjvict commented 2 years ago

composer require endroid/qr-code:2.5.0

Problem 1

devo remover o 2FA?

elisei commented 2 years ago

@0xjvict

Em teoria essa versão (3.1.3) do 2fa nem existe: https://packagist.org/packages/msp/twofactorauth#2.1.12 você pode remover sim mas pode gerar alguma outra dependência...

Eu vou precisar subir um Magento dessa versão 2.3.7 (a do nosso teste foi a 2.3.3), eu acredito que amanha eu consiga finalizar o teste na sua versão e então entendermos o que ocorrreu.

0xjvict commented 2 years ago

@elisei

Sem pressa, amanhã eu também tento debugar novamente.

Boa noite.

0xjvict commented 2 years ago

@elisei

Sensacional cara resolvidíssimo!

https://github.com/getnet-adquirencia/payment-magento/releases/tag/100.1.9