react-native-pos-pagseguro 1.1.0 → 1.2.0

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 (56) hide show
  1. package/README.md +160 -4
  2. package/android/src/main/java/com/margelo/nitro/pospagseguro/PosPagseguro.kt +20 -0
  3. package/android/src/main/java/com/margelo/nitro/pospagseguro/maps/PlugPagCommand.kt +29 -0
  4. package/lib/module/hooks/useBoolStates.js +16 -0
  5. package/lib/module/hooks/useBoolStates.js.map +1 -0
  6. package/lib/module/hooks/usePagPayment.js +194 -0
  7. package/lib/module/hooks/usePagPayment.js.map +1 -0
  8. package/lib/module/hooks/usePagRefund.js +176 -0
  9. package/lib/module/hooks/usePagRefund.js.map +1 -0
  10. package/lib/module/index.js +4 -2
  11. package/lib/module/index.js.map +1 -1
  12. package/lib/module/pag_seguro.js +66 -3
  13. package/lib/module/pag_seguro.js.map +1 -1
  14. package/lib/module/types/device.js +24 -0
  15. package/lib/module/types/device.js.map +1 -1
  16. package/lib/module/types/payments.js +70 -0
  17. package/lib/module/types/payments.js.map +1 -1
  18. package/lib/typescript/src/PosPagseguro.nitro.d.ts +4 -2
  19. package/lib/typescript/src/PosPagseguro.nitro.d.ts.map +1 -1
  20. package/lib/typescript/src/hooks/useBoolStates.d.ts +7 -0
  21. package/lib/typescript/src/hooks/useBoolStates.d.ts.map +1 -0
  22. package/lib/typescript/src/hooks/usePagPayment.d.ts +13 -0
  23. package/lib/typescript/src/hooks/usePagPayment.d.ts.map +1 -0
  24. package/lib/typescript/src/hooks/usePagRefund.d.ts +13 -0
  25. package/lib/typescript/src/hooks/usePagRefund.d.ts.map +1 -0
  26. package/lib/typescript/src/index.d.ts +6 -4
  27. package/lib/typescript/src/index.d.ts.map +1 -1
  28. package/lib/typescript/src/pag_seguro.d.ts +46 -3
  29. package/lib/typescript/src/pag_seguro.d.ts.map +1 -1
  30. package/lib/typescript/src/types/device.d.ts +22 -0
  31. package/lib/typescript/src/types/device.d.ts.map +1 -1
  32. package/lib/typescript/src/types/payments.d.ts +92 -0
  33. package/lib/typescript/src/types/payments.d.ts.map +1 -1
  34. package/nitrogen/generated/android/c++/JHybridPosPagseguroSpec.cpp +32 -0
  35. package/nitrogen/generated/android/c++/JHybridPosPagseguroSpec.hpp +2 -0
  36. package/nitrogen/generated/android/c++/JInstallment.hpp +73 -0
  37. package/nitrogen/generated/android/c++/JPlugPagMode.hpp +58 -0
  38. package/nitrogen/generated/android/c++/JPlugPagOp.hpp +100 -0
  39. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pospagseguro/HybridPosPagseguroSpec.kt +8 -0
  40. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pospagseguro/Installment.kt +50 -0
  41. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pospagseguro/PlugPagMode.kt +23 -0
  42. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pospagseguro/PlugPagOp.kt +37 -0
  43. package/nitrogen/generated/shared/c++/HybridPosPagseguroSpec.cpp +2 -0
  44. package/nitrogen/generated/shared/c++/HybridPosPagseguroSpec.hpp +15 -0
  45. package/nitrogen/generated/shared/c++/Installment.hpp +99 -0
  46. package/nitrogen/generated/shared/c++/PlugPagMode.hpp +65 -0
  47. package/nitrogen/generated/shared/c++/PlugPagOp.hpp +93 -0
  48. package/package.json +2 -1
  49. package/src/PosPagseguro.nitro.ts +5 -2
  50. package/src/hooks/useBoolStates.ts +44 -0
  51. package/src/hooks/usePagPayment.ts +204 -0
  52. package/src/hooks/usePagRefund.ts +187 -0
  53. package/src/index.ts +29 -23
  54. package/src/pag_seguro.ts +70 -4
  55. package/src/types/device.ts +25 -0
  56. package/src/types/payments.ts +95 -0
package/README.md CHANGED
@@ -3,7 +3,7 @@
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
9
 
@@ -13,6 +13,8 @@ Supports credit, debit, voucher, PIX payments, installments, cancellations, rece
13
13
  - **Payments:** Credit, Debit, Voucher, PIX
14
14
  - **Installments:** (à vista, store installment without interest, buyer installment with interest)
15
15
  - **Cancel/refund:** transactions (same-day only)
16
+ - **Easy use payment Hook**
17
+ - **Easy use refund Hook**
16
18
  - Get last approved transaction
17
19
  - **Reprint:** customer or merchant receipt
18
20
  - Custom image printing (file path or Base64)
@@ -20,6 +22,7 @@ Supports credit, debit, voucher, PIX payments, installments, cancellations, rece
20
22
  - Reboot terminal
21
23
  - **Device info:** model, serial number, user data, sub-acquirer data
22
24
  - **Capability detection:** printer, NFC, chip, magnetic stripe, etc.
25
+ - **Software Capability detection:** can activate, can activate remotely, can refund, etc.
23
26
  - Progress callbacks during payment flow
24
27
 
25
28
  ## Installation
@@ -91,6 +94,60 @@ try {
91
94
  }
92
95
  ```
93
96
 
97
+ ### 2.1. Make a payment with hook
98
+ [Full example here](https://github.com/CECSMH/react-native-pos-pagseguro/blob/main/example/src/payhook.tsx)
99
+ ```typescript
100
+ const {
101
+ request_payment,
102
+ abort_operation,
103
+ reset,
104
+ state,
105
+ message,
106
+ errors,
107
+ isError,
108
+ isSuccess,
109
+ isProcessing,
110
+ } = usePagPayment();
111
+
112
+ const handlePayment = async () => {
113
+ const paymentData: PaymentData = {
114
+ amount,
115
+ type: PaymentTypes.DEBIT,
116
+ installment_type: InstallmentTypes.NO_INSTALLMENT,
117
+ installments: 1,
118
+ print_receipt: false,
119
+ user_reference: `ORDER${Date.now()}`,
120
+ };
121
+ try {
122
+ const result = await request_payment(paymentData);
123
+ Alert.alert(
124
+ 'Pagamento Aprovado! ✓',
125
+ `NSU: ${result.nsu}\nAutorização: ${result.auto_code}\nBandeira: ${result.card_brand}`,
126
+ [{ text: 'OK', onPress: () => reset() }]
127
+ );
128
+ } catch (error) {console.log(error)
129
+ Alert.alert(
130
+ 'Erro no Pagamento ✗',
131
+ errors?.message || 'Falha ao processar pagamento',
132
+ [{ text: 'OK', onPress: () => reset() }]
133
+ );
134
+ }
135
+
136
+ console.log(message) // Digite sua senha.
137
+
138
+ const getStateIcon = () => {
139
+ switch (state) {
140
+ case HookPayState.WAITING_CARD:
141
+ return '💳';
142
+ case HookPayState.CARD_INSERTED:
143
+ return '✓';
144
+ case HookPayState.ENTER_PASSWORD:
145
+ ...
146
+ }
147
+ };
148
+
149
+ };
150
+ ```
94
151
 
95
152
  ### 3. Cancel a payment (same day only)
96
153
  ```typescript
@@ -110,6 +167,80 @@ try {
110
167
  }
111
168
  ```
112
169
 
170
+ ### 3.1. Cancel a payment with hook (same day only)
171
+ [Full example here](https://github.com/CECSMH/react-native-pos-pagseguro/blob/main/example/src/refundhook.tsx)
172
+ ```typescript
173
+ const {
174
+ request_refund,
175
+ abort_operation,
176
+ reset,
177
+ state,
178
+ message,
179
+ errors,
180
+ isError,
181
+ isSuccess,
182
+ isProcessing,
183
+ } = usePagRefund();
184
+
185
+ const [transactionCode, setTransactionCode] = useState('');
186
+ const [transactionId, setTransactionId] = useState('');
187
+
188
+ const handleRefund = async () => {
189
+ if (!transactionCode.trim()) {
190
+ Alert.alert('Atenção', 'Informe o código da transação');
191
+ return;
192
+ }
193
+ if (!transactionId.trim()) {
194
+ Alert.alert('Atenção', 'Informe o ID da transação');
195
+ return;
196
+ }
197
+ const refundData: VoidPayData = {
198
+ transaction_code: transactionCode.trim(),
199
+ transaction_id: transactionId.trim(),
200
+ print_receipt: false,
201
+ void_type: VoidType.PAYMENT,
202
+ };
203
+ try {
204
+ const result = await request_refund(refundData);
205
+ Alert.alert(
206
+ 'Estorno Aprovado! ✓',
207
+ `NSU: ${result.nsu}\nCódigo: ${result.transaction_code}\nData: ${result.date} ${result.time}`,
208
+ [
209
+ {
210
+ text: 'OK',
211
+ onPress: () => {
212
+ reset();
213
+ setTransactionCode('');
214
+ setTransactionId('');
215
+ }
216
+ }
217
+ ]
218
+ );
219
+ } catch (error) {
220
+ Alert.alert(
221
+ 'Erro no Estorno ✗',
222
+ errors?.message || 'Falha ao processar estorno',
223
+ [{ text: 'OK', onPress: () => reset() }]
224
+ );
225
+ }
226
+ }
227
+
228
+ console.log(message) // Autorizando estorno...
229
+
230
+ const getStateIcon = () => {
231
+ switch (state) {
232
+ case HookPayState.WAITING_CARD:
233
+ return '💳';
234
+ case HookPayState.CARD_INSERTED:
235
+ return '✓';
236
+ case HookPayState.ENTER_PASSWORD:
237
+ case HookPayState.ENTER_CVV:
238
+ return '🔒';
239
+ ...
240
+ }
241
+ }:
242
+ ```
243
+
113
244
 
114
245
  ### 4. Reprint receipts
115
246
  ```typescript
@@ -169,6 +300,28 @@ console.log('Model:', PagSeguro.get_model());
169
300
  console.log('Serial:', PagSeguro.get_serial_number());
170
301
  console.log('User data:', PagSeguro.get_userdata());
171
302
  ```
303
+ ### 8. Calculate installments
304
+ ```typescript
305
+ //InstallmentTypes.SELLER_INSTALLMENT or InstallmentTypes.BUYER_INSTALLMENT
306
+ // R$ 230,00
307
+ const installments = PagSeguro.calculate_installments(23000, InstallmentTypes.SELLER_INSTALLMENT);
308
+ console.log(installments)
309
+ /*[{
310
+ "quantity": 2,
311
+ "amount": 11500,
312
+ "total": 23000,
313
+ "formatted_amount": "R$ 115,00",
314
+ "formatted_total": "R$ 230,00"
315
+ }
316
+ ...]*/
317
+ ```
318
+ ### 8. Check Software capabilities
319
+ ```typescript
320
+ console.log("can activate: ", PagSeguro.software.can_activate());
321
+ console.log("can activate remotely: ", PagSeguro.software.can_activate_remotely());
322
+ console.log("can reprint: ", PagSeguro.software.can_reprint());
323
+ //...
324
+ ```
172
325
 
173
326
  ## Error Handling
174
327
 
@@ -188,10 +341,13 @@ try {
188
341
 
189
342
  ## API Reference
190
343
 
191
- All types and enums are fully typed. Key exports:
344
+ All types and enums are fully typed. exports:
192
345
 
193
346
  - `PagSeguro` (main class)
194
347
  - `PaymentData`
348
+ - `usePagRefund`
349
+ - `usePagPayment`
350
+ - `HookPayState`
195
351
  - `TransactionResult`
196
352
  - `VoidPayData`
197
353
  - `PaymentTypes`
@@ -221,9 +377,9 @@ If you've found this library helpful, consider buying me a coffee!
221
377
 
222
378
 
223
379
 
224
- Scan the QR code to donate (Lightning⚡):
380
+ Scan the QR code to donate (PIX):
225
381
 
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)
382
+ ![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
383
 
228
384
  Thank you for your support! 🚀
229
385
 
@@ -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":[]}