#paypal #paypal-sandbox
#paypal #paypal-изолированная среда
Вопрос:
У меня проблема с новым API PayPal (v2) и изолированной средой
1- Создайте заказ https://api.sandbox.paypal.com/v2/checkout/orders
{
"intent": "CAPTURE",
"purchase_units": [
{
"amount": {
"currency_code": "USD",
"value": 10
},
"payee": {
"email": "xxxx@gmail.com",
"merchant_id": "xxxx"
}
}
],
"application_context": {
"shipping_preference": "NO_SHIPPING"
}
}
2- Перейдите по approve
ссылке в ответе
Если у учетной записи в изолированной среде есть кредитная карта, PayPal показывает: «Извините, мы не можем обработать ваш запрос. Пожалуйста, повторите попытку позже «
3. Войдите в систему и подтвердите заказ
У учетной записи изолированной среды нет кредитной карты
При нажатии кнопки продолжить на странице отображается индикатор загрузки, он снова исчезает, и ничего не происходит
4- Проверьте статус заказа, и он APPROVED
{
...
"status": "APPROVED"
...
}
5- Попробуйте захватить платеж https://api.sandbox.paypal.com/v2/checkout/orders/xxx/capture
{
"name": "UNPROCESSABLE_ENTITY",
"details": [
{
"issue": "TRANSACTION_REFUSED",
"description": "The request was refused"
}
],
"message": "The requested action could not be performed, semantically incorrect, or failed business validation.",
"debug_id": "939b641049ad2",
"links": [
{
"href": "https://developer.paypal.com/docs/api/orders/v2/#error-TRANSACTION_REFUSED",
"rel": "information_link",
"method": "GET"
}
]
}
Комментарии:
1. вы пробовали более старый API?
2. они говорят, что это устарело в документации версии v1
Ответ №1:
Я понял это. Это довольно просто. В основной полезной нагрузке отсутствовал return_url
in application_context
. PayPal действительно нужно лучше документировать ошибки.
Комментарии:
1. Как передать возвращаемый URL-адрес в параметре body при использовании capture API?
Ответ №2:
UNPROCESSABLE_ENTITY
Ошибка охватывает огромное количество проблем, как описано в их документах здесь:https://developer.paypal.com/docs/api/reference/orders-v2-errors/#capture-order
В моем случае дело было в том, что я использовал старую тестовую визу 4111 1111 1111 1111 1111. В эти дни вы должны использовать номер тестовой карты, который вы генерируете в своей учетной записи разработчика здесь:https://developer.paypal.com/developer/creditCardGenerator
Комментарии:
1. Глупая проблема с тестовой картой была моей проблемой, на которую я потратил дни, пытаясь разобраться, поскольку их документация была неясной.
Ответ №3:
Мне потребовалось 5 часов для отладки. Как и в случае с Ziad, моя проблема заключалась в application_context
, но в отличие от Ziad у меня были определены оба cancel_url
и return_url
. Однако я ранее изменил payment_method
, насколько я понял, лучшую конфигурацию.
Эти изменения помогли мне.
payment_method": {
"payee_preferred": "IMMEDIATE_PAYMENT_REQUIRED"
}
Для
payment_method": {
"payee_preferred": "UNRESTRICTED"
}
Paypal виноват в том, что не помогает нам сузить эти непростительные территории.
Ответ №4:
Лучше поздно, чем никогда 🙂
Я обнаружил, что эта ошибка обычно возникает, когда пользователи не отвечают на электронную почту PayPal для подтверждения своей личности! PayPal время от времени отправляет электронные письма для подтверждения вашей личности, которые некоторые из нас, возможно, намеренно пометили как спам! И когда вы не отвечаете и не подтверждаете свою личность, они ограничивают вашу учетную запись, и тогда вы получаете эту ошибку:
description: "The merchant account is restricted."
field: "/purchase_units/@reference_id=='default'/payee"
issue: "PAYEE_ACCOUNT_RESTRICTED"
The requested action could not be performed, semantically incorrect, or failed business validation.
Вам нужно будет войти в свою учетную запись PayPal и перейти наhttps://www.paypal.com/restore/dashboard