我尝试升级付款表单以使用协议的v3.00。将表单发布到https://test.sagepay.com/gateway/service/vspform-register.vsp时,我得到:
"状态详细信息:5003:内部服务器错误。"
根据http://www.sagepay.co.uk/support/error-codes/5003-error-internal-server-error,这意味着我必须使用旧版本的协议...但我不认为我是:
<input type=hidden name="VPSProtocol" value="3.00">
<input type=hidden name="TxType" value="PAYMENT">
<input type=hidden name="Vendor" value="myvendorID">
<input type="hidden" name="Crypt" value= "<?php echo $sagePay->getCrypt(); ?>">
我正在使用https://github.com/tolzhabayev/sagepayForm-php提供的库:
$sagePay = new SagePay();
$sagePay->setCurrency('GBP');
$sagePay->setAmount($basket[0]['price']);
$sagePay->setDescription('test');
$sagePay->setBillingSurname($name_ar[1]);
$sagePay->setBillingFirstnames($name_ar[0]);
$sagePay->setBillingCity($billing_address_ar[1]);
$sagePay->setBillingPostCode($billing_address_ar[3]);
$sagePay->setBillingAddress1($billing_address_ar[0]);
$sagePay->setBillingCountry('gb');
$sagePay->setDeliverySameAsBilling();
$sagePay->setSuccessURL('myurl');
$sagePay->setFailureURL('myurl');
据我所知,所有新需要的字段都在那里,如果我使用sagepayForm-php提供的示例进行测试,它就可以了。
我是否需要以某种方式告诉sagepay我想从使用2.23切换到3.00?我在My SagePay上四处看看,但无法查看协议设置。我认为SagePay会自动检测到正在使用的协议(来自VPSProtocol表单字段)
答案 0 :(得分:0)
您不需要告诉MSP您正在使用新版本的协议。 5003表示Sage Pay内的错误。如果你可以再试一次,那么给我一个VPSTxID(可能在你的失败的URL中),我可以为你检查....