Захват платежей: запрошенное действие не может быть выполнено, семантически неверно или неудачная проверка бизнеса - PullRequest
6 голосов
/ 22 апреля 2019

У меня проблема с новым PayPal API (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- Войдите и подтвердите заказ

У учетной записи песочницы нет кредитной карты

Approve order image

При нажатии кнопки продолжения на странице отображается индикатор загрузки, и он снова исчезает, и ничего не происходит

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 Ответ

3 голосов
/ 01 мая 2019

Я понял это. Это довольно просто. Полезная нагрузка кузова пропускала return_url в application_context. PayPal действительно нужно лучше документировать ошибки.

...