【问题标题】:Cut "Array" from post information从帖子信息中删除“数组”
【发布时间】: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 &amp; 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] =&gt; 是问题所在,有没有办法从帖子信息中删除该部分,所以它只发送原始值,就像他们的例子一样?

也许有人有其他想法可以解决问题。

感谢您的帮助!

【问题讨论】:

  • 不,这不是问题 --> ARRAY ( [bank_Values]
  • 您发送的是bank_Values=ENCODED_STRING,而不是a=1&amp;b=2&amp;...。您应该创建 N 个名称为 midterminal 等的表单字段,填充它们的值,然后执行通常的 POST(GET?)。
  • 使用 HTTP Post 会导致向银行发送查询字符串,例如bank.com/process.do?1&b?2&b... 但是,查看使用该银行的其他商家似乎他们以不同方式解析变量(跟踪重定向)。这是其他商家的普通bank.com/process.do url

标签: php forms post gateway


【解决方案1】:

如果您想发送原始数据,则为每个数据创建一个单独的输入字段,如下所示

  <input type="hidden" name="mid" value="12345" />
  <input type="hidden" name="version" value="3.1" />

【讨论】:

  • 检查post数据,这将是这个建议的结果:Array ( [mid] =&gt; 12345 [version] =&gt; 3.1 )但是银行要求:mid=1234&amp;version=3.1&amp;...还有其他想法吗?
  • 您可以使用 http_build_query() 构建数据,然后使用 CURL 将此数据发布到银行网址
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多