请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于新版api自带返回的wxOrder方法和手动编写签名方法的差别

首先现在2019年的版本多了一个config参数,经过自己对比源码和例子之后改写了老师的代码才完成了整个preorder参数,但是发现新版的WxPayConfig方法已经内置了md5加密的方法,所以一开始是直接用的内置的方法返回给小程序前端的,但是读了源码发现,最后返回过来的order对象里面是不含timestamp的,所以在下一章的tostring方法肯定会报错。
同时,很疑惑为什么老师这里要返回的是wxOrder[‘sign’]呢?这样小程序前端不是只能收到sign内的数据,而不能拿到整个对象的话,所有preorder内的值肯定是拿不到的啊?
所以目前是用自己方法缺了一个参数,按照视频里的方法是肯定会报错的,除非用自己的sign方法,返回一个完整的数据结构才能让前端获取正确的的数据。

正在回答 回答被采纳积分+3

1回答

7七月 2019-12-16 22:27:08

SDK版本不同写法肯定是略有差异的,这块如果你要理解Sign为什么要这样,肯定要带入到原来的SDK中来理解。我不太理解为什么wxorder[sign]就是前端只能收到sign?这是什么意思

0 回复 有任何疑惑可以回复我~
  • 提问者 慕圣2813975 #1
    抱歉,之前描述和理解有些偏差,我的描述是错误的 现在虽然能扫码 但是会一直报没有total_fee的错误, 今天把整个支付流程理了一遍。
    不是很懂在创建WxPayUnifiedOrder的时候,WxPay.Api内自带的SetSign方法已经创建了一个签名  为什么自己还要写一个sign方法,
    是否是wxorder对象自带的那个签名方法其实就是我们拿来做对比的方法?
    回复 有任何疑惑可以回复我~ 2019-12-17 14:35:32
  • 7七月 回复 提问者 慕圣2813975 #2
    这两个签名不是同一个,微信有一个加密算法,这个文档中有详细的描述,sdk其实是帮你做好了算法,如果自己要算也可以。大概是按照字母顺序排序再机上appsecret的机制。
    回复 有任何疑惑可以回复我~ 2019-12-17 19:45:47
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信