/nestjs-paypal-payouts

NestJS injectable https://github.com/paypal/Payouts-NodeJS-SDK module and client.

Primary LanguageTypeScriptMIT LicenseMIT

nestjs-paypal-payouts

NestJS injectable https://github.com/paypal/Payouts-NodeJS-SDK module and client.

Installation

yarn add nestjs-paypal-payouts

Configuration

some-paypal.module.ts

@Module({
  imports: [
    NestjsPaypalPayoutsModule.register({
      environment: process.env.PAYPAL_ENVIRONMENT as 'sandbox' | 'live',
      clientId: process.env.PAYPAL_CLIENT_ID,
      clientSecret: process.env.PAYPAL_CLIENT_SECRET,
    }),
  ],
})

You may also use registerAsync.

Usage

some-paypal.service.ts

constructor(
    @InjectPaypalClient()
    private readonly paypalClient,
    @InjectPaypal()
    private readonly paypal,
  ) {}

async payout() {
  const request = this.paypal.payouts.PayoutsPostRequest();

  request.requestBody({
    sender_batch_header: {
      recipient_type: "EMAIL",
      email_message: "SDK payouts test txn",
      note: "Enjoy your Payout!!",
      sender_batch_id: "Test_sdk_1",
      email_subject: "This is a test transaction from SDK"
    },
    items: [{
      note: "Your 5$ Payout!",
      amount: {
        currency: "USD",
        value: "1.00"
      },
      receiver: "payout-sdk-1@paypal.com",
      sender_item_id: "Test_txn_1"
    }]
  });

  let response = await this.paypalClient.execute(request);
  console.log(`Response: ${JSON.stringify(response)}`);
  // If call returns body in response, you can get the deserialized version from the result attribute of the response.
  console.log(`Payouts Create Response: ${JSON.stringify(response.result)}`);
}

Inspiration

nestjs-stripe by dhaspden
this post and others by John Biundo

Nest Logo

NestjsPaypalPayouts -- generated by @nestjsplus/dyn-schematics

Built with NestJS Built with @nestjsplus/dyn-schematics

This dynamic module was generated with Nest Dynamic Package Generator Schematics. You can read more about using the generator here.

Installation

To install this generated project:

npm install

(or yarn equivalent)

Running

If you selected yes for the question Generate a testing client?, a small testing module was automatically generated called NestjsPaypalPayoutsClientModule. You can test that the template was properly generated by running

npm run start:dev

Then connect to http://localhost:3000.

Customizing

The files in the project have comments that should help guide you.

You can also refer to this article for details on the concepts behind this module pattern.

You can read more about using the generator here.

About @nestjsplus/dyn-schematics

Nest Dynamic Package Generator Schematics generates a starter template for building NestJS dynamic packages. It uses the @nestjs/cli core package, and provides customized schematics for generating modular NestJS applications. See here for the full set of available schematics, and documentation.