Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 削减;数组";从邮政信息_Php_Forms_Post_Gateway - Fatal编程技术网

Php 削减;数组";从邮政信息

Php 削减;数组";从邮政信息,php,forms,post,gateway,Php,Forms,Post,Gateway,在这个问题之后,我们刚刚开始开发一个支付网关,不幸的是,目标api的文档几乎不存在,银行的支持也很糟糕 在文档中的“消息格式授权请求”下,我们可以找到以下示例: 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

在这个问题之后,我们刚刚开始开发一个支付网关,不幸的是,目标api的文档几乎不存在,银行的支持也很糟糕

在文档中的“消息格式授权请求”下,我们可以找到以下示例:

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\u Values]=>
是问题所在,是否有任何方法将该部分从post信息中剥离出来,因此它只发送原始值,如他们的示例所示

也可能有人有另一个解决问题的办法


感谢您的帮助!

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

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


no这不是问题-->数组([bank\u Values]您发送的是
bank\u Values=ENCODED\u STRING
,而不是
a=1&b=2&……
。您应该使用名称
mid
terminal
等创建N个表单字段,填充它们的值,然后执行常规POST(GET?)。使用HTTP Post将导致向银行发送查询字符串,例如….但是,查看使用该银行的其他商户,他们似乎以不同的方式解析变量(跟踪重定向)。这是其他商户的普通url检查Post数据,这将是此建议的结果:
数组([mid]=>12345[版本]=>3.1)
但是银行要求:
mid=1234&version=3.1&……
还有其他想法吗?您可以使用http\u build\u query()构建数据,然后使用CURL将数据发布到银行url
  <input type="hidden" name="mid" value="12345" />
  <input type="hidden" name="version" value="3.1" />