UNPKG

react-native-plugpag-lib

Version:

Integre facilmente as principais formas de pagamento da PagSeguro em seus aplicativos React Native através deste módulo nativo.

236 lines (181 loc) 6.79 kB
<h1 align="center"> <img alt="react-native-plugpag-lib" title="react-native-plugpag-lib" style="margin-bottom: 16px" src=".github/images/react-native-plugpag-lib-logo.png" /> React Native Pagseguro Plugpag </h1> [README PORTUGUESE-BR VERSION](README-PORTUGUESE-BR.md) React Native Pagseguro Plugpag is a library aimed at integrating with the native library <a href="https://github.com/pagseguro/pagseguro-sdk-plugpagservicewrapper">PlugPagServiceWrapper</a>, maintained by <a href="https://github.com/pagseguro">Pagseguro</a>. The library's purpose is to integrate Android applications with smart terminals, such as Moderninha Smart (A930), Moderninha Smart 2 (P2), and other terminals provided by the company. ## 💻 Prerequisites - NodeJS >= 18.0.0 - React Native >= 0.72 - Expo >= 47 (optional) ## 🚀 Installation Installing with Yarn: ```sh yarn add react-native-plugpag-lib ``` Installing with npm: ```sh npm install react-native-plugpag-lib ``` ### Configuration in React Native Add this line to the file `/android/build.gradle`: ``` buildscript { dependencies { ... classpath 'com.google.gms:google-services:4.3.15' } } ``` and add this dependency to the file `/android/app/build.gradle`: ``` dependencies { // ... other dependencies implementation 'br.com.uol.pagseguro.plugpagservice.wrapper:wrapper:1.29.5' ... } ``` ### Configuration in Expo ***NOTE***: The library does not support running on ***Expo Go*** due to its handling of libraries. The PlugPag Wrapper library is designed for use with Pagseguro's Android devices. Therefore, you need to use ***expo-dev-client*** to expose the android folder of your Expo project. Add the react-native-plugpag-lib plugin to `app.json` or `app.config.js`: ``` { "expo": { "plugins": [ "react-native-plugpag-lib" ] } } ``` And to finalize, execute the prebuild step of expo to complete the configuration: ``` npx expo prebuild -p android --clean ``` ## 📖 Usage ***initializeAndActivatePinPad***: initializes and activates the pin pad. ***doPayment***: performs communication and execution of financial transactions (debit card, credit card, voucher, and PIX). ***refundPayment***: performs refunds of financial transactions. ***print***: does customized printing from a JPEG/PNG file. ***useTransactionPaymentEvent***: hook for native events related to financial transactions. ***doAbort***: aborts the current transaction. ***readNFCCard***: allows reading NFC cards. ***reprintCustomerReceipt***: allows you to reprint the customer's receipt from the last transaction. ### Usage Examples Example for activating a pin pad terminal. ***NOTE***: For development terminals, the code `403938` is commonly used. If it doesn't work, contact Pagseguro support. ```JS import { initializeAndActivatePinPad } from 'react-native-plugpag-lib'; async function handleInitializeAndActivatePinPad() { try { const data = await initializeAndActivatePinPad('403938'); if (data.result !== 0) { Alert.alert('Error activating terminal', data.errorMessage); return; } Alert.alert('Terminal activated successfully!'); } catch (error) { console.log(error); Alert.alert('Error activating terminal'); } } ``` Example for making credit card transactions with R$ 25.00: ```js import { plugPag, doPayment } from 'react-native-plugpag-lib'; async function handleDoPaymentCreditType() { try { const data = await doPayment({ amount: 2500, // Amount to be paid in cents type: plugPag.paymentTypes.CREDIT, // Payment type option printReceipt: true, // Print or not from the establishment installments: 1, // Number of installments installmentType: plugPag.installmentTypes.BUYER_INSTALLMENT, // In case of installments, define whether the fee will be charged to the buyer or the seller userReference: 'test', // External code to identify the transaction in the future. }); Alert.alert('Transaction completed successfully'); } catch (error) { console.log(error); setIsModalVisible(false); Alert.alert('Error completing transaction'); } } ``` Example for making debit card transactions with R$ 25.00: ```js import { plugPag, doPayment } from 'react-native-plugpag-lib'; async function handleDoPaymentDebitType() { try { const data = await doPayment({ amount: 2500, // Amount to be paid in cents type: plugPag.paymentTypes.DEBIT, // Payment type option printReceipt: true, // Print or not from the establishment installments: 1, // Number of installments installmentType: plugPag.installmentTypes.BUYER_INSTALLMENT, // In case of installments, define whether the fee will be charged to the buyer or the seller userReference: 'test', // External code to identify the transaction in the future. }); Alert.alert('Transaction completed successfully'); } catch (error) { console.log(error); setIsModalVisible(false); Alert.alert('Error completing transaction'); } } ``` Example for refunding a transaction: ```JS async function handleRefundLastTransaction() { try { const response = await refundPayment({ transactionCode: '123dwqwd5465sdas', transactionId: '78911qweqwdw7de44dd7qweqwed7d1qwe', printReceipt: true, }); if (response.result !== 0) { Alert.alert('Refund', 'An error occurred while processing the refund'); return; } Alert.alert('Refund completed successfully'); } catch (error) { console.log(error); setIsModalVisible(false); Alert.alert('Refund', 'An error occurred while processing the refund'); } } ``` Example for abort a transaction: ```JS import { doAbort } from 'react-native-plugpag-lib'; async function handleAbortTransaction() { try { const response = await doAbort(); if (response.result === true) { console.log('Transaction aborted'); } } catch (error) { console.log(error); Alert.alert('Failed to abort transaction'); } } ``` Example to read an NFC card: ```JS import { readNFCCard } from 'react-native-pagseguro-plugpag'; async function handleReadNFCCard() { try { const response = await readNFCCard(); if (response.uid) { console.log('NFC card read successfully'); } } catch (error) { console.log(error); Alert.alert('Error reading NFC card'); } } ``` For more examples, see the demo app in this <a href="https://github.com/brunodsazevedo/pagseguro-plugpag-demo">repository</a>. ## Contributing See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development flow. ## License [MIT](LICENSE) --- Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)