Я пытаюсь интегрировать экспресс-оплату PayPal в свой угловой проект, но сталкиваюсь с очень странной ошибкой. Вот мой код для интеграции с PayPal.
Проблема заключается в том, что кнопка Paypal не отображается, а отображается на вкладке элемента Chrome.
И в журнале консоли ngAfterViewChecked я всегда получаю false.
this.paypalConfig = {
env: 'sandbox',
client: {
sandbox: 'key here',
// production: '<your-production-key here>'
},
commit: true
}
private loadExternalScript(scriptUrl: string) {
this.addScript = true;
return new Promise((resolve, reject) => {
const scriptElement = document.createElement('script')
scriptElement.src = scriptUrl
scriptElement.onload = resolve
document.body.appendChild(scriptElement)
})
}
ngAfterViewChecked(){
const elementExists = !!document.getElementById('paypal-checkout-btn');
console.log(elementExists);
if (elementExists && !this.addScript) {
this.loadExternalScript("https://www.paypalobjects.com/api/checkout.js").then(() => {
paypal.Button.render(this.paypalConfig, '#paypal-checkout-btn');
this.paypalLoad = false;
});
}
}
Вот скриншот: -