登錄
需要先申請小程序公眾號
文檔地址:https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.html?t=20161122
時序圖:
整體代碼流程:
1. 在wx.login的回調中取到code, 之后調用wx.getUserInfo取到用戶信息, 取到encryptedData和iv
2. 把取到的encryptedData, iv, code傳到服務端
3. 通過文檔中的code換取session_key來授權
4. 解密encryptedData和iv用來保存必要數據 (注冊) 解密算法 [https://mp.weixin.qq.com/debug/wxadoc/dev/api/signature.html?t=20161122], 官方有很多種語言SDK下載
5. 服務端登錄
注意:如果在第4步解密沒有取到unionId(你確實需要使用), 需要在開放平台綁定該公眾號
支付
文檔 : https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-pay.html?t=20161122
支付信息的獲取
appid 分配給小程序id
partner_id 商戶id, 在申請支付通過的時候官方郵件中會有
mch_id 跟partner_id設置為一樣
sslcert_path 通過商品號和密碼登錄商品平台, 在api安全中可以下載
sslkey_path 獲取方式同sslcert_path
key 通過商品號和密碼登錄商品平台, 在api安全中可以自由設置密鑰
app_secret 可以在公眾號中更改, 怎么獲取不記得了
流程:
1. 小程序內調用登錄接口,獲取到用戶的openid 在登錄階段已經獲取到
2. 調用支付統一下單 [https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1]
3. 再次簽名 [https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_7]
4. 客戶端發起支付 [https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-pay.html?t=20161122]
注意 :
1. 再次簽名注意大小寫 appId是大寫, 以前一直是小寫有沒有
2. 再次簽名的時候package一定要加上prepay_id=
3. 再次簽名的時候需要帶上key
最后得到的簽名字串
appId=wx********&nonceStr=jkm2c98jlitq5fb8ihx6phs0lz4oir1s&package=prepay_id=wx20161213133211433c8abf0e0811319940&signType=MD5&timeStamp=1481607127&key=******************
*號代表敏感數據