Angular图书馆"ngx-paypal"是否支持循环付款?

Is Angular library "ngx-paypal" supports recurring payment?

我想为我的 Angular 项目之一使用 paypal 库 ngx-paypal,我知道 javascript 库集成,但我想使用 angular 库,即 https://www.npmjs.com/package/ngx-paypal

是否支持定期付款

我关注 link : https://www.c-sharpcorner.com/article/implement-paypal-with-recurring-payment-using-angular-8/

A search of the ngx-paypal codebase shows it has support for PayPal Subscriptions

完全可以用ngx-paypal实现循环支付。

计划-list.component.ts

import { Component, OnInit, ViewChild } from "@angular/core";
import {
  PayPalScriptService,
  IPayPalConfig,
  NgxPaypalComponent,
} from "ngx-paypal";
import { environment } from "../../environments/environment";
import { plans } from "../plans";

@Component({
  selector: "app-plan-list",
  templateUrl: "./plan-list.component.html",
  styleUrls: ["./plan-list.component.css"],
})
export class PlanListComponent implements OnInit {
  private plans = [];
  public configs = {};

  @ViewChild("basic") basicSubscription?: NgxPaypalComponent;
  @ViewChild("advanced") advancedSubscription?: NgxPaypalComponent;

  constructor(private payPalScriptService: PayPalScriptService) {
    this.plans = plans;
  }

  ngOnInit() {
    this.plans.map((plan) => {
      this.configs[plan.name] = this.getConfig(plan.id);
    });
    this.payPalScriptService.registerPayPalScript(
      {
        clientId: environment.paypalKey,
        currency: "USD",
        vault: "true",
      },
      (payPalApi) => {
        if (this.basicSubscription) {
          this.basicSubscription.customInit(payPalApi);
        }
        if (this.advancedSubscription) {
          this.advancedSubscription.customInit(payPalApi);
        }
      }
    );
  }

  getConfig(plan_id: string): IPayPalConfig {
    return {
      clientId: environment.paypalKey,
      currency: "USD",
      vault: "true",
      style: {
        label: "paypal",
        layout: "vertical",
        size: "small",
        shape: "pill",
        color: "silver",
        tagline: false,
      },
      createSubscription: function (data, actions) {
        return actions.subscription.create({
          plan_id,
        });
      },
      onApprove: function (data, actions) {
        console.log("subscription data:", data);
        actions.subscription.get().then((details) => {
          console.log("subscription details:", details);
          alert("Success to subscribe!");
        });
      },
      onCancel: (data, actions) => {
        console.log("OnCancel", data, actions);
      },
      onError: (err) => {
        console.log("OnError", err);
      },
      onClick: (data, actions) => {
        console.log("Clicked:", data, actions);
      },
    };
  }
}

计划-list.component.html

<ngx-paypal
  #basic
  [config]="configs['basic']"
  [registerScript]="false"
></ngx-paypal>
<ngx-paypal
  #advanced
  [config]="configs['advanced']"
  [registerScript]="false"
></ngx-paypal>

plans.ts

export const plans = [
  {
    id: "P-2D5563872K1616013MA4EJJQ",
    name: "basic",
    price: 9,
  },
  {
    id: "P-51W76656242348941MA4FEXI",
    name: "advanced",
    price: 99,
  },
];

您可以找到完整的源代码here 您可以查看现场演示 here