我正在将CI-Merchant集成到Codeigniter项目中,以使用Paypal和SagePay处理付款。
我已经从http://ci-merchant.org/进行了paypal_express的演示,并且成功了(或者,至少在我使用示例代码时给了我一个正确的错误-参见下面带有paypal代码的响应)
Merchant_response Object
(
[_status:protected] => failed
[_message:protected] => Security header is not valid
[_reference:protected] =>
[_data:protected] =>
[_redirect_url:protected] =>
[_redirect_method:protected] => GET
[_redirect_message:protected] =>
[_redirect_data:protected] =>
)
我已经更新了Sagepay的代码,它如下
public function index()
{
$this->load->helper('language');
$this->load->library('merchant');
$this->merchant->load('sagepay_direct');
$settings = array (
'vendor' => 'testvendor',
'test_mode' => FALSE,
'simulator_mode' => TRUE,
);
$this->merchant->initialize($settings);
$params = array(
'description'=>'Test purchase',
'currency'=>'GBP',
'transaction_id'=>'12345',
'email'=>'[email protected]',
'first_name'=>'Test',
'last_name'=>'Person',
'address1'=>'1 Random Avenue',
'address2'=>'Made Up Drive',
'city'=>'Notarealcity',
'postcode'=>'FA11 1KE',
'country'=>'UK',
'region'=>'',
'phone'=>'0101010101',
'amount'=>125.00,
'card_no'=>'4444444444444444',
'name'=> 'Mr Test',
'card_type' => 'VISA',
'exp_month'=> 11,
'exp_year'=> 15,
'csc'=> 999
);
$response = $this->merchant->purchase($params);
echo '<pre>';
print_r($response);
exit;
}
该代码的输出是
Merchant_response Object
(
[_status:protected] => failed
[_message:protected] =>
[_reference:protected] =>
[_data:protected] =>
[_redirect_url:protected] =>
[_redirect_method:protected] => GET
[_redirect_message:protected] =>
[_redirect_data:protected] =>
)
这没有给我任何有关可能出问题的信息。
我使用的是有效的供应商名称,并且已将服务器的IP地址输入到SagePay模拟器中,请求来自的页面是https,请求来自的URL被添加到了Sage Pay模拟器帐户部分。
看起来应该不错,但是现在卡住了-我真的很感谢在此方面的任何帮助。
提前致谢
杰森
最佳答案
该PayPal错误通常表示您正在尝试在测试模式下使用真实帐户,反之亦然。
我不确定为什么Sagepay根本不报告任何错误。可能与本地化错误消息的lang()函数有关,但我不确定。您可能需要将一些调试行添加到merchant_sagepay.php,以查看真正的响应是什么。
关于codeigniter - CI-Merchant&SagePay-似乎无法响应任何问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13618592/