C # PayPalCheckoutSDK отрицательное тестирование возвращает HTTP 404 - PullRequest
0 голосов
/ 06 июня 2019

Мы пытаемся интегрировать отрицательное тестирование PayPal в нашу систему, чтобы мы могли тестировать сбои платежей, как описано здесь:

https://developer.paypal.com/docs/api/request-headers/

Мы находимся в среде .NET Core C #,поэтому мы используем пакет nuget PayPalCheckoutSdk 1.0.0:

https://www.nuget.org/packages/PayPalCheckoutSdk/1.0.0/

В соответствии с документацией PayPal, как описано в первой ссылке выше, нам нужно добавить заголовок HTTP в запрос передотправив его в PayPal для активации отрицательного тестирования (здесь мы хотим проверить сбой из-за превышения кредитной карты):

PayPal-Mock-Response: {\"mock_application_codes\": \"INSTRUMENT_DECLINED\"}

Итак, вот что мы делаем, чтобы проверить это в случае авторизацииЗаказ PayPal:

var request = new OrdersAuthorizeRequest(order.Id);
request.Prefer("return=representation");
request.RequestBody(new OrderActionRequest());

// Enable PayPal negative testing.
request.Headers.Add(
    "PayPal-Mock-Response",
    $"{{\"mock_application_codes\": \"INSTRUMENT_DECLINED\"}}");

// When the header is present, this call returns
// an empty response with HTTP status code 404.
var response = await client.Execute(request);

Обратите внимание, что мы находимся в среде Песочницы, поскольку мы знаем, что отрицательное тестирование не работает в реальной среде.

Если мы не добавляем заголовок,вызов работает отлично, и авторизация проходит.Но как только заголовок включен в запрос, вместо получения ожидаемого ответа об ошибке от PayPal, мы получаем пустой ответ с кодом состояния HTTP 404.

BrainTreeHttp.HttpException with statuscode 404[1]

Мыдавно почесал голову и много раз тестировал, чтобы заставить это работать.Мы искали, возможно, вариант переключения где-то на панели инструментов PayPal Developer, и нам удалось найти это довольно глубоко в конфигурации учетной записи песочницы:

PayPal Negative Testing toggle in sandbox account settings

Когда мы обнаружили, что это было отключено, мы были очень рады включить его и увидеть, что отрицательное тестирование наконец заработало.

К сожалению, это никак не повлияло на ответы от PayPal, так как мы все еще становимся пустыми 404ответы.

Любая подсказка, почему мы не можем заставить работать отрицательное тестирование?

...