pagseguro-that-works
v0.6.7
Published
Pagseguro API wrapper that actually works!
Downloads
29
Readme
Pagseguro API wrapper that actually works!
Homepage
The main problem that I want to resolve with this package is that PagSeguro API packages are confusing and bad documented, so I've created this to include every payment method I need to use.
Feel free to contribute :)
Install
yarn add pagseguro-that-works
Recurring Payment Flow
This feature will make this flow:
The basic flow is accomplished when these features are englobed:
| Description | Developed | Tested | | --------------------- | --------- | ------ | | Plan creation | Yes | Yes | | Log in to join a plan | Yes | Yes | | Plan adherence | Yes | Yes | | Billing plan | Yes | Yes | | Retry payment | Yes | Yes |
The fully flow is accomplished when these features are englobed:
| Description | Developed | Tested | | ------------------------- | --------- | ------ | | Plan creation | Yes | Yes | | Log in to join a plan | Yes | Yes | | Plan adherence | Yes | Yes | | Billing plan | Yes | Yes | | Suspend plan | No | No | | Reactivate plan | No | No | | Edit plan | No | No | | Include coupon to payment | No | No | | Change payment method | No | No | | Retry payment | Yes | Yes |
Recurring Payment Usage
Plan Creation
You need to create a request object based on type
CreatePlanRequest
, and pass with your Pagseguro Email, Pagseguro Token and NODE_ENV (development or production)
const finalDate = new Date();
finalDate.setMonth(finalDate.getMonth() + 1);
const request: CreatePlanRequest = {
reference: 'SOME REFERENCE',
preApproval: {
name: 'PLAN NAME',
charge: 'MANUAL',
period: 'MONTHLY',
amountPerPayment: 200.0,
membershipFee: 15000.0,
trialPeriodDuration: 28,
finalDate,
},
maxUses: 500,
};
const createPlanResponse = await createPlan(pagseguroEmail, pagseguroToken, nodeEnv, request);
const [planId] = createPlanResponse.preApprovalRequest.code;
Log in to join a plan
You need to pass your Pagseguro Email, Pagseguro Token and NODE_ENV (development or production)
const sessionResponse = await getSession(pagseguroEmail, pagseguroToken, nodeEnv);
const sessionId = sessionResponse.session.id;
Plan adherence
You need to apss your Pagseguro Email, Pagseguro Token, NODE_ENV (development or production) and a request based on type
AdherePlanRequest
const request: AdherePlanRequest = {
plan: 'PLAN ID, e.g. 659AB301DFDFE684448C1FB8B86F28F8',
reference: 'SOME REFERENCE',
paymentMethod: {
type: 'CREDITCARD',
creditCard: {
token: 'CARD TOKEN GENERATED ON BROWSER',
holder: {
name: 'Nome Comprador',
birthDate: '11/01/1984',
documents: [
{
type: 'CPF',
value: '00000000191',
},
],
billingAddress: {
street: 'Av. Brigadeiro Faria Lima',
number: '1384',
complement: '3 andar',
district: 'Jd. Paulistano',
city: 'São Paulo',
state: 'SP',
country: 'BRA',
postalCode: '01452002',
},
phone: {
areaCode: '11',
number: '988881234',
},
},
},
},
sender: {
email: '[email protected]',
name: 'Sender Name',
hash: 'SENDERHASH GENERATED ON BROWSER',
address: {
street: 'Av. Brigadeira Faria Lima',
number: '1384',
complement: '3 andar',
district: 'Jd. Paulistano',
city: 'São Paulo',
state: 'SP',
country: 'BRA',
postalCode: '01452002',
},
documents: [
{
type: 'CPF',
value: '00000000191',
},
],
phone: {
areaCode: '11',
number: '988881234',
},
},
};
const adherePlanResponse = await adherePlan(pagseguroEmail, pagseguroToken, nodeEnv, request);
const preApprovalCode = adherePlanResponse.code;
Billing plan
You need to pass your Pagseguro Email, Pagseguro Token, NODE_ENV (development or production), a request based on type
BillingPlanRequest
, the preApprovalCode (result from plan adherence))
PS: You can only bill a plan that
charge
is MANUAL
const request: BillingPlanRequest = {
preApprovalCode: preApprovalCode as string,
items: [{ id: '0001', description: 'teste1', amount: '200.00', quantity: '1' }],
};
const billingPlanResponse = await billingPlan(email as string, token as string, 'development', request);
Retry payment
You need to pass your Pagseguro Email, Pagseguro Token, NODE_ENV (development or production), a request based on type
RetryPaymentRequest
, the preApprovalCode (result from plan adherence) and the paymentOrderCode (you can see how to get this here)
PS: You can only bill a plan that
charge
is AUTO
const request: RetryPaymentRequest = {
type: 'CREDITCARD',
sender: {
hash: 'SENDERHASH GENERATED ON BROWSER',
},
creditCard: {
token: 'CARD TOKEN GENERATED ON BROWSER',
holder: {
name: 'Nome Comprador',
birthDate: '11/01/1984',
documents: [
{
type: 'CPF',
value: '00000000191',
},
],
billingAddress: {
street: 'Av. Brigadeiro Faria Lima',
number: '1384',
complement: '3 andar',
district: 'Jd. Paulistano',
city: 'São Paulo',
state: 'SP',
country: 'BRA',
postalCode: '01452002',
},
phone: {
areaCode: '11',
number: '988881234',
},
},
},
};
const retryPaymentResponse = await retryPayment(pagseguroEmail, pagseguroToken, nodeEnv, request, preApprovalCode, paymentOrderCode);
const { transactionCode } = retryPaymentResponse;
Test
PS: You need to create a project running with PagSeguroDirectPayment at port 3000. If you want to clone something already developed, clone this repo: pagseguro-hash-generator
PS2: Create a .env based on .env.example
yarn test
Author
👤 Eduardo Santos Brito
- Website: https://portfolio.brito.top
- Github: @EduSantosBrito
🤝 Contributing
Contributions, issues and feature requests are welcome!Feel free to check issues page.
Show your support
Give a ⭐️ if this project helped you!
📝 License
Copyright © 2021 Eduardo Santos Brito. This project is MIT licensed.
This README was generated with ❤️ by readme-md-generator