2014-08-11 6 views
0

Im пытается интегрировать sagepay с моей покупкой. После того, как я разместил свою корзину на сервере оплаты шага, он, похоже, не принимает мой RedirectURL. Кажется, что я могу аутентифицироваться нормально; но когда я пытаюсь отправить обратно мое RedirectURL, я получаю следующее в браузере:код ошибки 5006 не принимает мой RedirectURL

Error Code : 5006 
Error Description :  Unable to redirect to Vendor's web site. The Vendor failed to provide a RedirectionURL. 

Вот мой пост из моей корзины для SagePay инициировать платеж.

\sagepay request[ VPSProtocol ]    => 3.00 
\sagepay request[ TxType ]     => PAYMENT 
\sagepay request[ Vendor ]     => myVendorName 
\sagepay request[ VendorTxCode ]    => 49 
\sagepay request[ Amount ]     => 9,215.00 
\sagepay request[ Currency ]     => GBP 
\sagepay request[ Description ]    => Our shopping cart 
\sagepay request[ NotificationURL ]   => http://www.example.com/path/to/notification-url/index.php 
\sagepay request[ CustomerEMail ]    => [email protected] 
\sagepay request[ BillingFirstnames ]   => Daithi 
\sagepay request[ BillingSurname ]   => Coombes 
\sagepay request[ BillingAddress1 ]   => Somewhere 
\sagepay request[ BillingAddress2 ]   => That place 
\sagepay request[ BillingCity ]    => Sheffield 
\sagepay request[ BillingPostCode ]   => xxxx 
\sagepay request[ BillingCountry ]   => GB 
\sagepay request[ BillingState ]    => 
\sagepay request[ BillingPhone ]    => 0000 
\sagepay request[ DeliveryFirstnames ]  => Daithi 
\sagepay request[ DeliverySurname ]   => Coombes 
\sagepay request[ DeliveryAddress1 ]   => Somewhere 
\sagepay request[ DeliveryAddress2 ]   => That place 
\sagepay request[ DeliveryCity ]    => Sheffield 
\sagepay request[ DeliveryPostCode ]   => xxxx 
\sagepay request[ DeliveryCountry ]   => GB 
\sagepay request[ DeliveryState ]    => 
\sagepay request[ DeliveryPhone ]    => 0000 

Вот ответ на мой notificationURL от SagePay (уведомление VendorTxCode такое же, как и выше, это фактический ответ):

\sagepay response[ VPSProtocol ]    => 3.00 
\sagepay response[ TxType ]     => PAYMENT 
\sagepay response[ VendorTxCode ]    => 49 
\sagepay response[ VPSTxId ]     => {376BBFA1-5895-AB53-37CD-D932BE1F9019} 
\sagepay response[ Status ]     => OK 
\sagepay response[ StatusDetail ]    => 0000 : The Authorisation was Successful. 
\sagepay response[ TxAuthNo ]     => 7605576 
\sagepay response[ AVSCV2 ]     => SECURITY CODE MATCH ONLY 
\sagepay response[ AddressResult ]   => NOTMATCHED 
\sagepay response[ PostCodeResult ]   => NOTMATCHED 
\sagepay response[ CV2Result ]    => MATCHED 
\sagepay response[ GiftAid ]     => 0 
\sagepay response[ 3DSecureStatus ]   => NOTCHECKED 
\sagepay response[ CardType ]     => VISA 
\sagepay response[ Last4Digits ]    => 0006 
\sagepay response[ VPSSignature ]    => 02251363205725C79A58DD175E6F96DC 
\sagepay response[ DeclineCode ]    => 00 
\sagepay response[ ExpiryDate ]    => 0519 
\sagepay response[ BankAuthCode ]    => 999777 

Но когда мой NotificationURL эхо это следующим образом: \ SagePay запроса [Status] => OK \ sagepay request [RedirectURL] =>http://www.example.com/path/to/redirection-url/redirect.php

На экране пользователя отображается ошибка выше (код: 5006 описание: Unab le для перенаправления на веб-сайт поставщика. . Поставщик не в состоянии обеспечить RedirectionURL) После нескольких попыток из SagePay моей notificationURL, затем он посылает следующее:

\sagepay response[ VPSProtocol ] => 3.00 
\sagepay response[ TxType ]   => PAYMENT 
\sagepay response[ VendorTxCode ] => 49 
\sagepay response[ VPSTxId ]  => {63D68B7D-5503-7695-B208-01FE14C668B4} 
\sagepay response[ Status ]   => ABORT 
\sagepay response[ StatusDetail ] => 2008 : The Transaction timed-out. 
\sagepay response[ AVSCV2 ]   => DATA NOT CHECKED 
\sagepay response[ AddressResult ] => NOTPROVIDED 
\sagepay response[ PostCodeResult ] => NOTPROVIDED 
\sagepay response[ CV2Result ]  => NOTPROVIDED 
\sagepay response[ GiftAid ]  => 0 
\sagepay response[ 3DSecureStatus ] => NOTCHECKED 
\sagepay response[ VPSSignature ] => 683B1004A0A6385D48C6D7D797C3FBC8 

Im ходить кругами с документацией, и я теряюсь, как что делать. Любая помощь приветствуется.

ответ

0

Я решил. Мой ответ в моем уведомленииURL не был правильно закодирован, я использовал http_build_query() для вывода ответа. documentation конкретно говорится:

Это обычный текст ответа часть POST возникла в сервера в предыдущем шаге. Кодирование должно быть как поля Name = Value , разделенные линией возврата каретки-возврата (CRLF).

Так что мой notificationURL печатает что-то вроде:

<?php 
echo "Status={$_REQUEST['Status']} 
RedirectURL=http://www.example.com/path/to/RedirectURL/redirect.php"; 
die(); 
0

Success URL:

$request['SuccessURL']=>'http://www.example.com/path/to/notification-url/index.php'; 
+2

Вы могли бы объяснить немного больше о контексте здесь. –

Смежные вопросы