微信支付的前后端實現:
目錄:
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格式,否則微信會認為這次通知請求是失敗的