Я пытался внедрить Paypal в свой проект Angular. Я нашел этот урок и последовал за шагом. Кнопка показалась идеальной, но когда я нажимаю кнопку, появляется мод PayPal, но выдает ошибку:
POST https://www.sandbox.paypal.com/v1/oauth2/token 401 (не авторизовано)
my app.component.ts:
addScript = false;
paypalLoad = true;
finalAmount = 1;
paypalConfig = {
env: 'sandbox',
client: {
sandbox: localStorage.getItem('paypal_token'), // this generate the backend
production: '<your-production-key here>'
},
commit: true,
payment: (data, actions) => {
return actions.payment.create({
payment: {
transactions: [
{ amount: {
total: this.finalAmount,
currency: 'HUF'
}
}
]
}
});
},
onAuthorize: (data, actions) => {
return actions.payment.execute().then((payment) => {
// Do something when payment is successful.
});
}
};
ngAfterViewChecked() {
if (!this.addScript) {
this.addPaypalScript().then(() => {
paypal.Button.render(this.paypalConfig, '#paypal-checkout-btn');
this.paypalLoad = false;
});
}
}
addPaypalScript() {
this.addScript = true;
return new Promise((resolve, reject) => {
let scripttagElement;
scripttagElement = document.createElement('script');
scripttagElement.src = 'https://www.paypalobjects.com/api/checkout.js';
scripttagElement.onload = resolve;
document.body.appendChild(scripttagElement);
});
}
и мой app.component.html
<input type="number" [(ngModel)]="finalAmount" style="padding-bottom: 10px;">
<h2 *ngIf="paypalLoad">Paypal button is loading</h2>
<div id="paypal-checkout-btn"></div>