我们正在开发自己的woocommerce支付网关插件(支付宝)。 用户按下"进入支付宝"在结账页面上,支付宝API获取订单信息(金额,名称,地址,订单号等),用它们创建表格,并自动将其提交给支付宝网关。 这就是它的样子:
'<form id=\'alipaysubmit\' name=\'alipaysubmit\' action=\'https://openapi.alipaydev.com/gateway.do?charset=UTF-8\' method=\'POST\'><input type=\'hidden\' name=\'biz_content\' value=\'{"product_code":"FAST_INSTANT_TRADE_PAY","body":"","subject":"Wendy Wang","total_amount":"21.50","out_trade_no":"1724"}\'/><input type=\'hidden\' name=\'app_id\' value=\'2016090900467784\'/><input type=\'hidden\' name=\'version\' value=\'1.0\'/><input type=\'hidden\' name=\'format\' value=\'json\'/><input type=\'hidden\' name=\'sign_type\' value=\'RSA\'/><input type=\'hidden\' name=\'method\' value=\'alipay.trade.page.pay\'/><input type=\'hidden\' name=\'timestamp\' value=\'2017-11-13 04:50:57\'/><input type=\'hidden\' name=\'alipay_sdk\' value=\'alipay-sdk-php-20161101\'/><input type=\'hidden\' name=\'notify_url\' value=\'https://sv.icubeinfo.com/wp-content/plugins/onepigeon-alipay/notify_url.php\'/><input type=\'hidden\' name=\'return_url\' value=\'https://sv.icubeinfo.com/wp-content/plugins/onepigeon-alipay/return_url.php\'/><input type=\'hidden\' name=\'charset\' value=\'UTF-8\'/><input type=\'hidden\' name=\'sign\' value=\'ahegEWInBM8h9Gav6oNOirp881D7j8/x1gjpgSdXfgzHA81vOrDQQOdJqO2rMMj9bmm7/etVQI6MSFY1kPN9KDbPhvPeAIeygHTcDksz0k2PyNhm1P35zgctT20fWptskhZwz1vAjGVTcWOqsG7V4O9pkvnYsKm4cY83yEbFZN3G5hQHj4ZCKD/ixJFDLTtu65DonIwGV9o6qI26YCjMzUSOHVIfVFx/531R1SlGcaqhpzUzaFkMGFFLcI/F349bExDEVuXM1earg9EKZyCq/m8ZihiutPiMQkbGJnYks/casUAyA3l3m1iuWg2DqvA5tT/6psWOiIPiZSEViioMMA==\'/><input type=\'submit\' value=\'ok\' style=\'display:none;\'\'></form><script>document.forms[\'alipaysubmit\'].submit();</script>'
这是从支付宝API返回的内容,它存储为字符串$result
。
要运行它,我们只需执行echo $result;
当我们在自己的笔记本电脑(XAMPP托管)上测试时,这一切都很好:页面重定向到支付宝的页面,用户可以选择使用QR代码付款或登录付费(我假设重定向是因为echo
)而发生的;然后,当用户完成付款后,它会重定向回到woocommerce的付款完成页面。
但是,当我们尝试将相同的代码部署到我们的服务器(IIS托管)时,它只是没有用。
我们尝试使用日志来跟踪代码执行行为;记录echo
命令之前和之后的所有代码,这意味着echo
应该已执行,但我们不明白为什么它没有生效。没有重定向发生,因此woocommerce process_checkout()
函数将继续运行,直到它达到send_ajax_failure_response()
函数,然后导致错误消息&#34;错误处理结帐。请再试一次。&#34;
任何人都知道这里的问题是什么?
BTW,echo
即使在echo '1234';
命令的简单情况下也失败了。
另外,当我们在加载结帐页面时尝试echo
一个简单的字符串时,它运行良好。字符串将打印在页面上;但不是在按下&#34;进入支付宝后#34;按钮。
&#34;进入支付宝&#34;似乎是用AJAX实现的;这是echo
失败的原因吗?如果是,为什么它在我的笔记本电脑上工作但在我们的服务器上却没有?我怎样才能使它发挥作用?
感谢。