当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 微信小程序微信支付的一些坑

微信小程序微信支付的一些坑

2018年12月05日  | 移动技术网IT编程  | 我要评论

使用的是node.js作为后端

统一下单:

appid:这里的appid是调起微信支付的appid

mch_id:商户号,需要注意的是商户号要与appid对应

nonce_str:math.random().tostring(36).substr(2)这是我的随机字符串的生成算法

sign:这里的签名是第一次签名,后面还会讲到第二次签名,主要注意点如下:

  1.首先要把需要传递请求参数使用key1=value&key2=value2的形式进行拼接也就是文档上的参数,除去sign

  2.所拼接的字符串的属性名的顺序,必须按照ascii码(字典序)进行排序

  3.在最后拼接上使用的key,这里的key指的是商户平台设置的api秘钥>>>>微信商户平台(pay.weixin.qq.com)-->账户设置-->api安全-->密钥设置

  4.进行md5签名或者hmac-sha256签名方式,这里使用到的是md5的方式

  5.最后需要需要转换成大写

sign_type:签名方式,要与使用的签名方式一直

spbill_create_ip:这里的ip网上有人说随便填,但是我在尝试时候使用了127.0.0.1返回的数据中数ip错误,所以使用了网络的真实ip,这里使用到了

trade_type:这里使用jsapi,需要在商户平台进行开通

openid:用户在商户appid下的唯一标识 获取方式请参考小程序api wx.login和code2session,其中appid,secret应该对应

最后请求参数生成完毕之后需要传递一个xml文件到服务器这里使用到了xml2js

一般请求失败后可以先检查请求数据格式是否正确,再检查参数顺序以及key是否对应

wx.requestpayment(object object)调起微信支付

timestamp:当前的时间戳单位秒

package:这里的形式是prepay_id=***这里的prepay_id是统一下单成功后返回的数据结果

signtype:签名方式

paysign:这里是签名也就是前面所说的二次签名这里的签名包含参数有appid(注意这里跟一次签名的属性不同i为大写)传递参数不用,但是必须参与签名,之后就是

noncestr,package=prepay_id=(这里注意需要加上prepay_id=),signtype,timestamp,还有一个key,这是商户的api秘钥,需要参与签名(之前坑在这里),小程序调用支付api ,其他注意事项与第一次签名方式一致

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网