1.接口文档
项目对接任何三方接口,最重要的参考永远都是官方给提供的接口文档,接下来以微信小程序登录为例,链接如下:
https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/user-login/code2Session.html
这个文档中比较关键的部分就是:
功能描述,查阅是否符合我们业务对接的需求
调用方式,三方接口一般都是https居多,更加安全,包含了请求方式和请求地址
请求参数,接口的入参,特别注意的是,必须要传的参数
返回参数,查看返回的数据结构和内容,是否符合自己的返回预期
错误码,当接口调用失败的时候,可以查阅以方便修正接口调用失败原因
2.API客户端
1.通常的http请求,都是前端到后端发起请求,如下图:
Client客户端一般都是指浏览器发起了请求
Server是指服务端,Java的后端服务
2.如果从后端调用三方接口,一样也是用的http请求,只是这次请求是从后端到另外一个后端服务,我们需要借助工具才能发起请求:
以下统一用糊涂工具包发起请求,糊涂工具包使用说明地址:https://doc.hutool.cn/pages/http/
3.微信登录
在任意需要登录才能显示信息的页面点击时,判断当前用户是否登录,如未登录,则进入登录页面
点击微信账号登录,弹出弹窗,需要获取用户手机号进行登录
微信登录业务逻辑规则:
我们的主要实现思路可以根据微信小程序开放者平台给提供的实现思路,链接和流程如下:
微信小程序登录,官方文档:
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html
微信官方推荐登录流程:
注意点:
-
前端在小程序中集成微信相关依赖,当用户请求登录的同时,调用wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。
-
后端服务器调用 auth.code2Session 接口,换取 用户唯一标识 OpenID 、 用户在微信开放平台账号下的唯一标识UnionID(若当前小程序已绑定到微信开放平台账号) 和 会话密钥 session_key
-
开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。
4.登录接口说明
-
接口路径(已固定):
/customer/user/login
-
请求方式(已固定):
POST
-
请求参数:(已固定)
{
"code": "0e36jkGa1ercRF0Fu4Ia1V3fPD06jkGW", //临时登录凭证code
"nickName": "微信用户",
"phoneCode": "13fe315872a4fb9ed3deee1e5909d5af60dfce7911013436fddcfe13f55ecad3"
}
以上三个参数,都是前端开发人员调用wx.login()方法返回的数据
code:临时登录凭证code
nickName:微信用户昵称(现在微信统一返回为:微信用户)
phoneCode:详细用户信息code,后台根据此code可以获取用户手机号
-
响应示例
{
"code