微信小程序登录与支付

登录

需要先申请小程序公众号


文档地址: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=******************

*号代表敏感数据

原文地址:https://www.cnblogs.com/by-pgp/p/6169542.html