找回密码
 立即注册

QQ登录

只需一步,快速开始

微信小程序综合交流

关注:51

所属分类: 微信开发 微信小程序综合交流

微信小程序用户交流版块,希望同学们积极发言,不过大家不要恶意发布广告哦!

[经验分享] 记一次小程序支付开发的坑,超级坑

[复制链接]
查看: 81|回复: 0
最佳答案
0 

13

主题

17

帖子

754

积分

专家路上

积分
754
 楼主| 发表于 2017-10-12 15:29:07 | 显示全部楼层 |阅读模式
经过一周的加班加点开发,xxx有机商城小程序终于接近尾声,来到支付这一块了。由于用户的域名备案问题(小程程上线必须要域名)还没申请下来,只好暂且使用公司域名调试

万事俱备,只欠东风。微信小程序支付。省略申请时间。。。。。。。。

着手开发支付。。。。。

1 获取用户openid正常

2 微信支付统一下单正常(签名正常)

3 小程序再次加密返回正常(签名正常)

各项参数都正常

可就是付款不成功,报签名错误。

后来打电话询问腾讯微信支付客服,说也不知道怎么解决,后来他们给我发了个短信,里面有个网址 http://developers.weixin.qq.com 微信开发者社区,。

我就抱着试试看的心态去打开这个网址,经过不懈的寻找奋斗,终于发现有个人和我的问题一样。

他也是使用微信支付com.github.wxpay.sdk来开发的。

在WXpay.java有这么一个构造方法
  1. public WXPay(final WXPayConfig config, final String notifyUrl, final boolean autoReport, final boolean useSandbox) throws Exception {
  2.         this.config = config;
  3.         this.notifyUrl = notifyUrl;
  4.         this.autoReport = autoReport;
  5.         this.useSandbox = useSandbox;
  6.         if (useSandbox) {
  7.             this.signType = SignType.MD5; // 沙箱环境
  8.         }
  9.         else {
  10.            this.signType = SignType.HMACSHA256;
  11.         }
  12.         this.wxPayRequest = new WXPayRequest(config);
  13.     }
复制代码

微信支付sdk默认不是在沙箱环境里执行的,所以统一下单支付签名不是md5,而目前小程序的签名必须是md5,由于两者签名不统一导致小程序支付失败,报签名错误。

既然找到原因了,那就好解决了,只需签名换成md5即可。
  1. public WXPay(final WXPayConfig config, final String notifyUrl, final boolean autoReport, final boolean useSandbox) throws Exception {
  2.         this.config = config;
  3.         this.notifyUrl = notifyUrl;
  4.         this.autoReport = autoReport;
  5.         this.useSandbox = useSandbox;
  6.         if (useSandbox) {
  7.             this.signType = SignType.MD5; // 沙箱环境
  8.         }
  9.         else {
  10.            // this.signType = SignType.HMACSHA256;
  11.             this.signType = SignType.MD5;
  12.         }
  13.         this.wxPayRequest = new WXPayRequest(config);
  14.     }
复制代码

到此大功告成。支付测试顺利通过。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


易域网-您身边的域名管家

henkuai.com是专业的第三方微信开发者平台,为生态而生。


本站为第三方微信开发者平台,非腾讯官方网站。

天津市滨海新区
中新生态城中成大道生态建设公寓9号楼3层301

欢迎来这里一起喝喝茶,
聊聊你的产品。

微信公众号gongzhongkaifa

工作日12小时内回复。

广告推广
zhongcong@henkuai.com

工作日12小时内回复。

市场合作
songchang@henkuai.com