资讯专栏INFORMATION COLUMN

微信支付开发中遇到的两个神坑

adam1q84 / 468人阅读

微信支付本身是提供了三大Web开发语言的SDK下载的,按理说应该很Easy怎么会有坑呢?
其实坑大多出在文档上,文档不完善,很多东西都得你去摔一跤才明白,事先绝不告诉你,整个微信的文档都跟屎一样
其次是参数命名,一会儿要用timeStamp一会儿却又要用timestamp的,命名混乱就算了还非得区分大小写,百度一下就知道坑过多少人了

这些都忍了,跌跌撞撞也就过来了。但最近做支付又遇到两个大坑。经过数小时终于解决,来介绍下经验

JSAPI报签名错误

项目其中一个需求是在网页点击按钮调起支付,这就得用到微信的JSAPI

下载PHP的SDK,直接部署并测试SDK自带的例程,一切正常
把配置项和支付证书替换成自己公众号的之后,再测试,报签名错误
我:
然后我到微信支付接口签名校验工具,各种测试;到线上各种输日志还是没有发现问题。然后重新检查配置、证书,再bing、google都找不到问题所在。不知不觉就耗去了几个小时

最后在Google出来的某看起来很丑的论坛里一篇帖子提到一个解决方案——重置支付密钥

是的就是那个支付时需要用到的KEY,不是AppID也不是AppSecret
我不抱希望地重置了一下换了个密钥,等待十分钟后,就没报签名错误了

JSAPI调用getBrandWCPayRequest总是报fail

然而微信不会让一切那么顺利的,当我使用getBrandWCPayRequest要调起支付时,报fail错误

这里要先说到微信的支付授权目录,关于这玩意儿,微信官方给出的描述是:

1、所有使用公众号支付方式发起支付请求的链接地址,都必须在支付授权目录之下;
2、最多设置3个支付授权目录,且域名必须通过ICP备案;
3、头部要包含http或https,须细化到二级或三级目录,以左斜杠“/”结尾。

当时的url大概是
http://www.abc.com/wxpay/index.php/wecaht/pay/123

这样的,于是我根据第3条描述,将支付授权目录设定为
http://www.abc.com/wxpay/

好啦这就是二级目录啦!等待10分钟后测试,依然fail

后来改为http://www.abc.com/wxpay/index.php/,三级目录啦。还是fail

经过无数google无果后,破罐子破摔填了个倒数第二级目录
http://www.abc.com/wxpay/index.php/wecaht/pay/

嗯是的,就跟你猜到的一样,成功了……

当时我看着手机里调起的支付密码输入框,满脑子只有WTF……

本文同时刊登于我的博客 超能小紫,如果喜欢请常来玩哦

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21689.html

相关文章

  • 神坑·Python 装饰类无限递归

    摘要:如今查找结果有误,说明继承链是错误的,因而极有可能是出错。真相一切都源于装饰器语法糖。核心思路就是不要更改被装饰名称的引用。 本文首发于我的博客,转载请注明出处 《神坑》系列将会不定期更新一些可遇而不可求的坑防止他人入坑,也防止自己再次入坑 简化版问题 现有两个 View 类: class View(object): def method(self): #...

    spacewander 评论0 收藏0
  • 分享一下这两周爬微信支付坑~希望有借鉴作用(PHP)

    摘要:这个坑就是要注意回调结束要返回成功的响应这几天做微信支付暂时遇到的问题就这么多,只能说注意细节吧,爬过的坑记录下来以后遇到就懂处理了。 前言 其实任何接口开发只要按照给出来的接口文档和例子开发基本上不会有太大问题的,一些问题都是出在杂七杂八的小细节上,现在分享一下微信支付开发中自己遇到的小细节。按照文档做完开发前配置,比如JS安全域名配置、网页授权域名、公众号授权目录等等... 坑一:...

    Tangpj 评论0 收藏0
  • 使用vue开发微信公众号下SPA站点填坑之旅

    摘要:原文见我的博客,点击进入使用开发微信公众号下站点的填坑之旅本文为我创业过程中,开发项目的填坑之旅。作为一个技术宅男,我的项目是做一个微信公众号,前后端全部自己搞定,不浪费国家一分钱。 原文见我的博客,点击进入使用vue开发微信公众号下SPA站点的填坑之旅 本文为我创业过程中,开发项目的填坑之旅。作为一个技术宅男,我的项目是做一个微信公众号,前后端全部自己搞定,不浪费国家一分钱^_^。 ...

    yeyan1996 评论0 收藏0
  • 浅析微信支付:前篇大纲

    摘要:浅析微信支付前篇大纲本文是浅析微信支付系列文章的第一篇,主要会介绍一下为何写下这个系列以及对于微信支付的一点小经验,与君共勉。下面讲一下我是如何去学习微信支付的。 浅析微信支付:前篇大纲 本文是【浅析微信支付】系列文章的第一篇,主要会介绍一下为何写下这个系列以及对于微信支付的一点小经验,与君共勉。 以下会分几个步骤讲一下我学习微信支付的过程,也是一部辛酸史,也是希望朋友们不要再次跌进...

    mayaohua 评论0 收藏0
  • 记录django-rest-framework处理微信支付notify_url遇到问题

    摘要:微信支付统一下单接口,有一个叫的参数,作用我就照搬官方文档异步接收微信支付结果通知的回调地址,通知必须为外网可访问的,不能携带参数。 最近在做一个小程序,小程序有涉及到微信支付,说来惭愧,还是第一次自己动手去做微信支付这一块的实现,所以过程中遇到了很多人都会踩的坑(例如mmp的微信支付各种key各种id要在哪里找,很难找),这次使用django来开发,接口部分用django-rest-...

    NicolasHe 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<