根据文档,我可以像这样提交表单(示例);
<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发布于 2015-12-12 11:47:11
好的,听起来您需要一个与当前的FirstData_Connect和FirstData_Global网关工作方式不同的网关。这两种类型都是直接信用卡网关,您可以在其中提交包括卡数据的完整购买请求。您似乎正在与一个重定向网关(非常类似于PayPal网关)对话。
当你说根据文档,我可以像这样提交一个表单--你说的是什么文档?我对FirstData和他们的各种选项不是很熟悉。
这听起来像是您需要开发或已经开发了一个新的FirstData网关,它将返回一个RedirectResponse对象,其中包含您将客户发送到的输入他们的卡数据的URL,并使用您在初始调用中传递的responseSuccess|Failure URL之一返回您的应用程序。这基本上就是PayPal和其他重定向网关的工作方式,所以您可能希望开始查看它们,而不是现有的FirstData网关。
https://stackoverflow.com/questions/34222319
复制相似问题