From 66754b7e22f3fd4f5951501c18b27de9531daed1 Mon Sep 17 00:00:00 2001 From: Igor Pedroso Date: Thu, 12 Aug 2021 02:26:21 -0300 Subject: [PATCH 1/6] remove pix_cert and pix_private_key attributes --- lib/screens/default/others/installments.dart | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/screens/default/others/installments.dart b/lib/screens/default/others/installments.dart index 6759d81..2c61d40 100644 --- a/lib/screens/default/others/installments.dart +++ b/lib/screens/default/others/installments.dart @@ -19,7 +19,10 @@ class _InstallmentsState extends State { @override void initState() { super.initState(); - gn = new Gerencianet(CREDENTIALS); + Map credentials = new Map.from(CREDENTIALS); + credentials.remove("pix_cert"); + credentials.remove("pix_private_key"); + gn = new Gerencianet(credentials); } @override From 6f593d3d0ba01d0a937b3f1b0a219a1064cbc541 Mon Sep 17 00:00:00 2001 From: Igor Pedroso Date: Thu, 12 Aug 2021 02:26:45 -0300 Subject: [PATCH 2/6] update info --- lib/screens/pix/charge/pix_create_charge.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/screens/pix/charge/pix_create_charge.dart b/lib/screens/pix/charge/pix_create_charge.dart index 643a410..9fd8897 100644 --- a/lib/screens/pix/charge/pix_create_charge.dart +++ b/lib/screens/pix/charge/pix_create_charge.dart @@ -132,7 +132,7 @@ class _PixCreateChargeState extends State { return FormDataField( helperText: "Texto a ser apresentado ao pagador ", label: "Informação adicional", - hintText: "Ex: emailcliente@servidor.com.br", + hintText: "Ex: Cobrança produto X", line: 3, controller: _infoController, textInputType: TextInputType.text, From 09a2a09bdd4cc57487aa6d477f15eb497539cad7 Mon Sep 17 00:00:00 2001 From: Igor Pedroso Date: Thu, 12 Aug 2021 02:44:16 -0300 Subject: [PATCH 3/6] add payment token --- .../default/charge/create_charge_card.dart | 99 +++++++++---------- 1 file changed, 47 insertions(+), 52 deletions(-) diff --git a/lib/screens/default/charge/create_charge_card.dart b/lib/screens/default/charge/create_charge_card.dart index 1cf9e66..c1c088c 100644 --- a/lib/screens/default/charge/create_charge_card.dart +++ b/lib/screens/default/charge/create_charge_card.dart @@ -13,7 +13,6 @@ class _CreateChargeCardState extends State { TextEditingController _nameController = new TextEditingController(); TextEditingController _cpfController = new TextEditingController(); TextEditingController _phoneController = new TextEditingController(); - TextEditingController _paymentTokenController = new TextEditingController(); TextEditingController _streetController = new TextEditingController(); TextEditingController _numberController = new TextEditingController(); TextEditingController _neighborhoodController = new TextEditingController(); @@ -73,9 +72,6 @@ class _CreateChargeCardState extends State { _form(_formBirth()), _form(_formCpf()), _form(_formPhone()), - _headerForm("Cartão", - "O campo abaixo é referente ao token de pagamento gerado para pagamentos com cartão."), - _form(_formPaymentToken()), Container(height: 100) ], ))); @@ -221,17 +217,6 @@ class _CreateChargeCardState extends State { ); } - Widget _formPaymentToken() { - return FormDataField( - helperText: "Token de pagamento", - label: "PaymentToken*", - line: 1, - controller: _paymentTokenController, - textInputType: TextInputType.text, - validator: (value) => value.isEmpty ? "Campo Obrigatório!" : null, - ); - } - Widget _formPhone() { return FormDataField( helperText: "Telefone do cliente (somente números)", @@ -377,45 +362,55 @@ class _CreateChargeCardState extends State { void _oneStep() { setState(() => _loading = true); - Map body = { - "items": [ - { - "name": _nameItemController.text, - "value": int.parse(_valueController.text), - "amount": int.parse(_amountController.text) - } - ], - "payment": { - "credit_card": { - "installments": 1, - "payment_token": _paymentTokenController.text, - "billing_address": { - "street": _streetController.text, - "number": int.parse(_numberController.text), - "neighborhood": _neighborhoodController.text, - "zipcode": _zipcodeController.text, - "city": _cityController.text, - "state": _stateController.text - }, - "customer": { - "name": _nameController.text, - "email": _emailController.text, - "cpf": _cpfController.text, - "birth": _birthController.text, - "phone_number": _phoneController.text - } - } - } + + Map card = { + "brand": "", + "number": "", + "cvv": "", + "expiration_month": "", + "expiration_year": "" }; - gn.call("oneStep", body: body).then((value) { - setState(() => _loading = false); - _showMessage("Transação Criada!", Theme.of(context).accentColor, - MediaQuery.of(context).size.height); - }).catchError((error) { - setState(() => _loading = false); - _showMessage( - error.toString(), Colors.red, MediaQuery.of(context).size.height); + gn.call("paymentToken", body: card).then((value) { + Map body = { + "items": [ + { + "name": _nameItemController.text, + "value": int.parse(_valueController.text), + "amount": int.parse(_amountController.text) + } + ], + "payment": { + "credit_card": { + "installments": 1, + "payment_token": value['data']['payment_token'], + "billing_address": { + "street": _streetController.text, + "number": int.parse(_numberController.text), + "neighborhood": _neighborhoodController.text, + "zipcode": _zipcodeController.text, + "city": _cityController.text, + "state": _stateController.text + }, + "customer": { + "name": _nameController.text, + "email": _emailController.text, + "cpf": _cpfController.text, + "birth": _birthController.text, + "phone_number": _phoneController.text + } + } + } + }; + gn.call("oneStep", body: body).then((value) { + setState(() => _loading = false); + _showMessage("Transação Criada!", Theme.of(context).accentColor, + MediaQuery.of(context).size.height); + }).catchError((error) { + setState(() => _loading = false); + _showMessage( + error.toString(), Colors.red, MediaQuery.of(context).size.height); + }); }); } } From c5daf88272588334433983b3d5c2de115cf12e9e Mon Sep 17 00:00:00 2001 From: Igor Pedroso Date: Thu, 12 Aug 2021 02:44:41 -0300 Subject: [PATCH 4/6] add payment token --- .../default/charge/pay_charge_card.dart | 95 ++++++++++--------- 1 file changed, 49 insertions(+), 46 deletions(-) diff --git a/lib/screens/default/charge/pay_charge_card.dart b/lib/screens/default/charge/pay_charge_card.dart index 622544c..b14628e 100644 --- a/lib/screens/default/charge/pay_charge_card.dart +++ b/lib/screens/default/charge/pay_charge_card.dart @@ -14,7 +14,6 @@ class _PayChargeCardState extends State { TextEditingController _nameController = new TextEditingController(); TextEditingController _cpfController = new TextEditingController(); TextEditingController _phoneController = new TextEditingController(); - TextEditingController _paymentTokenController = new TextEditingController(); TextEditingController _streetController = new TextEditingController(); TextEditingController _numberController = new TextEditingController(); TextEditingController _neighborhoodController = new TextEditingController(); @@ -69,9 +68,6 @@ class _PayChargeCardState extends State { _form(_formBirth()), _form(_formCpf()), _form(_formPhone()), - _headerForm("Cartão", - "O campo abaixo é referente ao token de pagamento gerado para pagamentos com cartão."), - _form(_formPaymentToken()), Container(height: 100) ], ))); @@ -181,17 +177,6 @@ class _PayChargeCardState extends State { ); } - Widget _formPaymentToken() { - return FormDataField( - helperText: "Token de pagamento", - label: "PaymentToken*", - line: 1, - controller: _paymentTokenController, - textInputType: TextInputType.text, - validator: (value) => value.isEmpty ? "Campo Obrigatório!" : null, - ); - } - Widget _formPhone() { return FormDataField( helperText: "Telefone do cliente (somente números)", @@ -349,42 +334,60 @@ class _PayChargeCardState extends State { void _payCharge() { setState(() => _loading = true); - Map params = { - "id": _idController.text, + Map card = { + "brand": "", + "number": "", + "cvv": "", + "expiration_month": "", + "expiration_year": "" }; - Map body = { - "payment": { - "credit_card": { - "installments": 1, - "payment_token": _paymentTokenController.text, - "billing_address": { - "street": _streetController.text, - "number": int.parse(_numberController.text), - "neighborhood": _neighborhoodController.text, - "zipcode": _zipcodeController.text, - "city": _cityController.text, - "state": _stateController.text - }, - "customer": { - "name": _nameController.text, - "email": _emailController.text, - "cpf": _cpfController.text, - "birth": _birthController.text, - "phone_number": _phoneController.text + gn.call("paymentToken", body: card).then((value) { + Map params = { + "id": _idController.text, + }; + + Map body = { + "payment": { + "credit_card": { + "installments": 1, + "payment_token": value['data']['payment_token'], + "billing_address": { + "street": _streetController.text, + "number": int.parse(_numberController.text), + "neighborhood": _neighborhoodController.text, + "zipcode": _zipcodeController.text, + "city": _cityController.text, + "state": _stateController.text + }, + "customer": { + "name": _nameController.text, + "email": _emailController.text, + "cpf": _cpfController.text, + "birth": _birthController.text, + "phone_number": _phoneController.text + } } } - } - }; + }; - gn.call("payCharge", params: params, body: body).then((value) { - setState(() => _loading = false); - _showMessage("Cartão Associado!", Theme.of(context).accentColor, - MediaQuery.of(context).size.height); - }).catchError((error) { - setState(() => _loading = false); - _showMessage( - error.toString(), Colors.red, MediaQuery.of(context).size.height); + gn.call("payCharge", params: params, body: body).then((value) { + setState(() => _loading = false); + _showMessage("Cartão Associado!", Theme + .of(context) + .accentColor, + MediaQuery + .of(context) + .size + .height); + }).catchError((error) { + setState(() => _loading = false); + _showMessage( + error.toString(), Colors.red, MediaQuery + .of(context) + .size + .height); + }); }); } } From a7502198cebd0eb1bfb9e9656ddcd4247c910fd9 Mon Sep 17 00:00:00 2001 From: Igor Pedroso Date: Thu, 12 Aug 2021 02:45:15 -0300 Subject: [PATCH 5/6] add attribute account_id --- lib/credentials.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/credentials.dart b/lib/credentials.dart index a911047..28797bd 100644 --- a/lib/credentials.dart +++ b/lib/credentials.dart @@ -2,7 +2,8 @@ dynamic CREDENTIALS = { 'client_id': '', 'client_secret': '', - 'sandbox': false, + 'account_id': '', + 'sandbox': true, 'pix_cert': '', 'pix_private_key': '' }; \ No newline at end of file From e7e3beebf47a40e9ccb3c4618f050d1a09ca722f Mon Sep 17 00:00:00 2001 From: Igor Pedroso Date: Thu, 12 Aug 2021 04:27:49 -0300 Subject: [PATCH 6/6] update version gerencianet dependency --- pubspec.lock | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++ pubspec.yaml | 2 +- 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/pubspec.lock b/pubspec.lock index 9ce628d..4dfcdfb 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,6 +1,20 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + args: + dependency: transitive + description: + name: args + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.0" + asn1lib: + dependency: transitive + description: + name: asn1lib + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" async: dependency: transitive description: @@ -43,6 +57,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.15.0" + convert: + dependency: transitive + description: + name: convert + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" + crypto: + dependency: transitive + description: + name: crypto + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" cupertino_icons: dependency: "direct main" description: @@ -50,6 +78,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.0.3" + encrypt: + dependency: transitive + description: + name: encrypt + url: "https://pub.dartlang.org" + source: hosted + version: "5.0.1" fake_async: dependency: transitive description: @@ -67,6 +102,20 @@ packages: description: flutter source: sdk version: "0.0.0" + gerencianet: + dependency: "direct main" + description: + name: gerencianet + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + js: + dependency: transitive + description: + name: js + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.3" matcher: dependency: transitive description: @@ -88,6 +137,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.8.0" + pointycastle: + dependency: transitive + description: + name: pointycastle + url: "https://pub.dartlang.org" + source: hosted + version: "3.2.0" sky_engine: dependency: transitive description: flutter @@ -151,3 +207,4 @@ packages: version: "2.1.0" sdks: dart: ">=2.12.0 <3.0.0" + flutter: ">=1.20.0" diff --git a/pubspec.yaml b/pubspec.yaml index 27d62a6..47d5f22 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -23,7 +23,7 @@ environment: dependencies: flutter: sdk: flutter - gerencianet: ^1.1.1 + gerencianet: ^1.2.0 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons.