Настройка кнопки входа PayPal в угловой 5 - PullRequest
0 голосов
/ 19 декабря 2018

Эта ошибка возникает, когда я использую скрипт https://www.paypalobjects.com/js/external/api.js на угловом уровне 5. Ниже приведен код кнопки входа в систему PayPal для углового кода.

PaypalIdentityComponent.ts

import { Component, OnInit } from '@angular/core';
import {ActivatedRoute} from '@angular/router';

@Component({
  selector: 'app-paypal-identity',
  templateUrl: './paypal-identity.component.html',
  styleUrls: ['./paypal-identity.component.css']
})
export class PaypalIdentityComponent implements OnInit {
  loadAPI: Promise<any>;
  constructor(private route: ActivatedRoute) {
    this.loadAPI = new Promise((resolve) => {
      this.loadScript();
      resolve(true);
    });
  }

  ngOnInit() {
      setTimeout(() => {
        const windowRef: any = window;
        console.log('windowRef', windowRef.paypal);
        windowRef.paypal.use(['login'], function(login) {
          login.render({
            appid:
              'AQdSGiwwbkBYeHQrkEHGPgXU_xCj3qebgn0x1Vf0jC49cowAbTZE1xlxGukvn-jDty4SsN7ocNd6Lq6X',
            authend: 'sandbox',
            scopes: 'openid',
            containerid: 'lippButton',
            locale: 'en-us',
            returnurl: 'http://localhost:4200/paypal-identity'
          });
        });
      }, 500);
  }
  public async loadScript() {
    var isFound = false;
    var scripts = document.getElementsByTagName("script")
    for (var i = 0; i < scripts.length; ++i) {
        if (scripts[i].getAttribute('src') != null && scripts[i].getAttribute('src').includes("loader")) {
            isFound = true;
        }
    }

    if (!isFound) {
        var dynamicScripts = ["https://www.paypalobjects.com/js/external/api.js"];

        for (var i = 0; i < dynamicScripts .length; i++) {
            let node = document.createElement('script');
            node.src = dynamicScripts [i];
            node.type = 'text/javascript';
            node.async = false;
            node.charset = 'utf-8';
            document.getElementsByTagName('head')[0].appendChild(node);
        }

    }
  }
}

Ошибка в консоли браузера

Эта ошибка для requirejs в угловых 5 в консоли браузера.Внешний API кнопки входа PayPal не работает на уровне компонента.

ERROR Error: Script error
    http://requirejs.org/docs/errors.html#scripterror
        at J (www.paypalobjects.com/js/external/api.js:2)
        at HTMLScriptElement.onScriptError (www.paypalobjects.com/js/external/api.js:2)
        at ZoneDelegate.invokeTask (webpack-internal:///../../../../zone.js/dist/zone.js:421)
        at Object.onInvokeTask (webpack-internal:///../../../core/esm5/core.js:4967)
        at ZoneDelegate.invokeTask (webpack-internal:///../../../../zone.js/dist/zone.js:420)
        at Zone.runTask (webpack-internal:///../../../../zone.js/dist/zone.js:188)
        at ZoneTask.invokeTask [as invoke] (webpack-internal:///../../../../zone.js/dist/zone.js:496)
        at invokeTask (webpack-internal:///../../../../zone.js/dist/zone.js:1540)
        at HTMLScriptElement.globalZoneAwareCallback (webpack-internal:///../../../../zone.js/dist/zone.js:1566)
...