2014-02-08 6 views
0

Мне нужно интегрировать метод sagepay inframe в мой проект. Я могу захватить форму sagepay на мою собственную страницу. Хотя я не знаю, где я устанавливаю обратный URL. Таким образом, появляется ошибка, такая какSet ReturnURL для sagepay

HTTP Status Code:500, 
HTTP Status Message:The request was unsuccessful due to an unexpected condition encountered by the server 
Error Code:5006, 
Error Description:Unable to redirect to Vendor's web site. The Vendor failed to provide a RedirectionURL. 

Вот мой код. Где я могу установить returnurl в этом коде?

if($_POST['submit']=="submit") 
{ 
//Test authorize url 
//$url="https://live.sagepay.com/gateway/service/authorise.vsp"; 

//Test purchase url 
$url = 'https://test.sagepay.com/gateway/service/vspserver-register.vsp'; 
//Live 
//$url = 'https://live.sagepay.com/gateway/service/vspserver-register.vsp'; 
$params = array(); 
    $params['VPSProtocol'] = '2.23'; 
    $params['TxType'] = 'PAYMENT'; 
    $params['Vendor'] = 'vendorname'; 
    $params['VendorTxCode'] = 'Txn-ab34qcd1'; 
    $params['Currency'] = 'GBP'; 
    $params['Amount'] = 50; 
    $params['description'] = 'hello test'; 
    $params['NotificationURL'] = 'http://exapmle.co.uk/payment-return.php'; 
    $params['BillingSurname'] = 'Bobby'; 
    $params['BillingFirstnames'] = 'Bobbysfsf'; 
    $params['BillingAddress1'] = '14 Tottenham Court Road'; 
    $params['BillingCity'] = 'London'; 
    $params['BillingPostCode'] = 'W1T 1JY'; 
    $params['BillingCountry'] = 'GB'; 
    $params['billingPhone'] = '555 123-4567'; 
    $params['DeliverySurname'] = '123 Shipping St'; 
    $params['DeliveryFirstnames'] = 'Shipsville'; 
    $params['DeliveryAddress1'] = 'London'; 
    $params['DeliveryCity'] = 'London'; 
    $params['DeliveryPostCode'] = '54321'; 
    $params['DeliveryCountry'] = 'GB'; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params)); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_TIMEOUT, $curlTimeout); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
$response = explode(chr(10), curl_exec($ch)); 
echo "<pre>"; 
print_r($response); 
echo "</pre>"; 

echo $posturl = $response[5]; 

$posturlex=explode("L=",$posturl); 
print_r($posturlex); 
$nexturl = $posturlex[1]; 
} 
?> 

<html> 
    <head> 
    </head> 
    <body> 
     <iframe src="<?=$nexturl?>" id="sageFrame" style="width:100%;height:500px;border:none"></iframe> 
    </body> 
</html> 

ответ

0

RedirectURL предоставляется при подтверждении ответа Sage Pay через ваш NotificationURL.

Sage Pay Server ожидает, что «Status =» будет первым символом в ответе. Если перед этим у вас есть HTML, комментарии или код заголовка, удалите его, иначе Sage Pay Server обработает ответ как ошибку и завершит транзакцию.

Вы отправляете следующее сообщение в своем сообщении на сообщение Sage Pays на свой URL-адрес Уведомления и вы добираетесь так далеко? Status =, RedirectURL =, StatusDetail =

+0

теперь у меня получилось хорошо с вашим ответом. Окружающая среда для работы в рабочем состоянии ... теперь моя проблема - это живая среда ... есть только отображение информации о платежах, отсутствие выбора карты в эту страницу после отправки информации о клиенте в sagepay.if вы можете увидеть это изображение http://www.sendspace.com/file/2dyt7p. как я могу решить проблему ...? – kalyan

+0

Если номер торгового счета на вашей учетной записи TEST - Ecom и MOTO (заказ по заказу почтового заказа), но MID на вашей LIVE-счете - это только MOTO, вы получите сообщение об ошибке, подтверждающее типы карт, недоступных на вашем веб-сайте. Пожалуйста, свяжитесь с Sage Pay Support 0845 111 4455, чтобы добавить коммерческий номер электронной торговли в учетную запись поставщика, если вы хотите обрабатывать транзакции электронной торговли. –

+0

Привет @kalyan и поддержка оплаты шага Я не мог понять концепцию уведомленияURL. Это страница с другим набором кодов в ней, с настройками правил перенаправления? –