根据文档,我可以提交这样的表格(示例);
<form method="post" action="https://test.ipg-online.com/connect/gateway/processing">
<input type="hidden" name="txntype" value="sale">
<input type="hidden" name="timezone" value="CET"/>
<input type="hidden" name="txndatetime" value="2015:12:11-09:12:47"/>
<input type="hidden" name="hash" value="7a17dcc15df2819649ca80b7921"/>
<input type="hidden" name="storename" value="12345678"/>
<input type="hidden" name="mode" value="fullpay"/>
<input type="text" name="chargetotal" value="13.00"/>
<input type="hidden" name="currency" value="826"/>
<input type="hidden" name="responseSuccessURL" value="http://example.co.uk/thanks" />
<input type="hidden" name="responseFailURL" value="http://example.co.uk/failure" />
<input type="submit" value="Submit">
</form>
这将使用 Postman 之类的东西(但我在storename
这里没有提供正确的)。我所说的“工作”是指您进入他们的网关并可以输入您的卡详细信息和送货地址等。
为了获得正确的信息hash
,txndatetime
我可以使用FirstData_Connect
Omnipay 库。
我以为我可以只使用public function getData
但实际上,这需要有关用户卡、cvv 代码、到期等的详细信息。我不想在我的网站上有这样的界面,我只希望用户能够点击到https://test.ipg-online.com/connect/gateway/processing - 就像上面的表单示例一样。
那么如何构建 PHP 端以使用 Omnipay 库呢?到目前为止,我有;
$gateway = Omnipay::create('FirstData_Connect');
$gateway->setStoreId($storeId);
$gateway->setSharedSecret($sharedSecret);
$response = $gateway->purchase(array(
'returnUrl' => $returnUrl . '?' . http_build_query($arguments),
'cancelUrl' => $cancelUrl,
'amount' => $payment->getAmount(),
'transactionId' => $paymentId,
))->send();
$result = $response->getData();
return $result;
但是,正如我上面所说,我还需要提交用户卡的详细信息。所以我得到了错误;
"message":"The card parameter is required",
"class":"Omnipay\\Common\\Exception\\InvalidRequestException