2016-09-14 2 views
1

Я пытаюсь начать тестовую транзакцию с SagePay Размещая на https://test.sagepay.com/gateway/service/vspform-register.vspSagePay Server Integration код 5003 ошибка на первом POST

Я следовал документации в отношении формата такой запрос должен принять, я ve whitelisted мой IP-адрес в портале в тестовой среде, и я использую VPSProtocol=3.00 (Какие две проблемы, о которых я видел, как сообщают, вызывают это), но я все еще получаю ошибку 5003.

Я говорил, чтобы поддерживать по телефону и отправляться на их конечную точку showpost (https://test.sagepay.com/showpost/showpost.asp). Он, похоже, не в состоянии понять какие-либо детали моего POST, несмотря на то, что он находится в формате Name=Value, разделенном &, URL-кодирование значений, как указано в документации, и предоставление всех необходимых полей.

Я пробовал URL-кодирование = с, а также & с на всякий случай, когда я неправильно понял документацию по этому поводу, но это не имело никакого значения.

Я считаю, что я должен каким-то образом отправить тело. Я был бы признателен за любые предложения, которые кто-либо может дать. Тело я отправляю ниже:

VPSProtocol=3.00&TxType=PAYMENT&Vendor=anyjunko&VendorTxCode=123&Amount=143.33&Currency=GBP&Description=TODO&NotificationURL=https%3A%2F%2Fstaging-nelly.anyjunk.co.uk%2Fvs%2Fsagepay-transactions%2F1%2Fsagepay-updates&BillingSurname=NameB&BillingFirstnames=NameA&BillingAddress1=1&BillingAddress2=Putney&BillingCity=London&BillingPostCode=SW11%209YZ&BillingCountry=GB&DeliverySurname=NameB&DeliveryFirstnames=NameA&DeliveryAddress1=1&DeliveryAddress2=Putney&DeliveryCity=London&DeliveryPostCode=SW11%209YZ&DeliveryCountry=GB 

Update: Я теперь попытался это с скручиваются, и это работало правильно, но он не работает, когда я посылаю его от Почтальон или из моего кода, используя Akka HTTP клиент.

команды

локонов я использовал:

curl -X POST "https://test.sagepay.com/gateway/service/vspserver-register.vsp" -d "VPSProtocol=3.00&TxType=PAYMENT&Vendor=anyjunko&VendorTxCode=123&Amount=143.33&Currency=GBP&Description=TODO&NotificationURL=https%3A%2F%2Fstaging-nelly.anyjunk.co.uk%2Fvs%2Fsagepay-transactions%2F1%2Fsagepay-updates&BillingSurname=NameB&BillingFirstnames=NameA&BillingAddress1=1&BillingAddress2=Putney&BillingCity=London&BillingPostCode=SW11%209YZ&BillingCountry=GB&DeliverySurname=NameB&DeliveryFirstnames=NameA&DeliveryAddress1=1&DeliveryAddress2=Putney&DeliveryCity=London&DeliveryPostCode=SW11%209YZ&DeliveryCountry=GB" 
+0

Как вы отправляете сообщения? Какие заголовки вы отправляете? Вы должны указать более подробную информацию. – DavidG

+0

В целях тестирования я использую Postman для отправки POST без заголовков. –

+0

Я пробовал его с помощью cURL сейчас, и он работает. Он по-прежнему не работает с Postman или с моего кода (с использованием akka http client). Я не уверен, какая разница. Предположительно, есть заголовок, который посылает cURL, что я не из других или наоборот. –

ответ

0

Есть некоторые требования, отсутствующие в документации Sage Pay, которые должны быть предоставлены в противном случае вы получите внутреннюю ошибку HTTP 500 5003

Документации для интеграции сервера названный «SERVER_Integration_and_Protocol_Guidelines_270815.pdf» доступен здесь: https://www.sagepay.co.uk/support/find-an-integration-document/server-inframe-integration-documents

Сначала убедитесь, что у вас есть следовать документация к письму, особенно будьте осторожны, чтобы включить все обязательные поля и URLencode значения пар name = value.

Следующие требования не указаны в документации:

1 IP адреса

IP-адрес, с которого вы посылаете POST в ~/vspserver-register.vsp должен быть добавлен в белый список в настройках вашей учетной записи.

  1. Войти в Мой Sage Оплатить здесь https://testportal.sagepay.com/mysagepay/login.msp, используя учетную запись администратора (как правило, имя поставщика)
  2. Перейти к «IP Válidas» (извините админ люкс на испанском языке по какой-то причине)
  3. Нажмите [анадир] кнопку («Добавить») в правом нижнем углу
  4. в появившемся диалоге введите ваш
    • «Dirección IP» («IP-адрес») - тип «что мой IP» в поиск Google, если вы не» t знать
    • ваша «Маскара де субреда» («Маска подсети») - 255.255.255.000
    • "Descripción" - просто любое имя, которое вы хотите, должен быть уникальным
  5. Нажмите [анадир] ("Добавить") Кнопка

2 Firewall

Убедитесь ваш брандмауэр не блокирует порты 80 и 443 для HTTP или SSL в любом направлении

3 Протокол HTTPS

Убедитесь, что вы используете POST на сервере, используя TLS версии 1.0 или выше. Также убедитесь, что вы можете использовать один из протоколов TLS, на момент написания Sage Pay только поддерживает эти протоколы

  • TLS1-AES-256-CBC-SHA
  • TLS1-AES-128-CBC-SHA
  • TLS1-ДЕНЬ-DSS-RC4-SHA
  • TLS1-ДЕНЬ-DSS-AES-256-CBC-ША
  • TLS1-ДЕНЬ-DSS-AES-128-CBC-ША
  • TLS1-DHE- RSA-AES-256-CBC-SHA
  • TLS1-DHE-RSA-AES-128-CBC-SHA

4 Заголовки HTTP

Существует только один HTTP заголовок требуется, хотя он все еще работает, если вы передаете в дополнительных заголовках, таких как «Host» или «Content-Length» это не сработает, если вы не обеспечивают точно

Content-Type: application/x-www-form-urlencoded