Код ошибки 5006 не принимает мой RedirectURL

Я пытаюсь интегрировать sagepay с моей корзиной После того, как я отправил свою корзину на сервер оплаты sage, он, похоже, не принимает мою RedirectURL, Кажется, что я могу подтвердить подлинность в порядке; но когда я пытаюсь отправить обратно 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 ]             => daithi.coombes@example.com
\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 request [Status] => OK \ sagepay request [RedirectURL] => http://www.example.com/path/to/redirection-url/redirect.php

на экране пользователя отображается сообщение об ошибке выше (код: 5006 описание: невозможно перенаправить на веб-сайт поставщика. Поставщик не смог предоставить 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

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

2 ответа

URL успеха:

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

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

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

Так что теперь в поле уведомлений теперь есть что-то вроде:

<?php
echo "Status={$_REQUEST['Status']}
RedirectURL=http://www.example.com/path/to/RedirectURL/redirect.php";
die();
Другие вопросы по тегам