Моя проблема в том, что каждый раз, когда я нажимаю кнопку PayPal на своей странице, она на короткое время всплывает, а затем выдает ошибку 403 запрещено. Этот вопрос ближе всего к моей проблеме Почему я продолжаю получать 403-й запрет на использование PayPal?, но отличается, потому что я использую angular.
Это соответствующая часть моего углового кода:
import { Component, OnInit, AfterViewChecked } from '@angular/core';
import { AngularFireDatabase } from 'angularfire2/database';
import { ShoppingCartService} from '../shopping-cart.service';
import { PaymentsService } from '../payments.service';
import { environment } from '../../environments/environment';
import { StripeToken } from 'stripe-angular';
declare let paypal: any;
@Component({
selector: 'app-cartpage',
templateUrl: './cartpage.component.html',
styleUrls: ['./cartpage.component.css']
})
export class CartpageComponent implements OnInit, AfterViewChecked {
cartItems;
id = localStorage.getItem('cartId');
storage: any = [];
addToCart = [];
parents: any = [];
total = 0;
number: any = 0;
handler: any;
amount: 500;
addScript: boolean = false;
finalAmount: number = this.total;
paypalConfig = {
env: 'sandbox',
client: {
sandbox: 'my-key',
production: 'my-key'
},
commit: true,
payment : (data, actions) => {
return actions.payment.create({
payment: {
transactions: [
{ amount: {total: this.finalAmount, currency: 'USD' } }
]
}
})
},
onAuthorize: (data, actions) => {
return actions.payment.execute().then((payment)=>{
//do something when payment is successful
})
}
};
ngAfterViewChecked() : void {
if (!this.addScript) {
this.addPaypalScript().then(() => {
paypal.Button.render(this.paypalConfig, '#paypal-checkout-button')
})
}
}
addPaypalScript() {
this.addScript = true;
return new Promise((resolve, reject) => {
let scriptTagElement = document.createElement('script');
scriptTagElement.src = "https://www.paypalobjects.com/api/checkout.js";
scriptTagElement.onload = resolve;
document.body.appendChild(scriptTagElement);
})
}
это моя ошибка в консоли:
POST https://www.sandbox.paypal.com/v1/payments/payment 403 (Forbidden)
Uncaught Error: Error: Request to post https://www.sandbox.paypal.com/v1/payments/payment failed with 403 error. Correlation id: 3ef24e19eb852, 3ef24e19eb852
{
"name": "PERMISSION_DENIED",
"message": "No permission for the requested operation",
"information_link": https://developer.paypal.com/docs/api/payments/#errors",
"debug_id": "3ef24e19eb852"
}
будут признательны за любую помощь или полезные сообщения / статьи для чтения, спасибо
ОБНОВЛЕНИЕ 05.05.2018 Paypal до сих пор не исправил эту проблему. Но если вы хотите убедиться, что у вас все настроено правильно, вы можете использовать учетные данные песочницы PayPal для проверки. https://developer.paypal.com/demo/checkout/#/pattern/client
проверьте свои учетные данные. У вас нет разрешения на запрос PayPal.
Вам необходимо заполнить ключи клиента PayPal. Это типичный ответ, когда у вас нет прав на отправку запроса.
Прошу прощения за недоразумение, я заполнил клиентские ключи, я просто использовал «мой-ключ» как заполнитель. Ключи клиента по-прежнему выдают эту ошибку.
Я также проверил свои разрешения, и все включено, поэтому я не уверен, почему я получаю эту ошибку. Предоставляются идентификаторы отладки, но, насколько мне известно, вы мало что можете с ними поделать. Я связался с Paypal, чтобы попытаться решить эту проблему. Я думаю, это проблема Paypal. Еще раз спасибо yall
Проверьте Проблема № 703 :: Получение ошибки 403 - permission_denied.
Я связался с Paypal, и они сообщили мне, что это проблема с их стороны, которую они пытаются исправить.
Спасибо, что разместили этот вопрос ... И спасибо за ссылку на отчет о проблеме. И ты знаешь, сколько раз ты меня спасал;)
ха-ха, без проблем, Луис. Я всегда задаю вопросы, пытаясь лучше понять. Не похоже, что PayPal это исправил
Зачем голосовать против? Я новичок в angular и просто пытаюсь понять, как реализовать PayPal Check Out. Предоставляется вся информация, необходимая для ответа на этот вопрос. Насколько мне известно, подобных вопросов нет и у кого-то с этой точной проблемой (и соответствующим кодом ошибки). Я не знаю, почему вы проголосовали бы против, если это не только поможет мне. но кто-то в будущем. Если я не предоставляю достаточно информации, скажите это, потому что я могу не понимать, что вы делаете, поэтому может быть что-то, чего я не понимаю, что так просто для вас. В любом случае еще раз спасибо