关于微信支付的若干天坑。。。。

1、订单生成后金额改变

$input = new WxPayUnifiedOrder();
$input->SetBody($orderDetail["orderid"]);
$input->SetAttach($orderDetail["cartdata"]);
$input->SetGoods_tag($orderDetail["orderid"]);
[b]$input->SetOut_trade_no($orderDetail["orderid"]);//////如果第一次支付取消了,第二次发起支付金额改变之后会不能支付,没有反映 建议重新生成订单[/b]
后台显示    prepay_id参数错误

$input->SetTotal_fee($orderDetail["totalprice"] * 100);
$input->SetTime_start(date("YmdHis"));
$input->SetTime_expire(date("YmdHis", time() + 600));
$input->SetTrade_type("JSAPI");
$input->SetOpenid($openId);
$input->SetNotify_url("http://www.XXX.com/index.php/A ... 6quot;);
$order = WxPayApi::unifiedOrder($input);
$jsApiParameters = $tools->GetJsApiParameters($order);
$this->ajaxReturn($jsApiParameters);

也就是说,订单生成后金额就不能改变了,要么重新生成订单,要么固定金额。。。对于有需要动态改变金额的项目(范萌,优惠减免),只能重新下单了。。。

2、ThinkPHP和微信支付

微信支付会有授权页面的情况,如果使用ThinkPHP开发项目。

支付授权目录 http://www.XXXXX.com/ 写成这样

实际支付页面的网址

不能这样 index.php/App/SubmitTask/index

必须这样 index.php?g=App&m=SubmitOrder&a=index

重要的事情说三遍:不能上面那样!不能上面那样!不能上面那样!

  • 另外关于TP的另外一个坑;

index.php/App/SubmitTask/index跳转到

index.php?g=App&m=SubmitOrder&a=index

会变成。。。。

index.php/App/SubmitTask/index.php?g=App&m=SubmitOrder&a=index

不要问我为什么,微信支付就认不出这种网址,(虽然TP可以)

所以 务必保持代码风格的一致性

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×