react-native-pos-pagseguro 1.1.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +161 -4
  2. package/android/libs/wrapper-1.33.0.aar +0 -0
  3. package/android/src/main/java/com/margelo/nitro/pospagseguro/PosPagseguro.kt +20 -0
  4. package/android/src/main/java/com/margelo/nitro/pospagseguro/maps/PlugPagCommand.kt +29 -0
  5. package/lib/module/hooks/useBoolStates.js +16 -0
  6. package/lib/module/hooks/useBoolStates.js.map +1 -0
  7. package/lib/module/hooks/usePagPayment.js +194 -0
  8. package/lib/module/hooks/usePagPayment.js.map +1 -0
  9. package/lib/module/hooks/usePagRefund.js +176 -0
  10. package/lib/module/hooks/usePagRefund.js.map +1 -0
  11. package/lib/module/index.js +4 -2
  12. package/lib/module/index.js.map +1 -1
  13. package/lib/module/pag_seguro.js +66 -3
  14. package/lib/module/pag_seguro.js.map +1 -1
  15. package/lib/module/types/device.js +24 -0
  16. package/lib/module/types/device.js.map +1 -1
  17. package/lib/module/types/payments.js +70 -0
  18. package/lib/module/types/payments.js.map +1 -1
  19. package/lib/typescript/src/PosPagseguro.nitro.d.ts +4 -2
  20. package/lib/typescript/src/PosPagseguro.nitro.d.ts.map +1 -1
  21. package/lib/typescript/src/hooks/useBoolStates.d.ts +7 -0
  22. package/lib/typescript/src/hooks/useBoolStates.d.ts.map +1 -0
  23. package/lib/typescript/src/hooks/usePagPayment.d.ts +13 -0
  24. package/lib/typescript/src/hooks/usePagPayment.d.ts.map +1 -0
  25. package/lib/typescript/src/hooks/usePagRefund.d.ts +13 -0
  26. package/lib/typescript/src/hooks/usePagRefund.d.ts.map +1 -0
  27. package/lib/typescript/src/index.d.ts +6 -4
  28. package/lib/typescript/src/index.d.ts.map +1 -1
  29. package/lib/typescript/src/pag_seguro.d.ts +46 -3
  30. package/lib/typescript/src/pag_seguro.d.ts.map +1 -1
  31. package/lib/typescript/src/types/device.d.ts +22 -0
  32. package/lib/typescript/src/types/device.d.ts.map +1 -1
  33. package/lib/typescript/src/types/payments.d.ts +92 -0
  34. package/lib/typescript/src/types/payments.d.ts.map +1 -1
  35. package/nitrogen/generated/android/c++/JHybridPosPagseguroSpec.cpp +32 -0
  36. package/nitrogen/generated/android/c++/JHybridPosPagseguroSpec.hpp +2 -0
  37. package/nitrogen/generated/android/c++/JInstallment.hpp +73 -0
  38. package/nitrogen/generated/android/c++/JPlugPagMode.hpp +58 -0
  39. package/nitrogen/generated/android/c++/JPlugPagOp.hpp +100 -0
  40. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pospagseguro/HybridPosPagseguroSpec.kt +8 -0
  41. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pospagseguro/Installment.kt +50 -0
  42. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pospagseguro/PlugPagMode.kt +23 -0
  43. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pospagseguro/PlugPagOp.kt +37 -0
  44. package/nitrogen/generated/shared/c++/HybridPosPagseguroSpec.cpp +2 -0
  45. package/nitrogen/generated/shared/c++/HybridPosPagseguroSpec.hpp +15 -0
  46. package/nitrogen/generated/shared/c++/Installment.hpp +99 -0
  47. package/nitrogen/generated/shared/c++/PlugPagMode.hpp +65 -0
  48. package/nitrogen/generated/shared/c++/PlugPagOp.hpp +93 -0
  49. package/package.json +2 -1
  50. package/src/PosPagseguro.nitro.ts +5 -2
  51. package/src/hooks/useBoolStates.ts +44 -0
  52. package/src/hooks/usePagPayment.ts +204 -0
  53. package/src/hooks/usePagRefund.ts +187 -0
  54. package/src/index.ts +29 -23
  55. package/src/pag_seguro.ts +70 -4
  56. package/src/types/device.ts +25 -0
  57. package/src/types/payments.ts +95 -0
  58. package/android/libs/wrapper-1.30.52.aar +0 -0
package/README.md CHANGED
@@ -3,9 +3,10 @@
3
3
  **PagSeguro POS SDK for React Native** – Integration with PagSeguro terminals (Moderninha, Moderninha2, etc.) using react-native-nitro-modules.
4
4
 
5
5
  Supports credit, debit, voucher, PIX payments, installments, cancellations, receipt printing, and more.
6
- [![npm version](https://badge.fury.io/js/react-native-pos-pagseguro.svg)](https://badge.fury.io/js/react-native-pos-pagseguro)
6
+ [![npm version](https://badge.fury.io/js/react-native-pos-pagseguro.svg)](https://badge.fury.io/js/react-native-pos-pagseguro)
7
7
  [![Platform](https://img.shields.io/badge/platform-Android-yellow.svg)](https://www.android.com)
8
8
  [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
9
+ ![plugpag-wrapper](https://img.shields.io/badge/plugpag--wrapper-1.33.0-81d742.svg)
9
10
 
10
11
  ## Features
11
12
 
@@ -13,6 +14,8 @@ Supports credit, debit, voucher, PIX payments, installments, cancellations, rece
13
14
  - **Payments:** Credit, Debit, Voucher, PIX
14
15
  - **Installments:** (à vista, store installment without interest, buyer installment with interest)
15
16
  - **Cancel/refund:** transactions (same-day only)
17
+ - **Easy use payment Hook**
18
+ - **Easy use refund Hook**
16
19
  - Get last approved transaction
17
20
  - **Reprint:** customer or merchant receipt
18
21
  - Custom image printing (file path or Base64)
@@ -20,6 +23,7 @@ Supports credit, debit, voucher, PIX payments, installments, cancellations, rece
20
23
  - Reboot terminal
21
24
  - **Device info:** model, serial number, user data, sub-acquirer data
22
25
  - **Capability detection:** printer, NFC, chip, magnetic stripe, etc.
26
+ - **Software Capability detection:** can activate, can activate remotely, can refund, etc.
23
27
  - Progress callbacks during payment flow
24
28
 
25
29
  ## Installation
@@ -91,6 +95,60 @@ try {
91
95
  }
92
96
  ```
93
97
 
98
+ ### 2.1. Make a payment with hook
99
+ [Full example here](https://github.com/CECSMH/react-native-pos-pagseguro/blob/main/example/src/payhook.tsx)
100
+ ```typescript
101
+ const {
102
+ request_payment,
103
+ abort_operation,
104
+ reset,
105
+ state,
106
+ message,
107
+ errors,
108
+ isError,
109
+ isSuccess,
110
+ isProcessing,
111
+ } = usePagPayment();
112
+
113
+ const handlePayment = async () => {
114
+ const paymentData: PaymentData = {
115
+ amount,
116
+ type: PaymentTypes.DEBIT,
117
+ installment_type: InstallmentTypes.NO_INSTALLMENT,
118
+ installments: 1,
119
+ print_receipt: false,
120
+ user_reference: `ORDER${Date.now()}`,
121
+ };
122
+ try {
123
+ const result = await request_payment(paymentData);
124
+ Alert.alert(
125
+ 'Pagamento Aprovado! ✓',
126
+ `NSU: ${result.nsu}\nAutorização: ${result.auto_code}\nBandeira: ${result.card_brand}`,
127
+ [{ text: 'OK', onPress: () => reset() }]
128
+ );
129
+ } catch (error) {console.log(error)
130
+ Alert.alert(
131
+ 'Erro no Pagamento ✗',
132
+ errors?.message || 'Falha ao processar pagamento',
133
+ [{ text: 'OK', onPress: () => reset() }]
134
+ );
135
+ }
136
+
137
+ console.log(message) // Digite sua senha.
138
+
139
+ const getStateIcon = () => {
140
+ switch (state) {
141
+ case HookPayState.WAITING_CARD:
142
+ return '💳';
143
+ case HookPayState.CARD_INSERTED:
144
+ return '✓';
145
+ case HookPayState.ENTER_PASSWORD:
146
+ ...
147
+ }
148
+ };
149
+
150
+ };
151
+ ```
94
152
 
95
153
  ### 3. Cancel a payment (same day only)
96
154
  ```typescript
@@ -110,6 +168,80 @@ try {
110
168
  }
111
169
  ```
112
170
 
171
+ ### 3.1. Cancel a payment with hook (same day only)
172
+ [Full example here](https://github.com/CECSMH/react-native-pos-pagseguro/blob/main/example/src/refundhook.tsx)
173
+ ```typescript
174
+ const {
175
+ request_refund,
176
+ abort_operation,
177
+ reset,
178
+ state,
179
+ message,
180
+ errors,
181
+ isError,
182
+ isSuccess,
183
+ isProcessing,
184
+ } = usePagRefund();
185
+
186
+ const [transactionCode, setTransactionCode] = useState('');
187
+ const [transactionId, setTransactionId] = useState('');
188
+
189
+ const handleRefund = async () => {
190
+ if (!transactionCode.trim()) {
191
+ Alert.alert('Atenção', 'Informe o código da transação');
192
+ return;
193
+ }
194
+ if (!transactionId.trim()) {
195
+ Alert.alert('Atenção', 'Informe o ID da transação');
196
+ return;
197
+ }
198
+ const refundData: VoidPayData = {
199
+ transaction_code: transactionCode.trim(),
200
+ transaction_id: transactionId.trim(),
201
+ print_receipt: false,
202
+ void_type: VoidType.PAYMENT,
203
+ };
204
+ try {
205
+ const result = await request_refund(refundData);
206
+ Alert.alert(
207
+ 'Estorno Aprovado! ✓',
208
+ `NSU: ${result.nsu}\nCódigo: ${result.transaction_code}\nData: ${result.date} ${result.time}`,
209
+ [
210
+ {
211
+ text: 'OK',
212
+ onPress: () => {
213
+ reset();
214
+ setTransactionCode('');
215
+ setTransactionId('');
216
+ }
217
+ }
218
+ ]
219
+ );
220
+ } catch (error) {
221
+ Alert.alert(
222
+ 'Erro no Estorno ✗',
223
+ errors?.message || 'Falha ao processar estorno',
224
+ [{ text: 'OK', onPress: () => reset() }]
225
+ );
226
+ }
227
+ }
228
+
229
+ console.log(message) // Autorizando estorno...
230
+
231
+ const getStateIcon = () => {
232
+ switch (state) {
233
+ case HookPayState.WAITING_CARD:
234
+ return '💳';
235
+ case HookPayState.CARD_INSERTED:
236
+ return '✓';
237
+ case HookPayState.ENTER_PASSWORD:
238
+ case HookPayState.ENTER_CVV:
239
+ return '🔒';
240
+ ...
241
+ }
242
+ }:
243
+ ```
244
+
113
245
 
114
246
  ### 4. Reprint receipts
115
247
  ```typescript
@@ -169,6 +301,28 @@ console.log('Model:', PagSeguro.get_model());
169
301
  console.log('Serial:', PagSeguro.get_serial_number());
170
302
  console.log('User data:', PagSeguro.get_userdata());
171
303
  ```
304
+ ### 8. Calculate installments
305
+ ```typescript
306
+ //InstallmentTypes.SELLER_INSTALLMENT or InstallmentTypes.BUYER_INSTALLMENT
307
+ // R$ 230,00
308
+ const installments = PagSeguro.calculate_installments(23000, InstallmentTypes.SELLER_INSTALLMENT);
309
+ console.log(installments)
310
+ /*[{
311
+ "quantity": 2,
312
+ "amount": 11500,
313
+ "total": 23000,
314
+ "formatted_amount": "R$ 115,00",
315
+ "formatted_total": "R$ 230,00"
316
+ }
317
+ ...]*/
318
+ ```
319
+ ### 8. Check Software capabilities
320
+ ```typescript
321
+ console.log("can activate: ", PagSeguro.software.can_activate());
322
+ console.log("can activate remotely: ", PagSeguro.software.can_activate_remotely());
323
+ console.log("can reprint: ", PagSeguro.software.can_reprint());
324
+ //...
325
+ ```
172
326
 
173
327
  ## Error Handling
174
328
 
@@ -188,10 +342,13 @@ try {
188
342
 
189
343
  ## API Reference
190
344
 
191
- All types and enums are fully typed. Key exports:
345
+ All types and enums are fully typed. exports:
192
346
 
193
347
  - `PagSeguro` (main class)
194
348
  - `PaymentData`
349
+ - `usePagRefund`
350
+ - `usePagPayment`
351
+ - `HookPayState`
195
352
  - `TransactionResult`
196
353
  - `VoidPayData`
197
354
  - `PaymentTypes`
@@ -221,9 +378,9 @@ If you've found this library helpful, consider buying me a coffee!
221
378
 
222
379
 
223
380
 
224
- Scan the QR code to donate (Lightning⚡):
381
+ Scan the QR code to donate (PIX):
225
382
 
226
- ![Lightning donation QR code for cecsmh@bipa.app](https://api.qrserver.com/v1/create-qr-code/?data=lightning:cecsmh@bipa.app&size=300x300&ecc=M)
383
+ ![PIX donation QR code](https://api.qrserver.com/v1/create-qr-code/?data=00020126580014BR.GOV.BCB.PIX013698817f09-40db-47c0-adf3-0c69b99ef1635204000053039865802BR5924Carlos%20Eduardo%20Conceicao6009SAO%20PAULO62140510rmQmKYzFZ863046800)
227
384
 
228
385
  Thank you for your support! 🚀
229
386
 
Binary file
@@ -113,6 +113,12 @@ class PosPagseguro : HybridPosPagseguroSpec() {
113
113
  }
114
114
 
115
115
  override fun hasCapability(capability: Capabilities): Boolean { return plug_pag.hasCapability(capability.value) }
116
+ override fun hasSoftwareCapability(op: PlugPagOp, mode: PlugPagMode): Boolean {
117
+ return when (mode){
118
+ PlugPagMode.REMOTECONFIG -> plug_pag.hasSoftwareCapability(op.toCommand().command, PlugPagCommand.OPERATION_MODE_REMOTECFG.command)
119
+ else -> plug_pag.hasSoftwareCapability(op.toCommand().command)
120
+ }
121
+ }
116
122
 
117
123
  override fun initialize(activation_code: String): Unit {
118
124
  try {
@@ -128,6 +134,20 @@ class PosPagseguro : HybridPosPagseguroSpec() {
128
134
  else return CustomError("OPR_ERROR", "Ocorreu um erro ao solicitar cancelamento");
129
135
  }
130
136
 
137
+ override fun calculateInstallments(value: String, type: InstallmentTypes): Array<Installment> {
138
+ val t = plug_pag.calculateInstallments(value, type.value)
139
+
140
+ return t.map { native ->
141
+ Installment(
142
+ quantity = native.quantity.toDouble(),
143
+ amount = native.amount.toDouble(),
144
+ total = native.total.toDouble(),
145
+ formatted_amount = "R$ ${"%.2f".format(native.amount / 100.0)}",
146
+ formatted_total = "R$ ${"%.2f".format(native.total / 100.0)}"
147
+ )
148
+ }.toTypedArray()
149
+ }
150
+
131
151
  override fun doPayment(payment_data: PaymentData, process_callback: (event: String, code: PaymentEvent) -> Unit): Promise<Variant_CustomError_TransactionResult> {
132
152
  return Promise.async {
133
153
  try {
@@ -0,0 +1,29 @@
1
+ package com.margelo.nitro.pospagseguro.maps
2
+
3
+ import com.margelo.nitro.pospagseguro.PlugPagOp
4
+ import com.margelo.nitro.pospagseguro.PlugPagMode
5
+ import br.com.uol.pagseguro.plugpagservice.wrapper.PlugPagCommand
6
+
7
+
8
+ fun PlugPagOp.toCommand(): PlugPagCommand {
9
+ return when (this) {
10
+ PlugPagOp.ACTIVATE -> PlugPagCommand.OPERATION_ACTIVATE
11
+ PlugPagOp.PAYMENT -> PlugPagCommand.OPERATION_PAYMENT
12
+ PlugPagOp.REFUND -> PlugPagCommand.OPERATION_REFUND
13
+ PlugPagOp.QUERYLASTAPPROVED -> PlugPagCommand.OPERATION_QUERY_LAST_APPROVED_TRANSACTION
14
+ PlugPagOp.REPRINTCUSTOMER -> PlugPagCommand.OPERATION_REPRINT_CUSTOMER_RECEIPT
15
+ PlugPagOp.REPRINTMERCHANT -> PlugPagCommand.OPERATION_REPRINT_ESTABLISHMENT_RECEIPT
16
+ PlugPagOp.PRINT -> PlugPagCommand.OPERATION_PRINT
17
+ PlugPagOp.CALCINSTALLMENTS -> PlugPagCommand.OPERATION_CALCULATE_INSTALLMENTS
18
+ PlugPagOp.CALCINSTALLMENTSWITHTOTAL -> PlugPagCommand.OPERATION_CALCULATE_INSTALLMENTS_WITH_TOTAL_AMOUNT
19
+ PlugPagOp.GETCARDDATA -> PlugPagCommand.OPERATION_GET_CARD_DATA
20
+ PlugPagOp.INITTECHACTIVATION -> PlugPagCommand.OPERATION_INIT_TECH_ACTIVATION
21
+ PlugPagOp.SENDLOGS -> PlugPagCommand.OPERATION_SEND_PS_LOGS
22
+ PlugPagOp.PREAUTHCREATE -> PlugPagCommand.OPERATION_PRE_AUTO_CREATE
23
+ PlugPagOp.PREAUTHCAPTURE -> PlugPagCommand.OPERATION_EFFECTUATE_PRE_AUTO
24
+ PlugPagOp.PREAUTHCANCEL -> PlugPagCommand.OPERATION_PRE_AUTO_CANCEL
25
+ PlugPagOp.NOEXTRAPARAMS -> PlugPagCommand.OPERATION_NO_EXTRA_PARAMS
26
+ }
27
+ }
28
+
29
+
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ import { useMemo } from "react";
4
+ import { HookPayState } from "../types/payments.js";
5
+ export default function useBoolStates(state) {
6
+ const isProcessing = useMemo(() => [HookPayState.PROCESSING, HookPayState.WAITING_CARD, HookPayState.CARD_INSERTED, HookPayState.USE_CHIP, HookPayState.USE_TARJA, HookPayState.ENTER_PASSWORD, HookPayState.ENTER_CVV, HookPayState.ENTER_CAR_BIN, HookPayState.ENTER_CAR_HOLDER, HookPayState.PIN_OK, HookPayState.CVV_OK, HookPayState.CAR_BIN_OK, HookPayState.CAR_HOLDER_OK, HookPayState.DIGIT_PASSWORD, HookPayState.AUTHORIZING, HookPayState.WAITING_REMOVE_CARD, HookPayState.CONTACTLESS_ON_DEVICE, HookPayState.SOLVING_PENDINGS, HookPayState.DOWNLOADING_TABLES, HookPayState.RECORDING_TABLES].includes(state), [state]);
7
+ const isSuccess = useMemo(() => [HookPayState.APPROVED, HookPayState.SUCCESS, HookPayState.SALE_END, HookPayState.ACTIVATION_SUCCESS].includes(state), [state]);
8
+ const isError = useMemo(() => state === HookPayState.ERROR || state === HookPayState.REPROVED || state === HookPayState.CONTACTLESS_ERROR, [state]);
9
+ return {
10
+ isProcessing,
11
+ isSuccess,
12
+ isError
13
+ };
14
+ }
15
+ ;
16
+ //# sourceMappingURL=useBoolStates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","HookPayState","useBoolStates","state","isProcessing","PROCESSING","WAITING_CARD","CARD_INSERTED","USE_CHIP","USE_TARJA","ENTER_PASSWORD","ENTER_CVV","ENTER_CAR_BIN","ENTER_CAR_HOLDER","PIN_OK","CVV_OK","CAR_BIN_OK","CAR_HOLDER_OK","DIGIT_PASSWORD","AUTHORIZING","WAITING_REMOVE_CARD","CONTACTLESS_ON_DEVICE","SOLVING_PENDINGS","DOWNLOADING_TABLES","RECORDING_TABLES","includes","isSuccess","APPROVED","SUCCESS","SALE_END","ACTIVATION_SUCCESS","isError","ERROR","REPROVED","CONTACTLESS_ERROR"],"sourceRoot":"..\\..\\..\\src","sources":["hooks/useBoolStates.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAE/B,SAASC,YAAY,QAAQ,sBAAmB;AAEhD,eAAe,SAASC,aAAaA,CAACC,KAAmB,EAAE;EACvD,MAAMC,YAAY,GAAGJ,OAAO,CAAC,MAAM,CAC/BC,YAAY,CAACI,UAAU,EACvBJ,YAAY,CAACK,YAAY,EACzBL,YAAY,CAACM,aAAa,EAC1BN,YAAY,CAACO,QAAQ,EACrBP,YAAY,CAACQ,SAAS,EACtBR,YAAY,CAACS,cAAc,EAC3BT,YAAY,CAACU,SAAS,EACtBV,YAAY,CAACW,aAAa,EAC1BX,YAAY,CAACY,gBAAgB,EAC7BZ,YAAY,CAACa,MAAM,EACnBb,YAAY,CAACc,MAAM,EACnBd,YAAY,CAACe,UAAU,EACvBf,YAAY,CAACgB,aAAa,EAC1BhB,YAAY,CAACiB,cAAc,EAC3BjB,YAAY,CAACkB,WAAW,EACxBlB,YAAY,CAACmB,mBAAmB,EAChCnB,YAAY,CAACoB,qBAAqB,EAClCpB,YAAY,CAACqB,gBAAgB,EAC7BrB,YAAY,CAACsB,kBAAkB,EAC/BtB,YAAY,CAACuB,gBAAgB,CAChC,CAACC,QAAQ,CAACtB,KAAK,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAE3B,MAAMuB,SAAS,GAAG1B,OAAO,CAAC,MAAM,CAC5BC,YAAY,CAAC0B,QAAQ,EACrB1B,YAAY,CAAC2B,OAAO,EACpB3B,YAAY,CAAC4B,QAAQ,EACrB5B,YAAY,CAAC6B,kBAAkB,CAClC,CAACL,QAAQ,CAACtB,KAAK,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAE3B,MAAM4B,OAAO,GAAG/B,OAAO,CAAC,MACpBG,KAAK,KAAKF,YAAY,CAAC+B,KAAK,IAC5B7B,KAAK,KAAKF,YAAY,CAACgC,QAAQ,IAC/B9B,KAAK,KAAKF,YAAY,CAACiC,iBAAiB,EACxC,CAAC/B,KAAK,CACV,CAAC;EAED,OAAO;IAAEC,YAAY;IAAEsB,SAAS;IAAEK;EAAQ,CAAC;AAC/C;AAAC","ignoreList":[]}
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useRef, useState, useEffect } from "react";
4
+ import PagSeguro from "../pag_seguro.js";
5
+ import { HookPayState, PaymentEvent } from "../types/payments.js";
6
+ import useBoolStates from "./useBoolStates.js";
7
+ export default function usePagPayment() {
8
+ const aborting = useRef(false);
9
+ const [state, setState] = useState(HookPayState.IDLE);
10
+ const [message, setMessage] = useState("");
11
+ const [errors, setErrors] = useState(null);
12
+ const {
13
+ isError,
14
+ isSuccess,
15
+ isProcessing
16
+ } = useBoolStates(state);
17
+ useEffect(() => {
18
+ return () => {
19
+ if (isProcessing) PagSeguro.abort_current_operation();
20
+ };
21
+ }, []);
22
+ const request_payment = useCallback(async data => {
23
+ try {
24
+ aborting.current = false;
25
+ setState(HookPayState.PROCESSING);
26
+ setMessage("Processando...");
27
+ const r = await PagSeguro.do_payment(data, (msg, code) => {
28
+ switch (code) {
29
+ case PaymentEvent.WAITING_CARD:
30
+ setState(HookPayState.WAITING_CARD);
31
+ setMessage("Insira, passe ou aproxime o cartão");
32
+ break;
33
+ case PaymentEvent.INSERTED_CARD:
34
+ setState(HookPayState.CARD_INSERTED);
35
+ setMessage("Cartão identificado");
36
+ break;
37
+ case PaymentEvent.WAITING_REMOVE_CARD:
38
+ setState(HookPayState.WAITING_REMOVE_CARD);
39
+ setMessage("Remova o cartão");
40
+ break;
41
+ case PaymentEvent.SALE_END:
42
+ setState(HookPayState.SALE_END);
43
+ setMessage("Transação finalizada");
44
+ break;
45
+ case PaymentEvent.AUTHORIZING:
46
+ setState(HookPayState.AUTHORIZING);
47
+ setMessage("Autorizando...");
48
+ break;
49
+ case PaymentEvent.REMOVED_CARD:
50
+ setState(HookPayState.CARD_REMOVED);
51
+ setMessage("Cartão removido");
52
+ break;
53
+ case PaymentEvent.PIN_REQUESTED:
54
+ setState(HookPayState.ENTER_PASSWORD);
55
+ setMessage("Digite sua senha");
56
+ break;
57
+ case PaymentEvent.PIN_OK:
58
+ setState(HookPayState.PIN_OK);
59
+ setMessage("Senha confirmada");
60
+ break;
61
+ case PaymentEvent.APPROVED:
62
+ setState(HookPayState.APPROVED);
63
+ setMessage("Pagamento aprovado!");
64
+ break;
65
+ case PaymentEvent.NO_PASSWORD:
66
+ setState(HookPayState.ENTER_PASSWORD);
67
+ setMessage("Digite sua senha");
68
+ break;
69
+ case PaymentEvent.CVV_REQUESTED:
70
+ setState(HookPayState.ENTER_CVV);
71
+ setMessage("Digite o CVV do cartão");
72
+ break;
73
+ case PaymentEvent.CVV_OK:
74
+ setState(HookPayState.CVV_OK);
75
+ setMessage("CVV confirmado");
76
+ break;
77
+ case PaymentEvent.CAR_BIN_REQUESTED:
78
+ setState(HookPayState.ENTER_CAR_BIN);
79
+ setMessage("Digite o BIN do cartão");
80
+ break;
81
+ case PaymentEvent.CAR_BIN_OK:
82
+ setState(HookPayState.CAR_BIN_OK);
83
+ setMessage("BIN confirmado");
84
+ break;
85
+ case PaymentEvent.CAR_HOLDER_REQUESTED:
86
+ setState(HookPayState.ENTER_CAR_HOLDER);
87
+ setMessage("Digite o nome do portador");
88
+ break;
89
+ case PaymentEvent.CAR_HOLDER_OK:
90
+ setState(HookPayState.CAR_HOLDER_OK);
91
+ setMessage("Nome confirmado");
92
+ break;
93
+ case PaymentEvent.ACTIVATION_SUCCESS:
94
+ setState(HookPayState.ACTIVATION_SUCCESS);
95
+ setMessage("Ativação realizada com sucesso");
96
+ break;
97
+ case PaymentEvent.DIGIT_PASSWORD:
98
+ setState(HookPayState.DIGIT_PASSWORD);
99
+ setMessage("Digitando senha...");
100
+ break;
101
+ case PaymentEvent.CONTACTLESS_ERROR:
102
+ setState(HookPayState.CONTACTLESS_ERROR);
103
+ setMessage("Erro na leitura por aproximação");
104
+ break;
105
+ case PaymentEvent.CONTACTLESS_ON_DEVICE:
106
+ setState(HookPayState.CONTACTLESS_ON_DEVICE);
107
+ setMessage("Siga as instruções no dispositivo");
108
+ break;
109
+ case PaymentEvent.SUCCESS:
110
+ setState(HookPayState.SUCCESS);
111
+ setMessage("Transação concluída com sucesso!");
112
+ break;
113
+ /* case PaymentEvent.CUSTOM_MESSAGE:
114
+ if (msg) {
115
+ setMessage(msg);
116
+ }
117
+ break;
118
+ case PaymentEvent.DEFAULT:
119
+ if (msg) {
120
+ setMessage(msg);
121
+ }
122
+ break; */
123
+ case PaymentEvent.NOT_APPROVED:
124
+ setState(HookPayState.REPROVED);
125
+ setMessage("Pagamento reprovado!");
126
+ break;
127
+ case PaymentEvent.USE_CHIP:
128
+ setState(HookPayState.USE_CHIP);
129
+ setMessage("Insira o cartão com chip");
130
+ break;
131
+ case PaymentEvent.USE_TARJA:
132
+ setState(HookPayState.USE_TARJA);
133
+ setMessage("Use a tarja do cartão!");
134
+ break;
135
+ case PaymentEvent.SOLVE_PENDINGS:
136
+ setState(HookPayState.SOLVING_PENDINGS);
137
+ setMessage("Resolvendo pendências...");
138
+ break;
139
+ case PaymentEvent.DOWNLOADING_TABLES:
140
+ setState(HookPayState.DOWNLOADING_TABLES);
141
+ setMessage("Fazendo carga de tabelas...");
142
+ break;
143
+ case PaymentEvent.RECORDING_TABLES:
144
+ setState(HookPayState.RECORDING_TABLES);
145
+ setMessage("Gravando tabelas...");
146
+ break;
147
+ case PaymentEvent.ON_EVENT_ERROR:
148
+ setState(HookPayState.ERROR);
149
+ setMessage(msg || "Erro no evento");
150
+ break;
151
+ }
152
+ });
153
+ setState(HookPayState.IDLE);
154
+ setMessage("");
155
+ aborting.current = false;
156
+ return r;
157
+ } catch (err) {
158
+ aborting.current = false;
159
+ setErrors(err);
160
+ setState(HookPayState.ERROR);
161
+ const error = err;
162
+ setMessage(error.message || "Falha no pagamento");
163
+ return Promise.reject(err);
164
+ }
165
+ }, []);
166
+ const abort_operation = useCallback(() => {
167
+ if (aborting.current) return;
168
+ aborting.current = true;
169
+ PagSeguro.abort_current_operation();
170
+ }, [aborting]);
171
+ const reset = useCallback(() => {
172
+ if (isProcessing) {
173
+ console.warn("Não é possível resetar enquanto há uma operação em andamento, por favor cancele a operação antes!");
174
+ return false;
175
+ }
176
+ setState(HookPayState.IDLE);
177
+ setMessage("");
178
+ setErrors(null);
179
+ aborting.current = false;
180
+ return true;
181
+ }, []);
182
+ return {
183
+ request_payment,
184
+ abort_operation,
185
+ reset,
186
+ state,
187
+ message,
188
+ errors,
189
+ isError,
190
+ isSuccess,
191
+ isProcessing
192
+ };
193
+ }
194
+ //# sourceMappingURL=usePagPayment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useRef","useState","useEffect","PagSeguro","HookPayState","PaymentEvent","useBoolStates","usePagPayment","aborting","state","setState","IDLE","message","setMessage","errors","setErrors","isError","isSuccess","isProcessing","abort_current_operation","request_payment","data","current","PROCESSING","r","do_payment","msg","code","WAITING_CARD","INSERTED_CARD","CARD_INSERTED","WAITING_REMOVE_CARD","SALE_END","AUTHORIZING","REMOVED_CARD","CARD_REMOVED","PIN_REQUESTED","ENTER_PASSWORD","PIN_OK","APPROVED","NO_PASSWORD","CVV_REQUESTED","ENTER_CVV","CVV_OK","CAR_BIN_REQUESTED","ENTER_CAR_BIN","CAR_BIN_OK","CAR_HOLDER_REQUESTED","ENTER_CAR_HOLDER","CAR_HOLDER_OK","ACTIVATION_SUCCESS","DIGIT_PASSWORD","CONTACTLESS_ERROR","CONTACTLESS_ON_DEVICE","SUCCESS","NOT_APPROVED","REPROVED","USE_CHIP","USE_TARJA","SOLVE_PENDINGS","SOLVING_PENDINGS","DOWNLOADING_TABLES","RECORDING_TABLES","ON_EVENT_ERROR","ERROR","err","error","Promise","reject","abort_operation","reset","console","warn"],"sourceRoot":"..\\..\\..\\src","sources":["hooks/usePagPayment.ts"],"mappings":"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","ignoreList":[]}