微信jsapi支付获取code_微信JSAPI公众号支付在部分机型上出现appid参数错误的解决办法 - YangJunwei...

都说微信支付的坑比较多,老杨感觉还行,就是开始周期和调试过程比较费时费力-_-!

今儿在调试一个基于微信JSAPI公众号的支付项目时发现,部分机型(比如iphone7/vivo-x6d)中微信支付获取 code 返回页面提示如下错误:

Fatal error: Uncaught exception 'WxPayException' with message 'error: appid参数错误' in .../payments/weixin/WxPay.JsApiPay.php:82 Stack trace: #0 .../weixin_jsapi.php(90): JsApiPay->GetJsApiParameters(Array) #1 {main} thrown in .../payments/weixin/WxPay.JsApiPay.php on line 82

这就比较头疼了,绝大数设备下微信JSAPI公众号支付是正常的,于是根据上述错误,利用下列代码打印出错误位置信息:

$UnifiedOrderResult = WxPayApi::unifiedOrder($input);

print_r($UnifiedOrderResult);

打印如下提示:

Array

(

[return_code] => FAIL

[return_msg] => body不是UTF8编码

)

对应 $input 的参数中,body直接获取订单的标题

$input->SetBody( $order->product_name );

将上述代码行直接替换如下:

$input->SetBody( "This'sProductName" );

再次测试全部通过,网上查到说是直接从 $order 读取的中文字符需要编码UTF8才行,于是有了下述代码:

$input->SetBody( iconv("GBK", "UTF-8//IGNORE", $order->product_name) );

测试通过!本文结束!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值