npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@wizdm/paypal

v2.1.0

Published

Paypal Smart Buttons for Angular

Downloads

14

Readme

PayPal Smart Buttons for Angular

The @wizdm/paypal package brings all the functionalities of PayPal Smart Payment Buttons into your Angular application.

PayPal Checkout with Smart Payment Buttons gives your buyers a simplified and secure checkout experience. PayPal intelligently presents the most relevant payment types to your shoppers, automatically, making it easier for them to complete their purchase using methods like Pay with Venmo, PayPal pay later offers, credit card payments, iDEAL, Bancontact, Sofort, and other payment types.

Installation

Use npm to install the @wizdm/paypal module:

npm install @wizdm/paypal

Usage

Import the PayPalModule in the root NgModule of your Angular project. Call the static init() function to configure the module with your own PayPal client-id and all the other relevant query parameters.

import { PayPalModule } from '@wizdm/paypal';

...

@NgModule({
  ...
  imports: [

    // Initialize the paypal sdk
    PayPalModule.init({ cliendId: 'sb' }),
    ...
  ]
})
export class AppModule();

Process payments

In order to process a payment, you simply add a wm-paypal component to your template.


<!-- Simply provide the order request to be processed -->
<wm-paypal [request]="order"></wm-paypal>

THen you capture the payment transaction implementing the onApprove hook:


@Component({
  ...
  // Injects the component as a PayPalProcessor
  providers: [ { provide: PayPalProcessor, useExisting: forwardRef(() => MyComponent) }]
})
export class MyComponent implements OnApprove {

  public order: OrderRequest = {
    intent: 'CAPTURE', 
    purchase_units: [{
      amount: {
        currency_code: 'EUR',
        value: '9.99'
      }
    }]
  };

  // Implements the onApprove hook
  onApprove(data: OnApproveData, actions: OnApproveActions) {
    
    console.log('Transaction Approved:', data);

    // Captures the trasnaction
    return actions.order.capture().then(details => {

      console.log('Transaction completed by', details);

      // Call your server to handle the transaction
      return Promise.reject('Transaction aborted by the server');
    });
  }
}

Standalone buttons

By default, the Smart Payment Buttons automatically render all eligible buttons in a single location on your page.

If your use-case permits, you can render individual, standalone buttons for each supported payment method. For example, render the PayPal, Venmo, PayPal pay later offers, and Alternative Payment Method buttons on different parts of the checkout page, alongside different radio buttons, or on entirely different pages.


<!-- Renders the PayPal button only -->
<wm-paypal [request]="order" fundingSource="paypal"></wm-paypal>

<!-- Renders the Credit or debit cards payment button only -->
<wm-paypal [request]="order" fundingSource="card"></wm-paypal>

Even with standalone buttons, your integrations take advantage of the smart eligibility logic the PayPal JavaScript SDK provides, meaning only the supported buttons for the current buyer display.

Handling Cancellation

Payment cancellations and errors can be handled using regular events fired from the component.


<wm-paypal [request]="order" (cancel)="onCancel($event)" (error)="onError($event)"></wm-paypal>

Customize the buttons

There are several style options that you can use to customize your Smart Payment Button.


<wm-paypal 
  [request]="order"
  layout="layout" 
  color="blue" 
  shape="pill" 
  height="40"
></wm-paypal>

Further usage information and reference details can be found in the Wizdm documentation.