【发布时间】:2014-12-03 06:35:24
【问题描述】:
以下问题,我们刚刚开始开发支付网关,不幸的是目标api的文档几乎不存在,银行的支持也很糟糕。
在文档中,在 Message Format AUTHORIZATION REQUEST 下,我们找到了这个示例:
mid=12345&terminal=1234&version=3.1&command=CRAUTH&ref_no=3421_14120348_14120348&ref_date=20141203061048&service_id=11&cust_id=1&cur_abbr=THB&amount=300.00&backURL=https://www.yourshopreturnurl.com/
所以我们创建了网关(WooCommerce)并使用这种形式来传递我们的数组值:
$scb_args_array = array();
foreach($ccavenue_args as $param => $value) { $scb_args_array[] = "$param=$value"; }
$paramsJoinedNew = implode('&', $scb_args_array);
return '<form action="'.$live_url.'" method="post" id="ewire_payment_form">
<input type="hidden" name="bank_Values" value="'. $paramsJoinedNew .'" />
<input type="submit" class="button-alt" id="submit_ewire_payment_form" value="'.__('Pay via bank', 'woothemes').'" /> <a class="button cancel" href="'.$order->get_cancel_order_url().'">'.__('Cancel order & restore cart', 'woothemes').'</a>
</form>';}
这个表格的结果是:
Array ( [bank_Values] => mid=12345&terminal=1234&version=3.1&command=CRAUTH&ref_no=3421_14120348_14120348&ref_date=20141203061048&service_id=11&cust_id=1&cur_abbr=THB&amount=300.00&backURL=https://www.yourshopreturnurl.com/ )
将此提交给银行,导致银行空白页没有任何调试信息。
我们假设ARRAY ( [bank_Values] => 是问题所在,有没有办法从帖子信息中删除该部分,所以它只发送原始值,就像他们的例子一样?
也许有人有其他想法可以解决问题。
感谢您的帮助!
【问题讨论】:
-
不,这不是问题 --> ARRAY ( [bank_Values]
-
您发送的是
bank_Values=ENCODED_STRING,而不是a=1&b=2&...。您应该创建 N 个名称为mid、terminal等的表单字段,填充它们的值,然后执行通常的 POST(GET?)。 -
使用 HTTP Post 会导致向银行发送查询字符串,例如bank.com/process.do?1&b?2&b... 但是,查看使用该银行的其他商家似乎他们以不同方式解析变量(跟踪重定向)。这是其他商家的普通bank.com/process.do url