#symfony #paypal-sandbox #payum
#симфония #paypal-песочница #пайум
Вопрос:
Я использую PayumBundle (https://github.com/Payum/PayumBundle ) с моим приложением symfony (2.8.49).
Я хотел бы проверить, как мое приложение взаимодействует с ответами об ошибках оплаты.
С Stripe gateway это не проблема, поскольку некоторые номера карт заставят stripe API выдавать ответ с ошибкой.
Но с Paypal я не знаю, как это сделать? Я прочитал документацию API-интерфейса Paypal Sandbox (https://developer.paypal.com/docs/api/test-values /#) и это то, что они говорят :
Чтобы вызвать ответ SENDER_EMAIL_UNCONFIRMED simulation, установите для значения items[0]/note значение ERRPYO002 в вызове POST v1/payments/payouts.
curl -X POST https://api.sandbox.paypal.com/v1/payments/payouts
-H "content-type: application/json"
-H "Authorization: Bearer Access-Token"
-d '{
"sender_batch_header": {
"sender_batch_id": "1524086406556",
"email_subject": "This email is related to simulation"
},
"items": [
{
"recipient_type": "EMAIL",
"receiver": "payouts-simulator-receiver@paypal.com",
"note": "ERRPYO002",
"sender_item_id": "15240864065560",
"amount": {
"currency": "USD",
"value": "1.00"
}
}]
}'
Как мы можем проверить ошибки с помощью Paypal, используя пакет Payum?
Заранее благодарю
Ответ №1:
Что вы должны оценить, так это ответ и код состояния. Для генерации запросов вы можете использовать Guzzle, что упрощает все.
С уважением!
Комментарии:
1. Спасибо Иезекиилю за ваш ответ, но я хотел бы знать, как это сделать в файлах кода PayumBundle. Я попытался изменить метод doRequest для Api.php добавив заголовки ошибок paypal « защищенная функция doRequest(массив $fields) { $headers = array( ‘Content-Type’ => ‘application/x-www-form-urlencoded’, ‘PayPal-Макет-Ответ’ => ‘{«mock_application_codes»: «MALFORMED_REQUEST»}’,//nadjib ); $request = $this->MessageFactory->createRequest(‘POST’, $this->getApiEndpoint(), $headers, http_build_query($fields)); и т.д. «
Ответ №2:
ОБНОВЛЕНИЕ / ОТВЕТ
На самом деле, мне удалось провести отрицательные тесты.
Что вам нужно было сделать, это сначала включить отрицательное тестирование для вашей бизнес-учетной записи на панели управления Paypal. Проверьте этот URL для документации: https://developer.paypal.com/docs/classic/lifecycle/nt-classic /#
Затем, после включения отрицательного тестирования, в поле «Оплата» во время проверки платежа вам необходимо выбрать суммы, соответствующие суммам Paypal, вызывающим ошибку, которые перечислены по этой ссылке: https://developer.paypal.com/docs/classic/api/errors/#10000-to-10099
Например, если вы хотите вызвать код ошибки, связанный с суммой 10009, на вашем веб-сайте при выборе суммы, которую вы хотите оплатить со своего счета PayPal, выберите сумму «100,09». Если вам нужен код ошибки 10014, выберите сумму «100.14» и т.д. и т.п.
Причина, по которой я не нашел этого в первую очередь, заключается в том, что документация Paypal недостаточно ясна. В их документации, https://developer.paypal.com/docs/classic/lifecycle/nt-classic/#test-api-error-handling-routines,
они не сообщают вам явно «введите сумму, равную коду ошибки, с двумя последними цифрами справа от десятичной точки». Вместо этого они сообщают вам: «Чтобы вызвать условие ошибки в поле, связанном с суммой, укажите значение кода ошибки в виде числа с двумя цифрами справа от десятичной точки. Например, укажите значение 107,55, чтобы вызвать ошибку 10755».
Что мне не очень понятно.
Проблема решена.