微信支付遇到的坑 (扫码支付)

官方下载sdk:
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1

我用的是thinkphp3.2,
单独拎出来哥包online,在里面做的处理
在WxPay.Config.php配置好APPID,MCHID,
在这里插入图片描述
放置好KEY:商户支付密钥在这里插入图片描述
或者是直接放个路径
在这里插入图片描述
自己程序做好处理之后,开始调用插件

dAddon('NativePay', 'wechat_pay/online');
    $notify = new \NativePay();
    $input = new \WxPayUnifiedOrder();
    $input->SetBody($order['title']);
    $input->SetAttach($order['title']);
    $input->SetOut_trade_no($order['order_sn']);
    $input->SetTotal_fee($order['total_money']);
    $input->SetTime_start(date("YmdHis"));
    $input->SetTime_expire(date("YmdHis", time() + 600));
    $input->SetNotify_url("https://my.mashangji.com/api/company/notify");
    $input->SetTrade_type("NATIVE");
    $input->SetProduct_id("123456789");
    $result = $notify->GetPayUrl($input);
      if($result['return_msg']=="OK"){
        return array('code_url'=>$result['code_url']);
    }else{
        E($result['return_msg'],ERROR);
    }

在这里插入图片描述
注意:前方大坑来了
a、签名一直提示失败,然后使用了线上检测工具:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1,可是居然线上的和我自己生成的还不一样!做了很多次支付了,这次的很奇葩,后来字符串一个一个对照着查看发现了问题:
notify_url在去生成签名的拼接中,会被转义, &notify_url的&not会被转义,所以自己做好处理
我是用了个笨方法:直接先把字符串替换成别的,最后再替换回来
在这里插入图片描述
在这里插入图片描述
b、使用微信sign校验工具提示签名正确了,可是还是验证失败。这是另一个大坑!!

网上搜索资料发现:在微信商户平台重新生成密钥试试。。
key设置路径:微信商户平台(pay.weixin.qq.com)–>账户设置–>API安全–>密钥设置
设置32位密钥,可以根据一个密文,将密文生成MD5值,则正好是32位。
然后将密钥key保存至项目的配置文件中,做统一修改。

修改之后返回成功成功了!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值