我目前正在为网站构建一个非现场支付解决方案。我正在使用CI-Merchant(我尝试使用Omnipay,但使用Composer对我不起作用)。
我正在做这个(在我的控制器的方法中)。另请注意,我正在使用CI-Merchant的调整版本,以允许向PayPal发送客户的购物车。我刚做了这些更改:https://github.com/guillermofr/ci-merchant/commit/70ea1a2864971078b3b67e5ca1051be174f23fa0
在我的控制器文件中:
//The library and the settings are initialized before
$this->merchant->initialize($this->APISettings);
$order = array(
array(
'name' => 'Voyage 1',
'desc' => 'Relais du Plessis',
'amt' => 50.00,
'qty' => 1
),
array(
'name' => 'Voyage 2',
'desc' => 'Domaine St-Hilaire',
'amt' => 50.00,
'qty' => 1
)
);
$this->session->set_userdata('order',$order);
$params = array(
'amount' => 100.00,
'currency' => 'EUR',
'items' => $order,
'return_url' => base_url().'api/reservation/validation_commande',
'cancel_url' => base_url().'api/reservation/annulation_commande'
);
$this->merchant->authorize($params);
稍后,在我的控制器的另一种方法(付款完成时调用的方法,return_url):
$this->merchant->initialize($this->APISettings);
$params = array(
'amount' => 100.00,
'currency' => 'EUR',
'items' => $this->session->userdata('order'),
'return_url' => base_url().'api/reservation/validation_commande',
'cancel_url' => base_url().'api/reservation/annulation_commande'
);
$response = $this->merchant->authorize_return($params);
var_dump($response);
$gateway_reference = $response->reference();
我想要的只是保留卡的足迹,这就是我得到参考的原因。
问题是,如果我想稍后收取付款,我该怎么办?我知道要调用的方法是$ this-> merchant-> capture();但我不知道参数中要传递什么。
提前致谢,
干杯
答案 0 :(得分:1)
好的,没关系。我成功安装了Omnipay(这是一个非常好的库),为此,我只需要获取$ params数组,然后通过
向他推送transactionReference。$response->getTransactionReference();
然后你只需要打电话:
$response = $gateway->capture($params)->send();
并且响应没问题!