微信支付的前后端实现:
目录:
0:商家需要-商户平台账号,然后将小程序和商户平台账号做关联
1:前端登录获取随意code,发送到后端获取到openId
2:获取到openId之后,进行账号绑定。前端向后端请求要支付接口,获得paySign字段
3:前端调用wx支付接口
4:微信支付成功,回调api接口
申请微信支付
点击申请接入
点击去注册,会让你去扫码,拿商家的微信扫码下。
然后你就一步步的按微信的来,申请账号申请完成之后会得到:
mch_id:商户号
api_key:商家key
一、获取openID
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html
- 前端通过wx.login接口获取到code
- 将code发送到服务端去
- 服务端接收到code,创建请求参数,使用requests往指定的微信地址发送数据包
GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
- requests获取到json数据,用户唯一标识 OpenID(用一个用户在不同小程序的openId是不一样的)和会话密钥 session_key。
二、获取到paySign字段
前端调用后端接口,后端需要调用统一接口得到预支付单号prepay_id,然后再对参数进行第二次的加密。将得到的接口返回到前端
三、前端调起微信支付接口
前端拿到paySign之后,调用wx.requestPayMent接口
四、微信支付成功通知
支付之后,微信会往我们指定的通知api接口进行通知,
如果后端的接口一直是宕机的状态,微信不能通知到,微信会24小时之内不定时的进行重新发送请求。
接口返回的结果一定要按微信要求的xml格式,否则微信会认为这次通知请求是失败的