小程序与服务端数据交互说明

一、需要从微信平台获取的用户信息及获取方案

1、需要获取的用户信息:OpenId、Session-Key、UnionId、NickName、Gender、AvatarURL、City、Province

2、用户信息获取方案:

方案一:用户第一次使用小程序或冷启动小程序

  • 1)、小程序端调用wx.login(),获取临时登录凭证Code,然后上传至服务端相应接口;
    服务端根据Code和appid、secret去微信开放平台获取用户的(OpenId、Session-Key),并在系统中检测用户是否已存在,返回结果给小程序端。
    返回结果包含:NickName、AvatarURL和加密后的Token(Token由小程序端保存),其中NickName和AvatarURL为空表示用户在系统中不存在,需要收集用户信息;
  • 2)、如果需要收集用户信息,由小程序端调用wx.GetUserInfo()获取用户信息,并附带Token传给服务端,由服务端解密数据,完善用户信息。完成后返回用户的NickName、AvatarURL给小程序端。
  • 3)、服务端返回的:NickName、AvatarURL、Token由小程序端保存,如丢失可使用1)的接口重新获取。

方案二:已存在用户信息的更新

  • 用户在小程序端触发信息更新功能,由小程序端调用wx.GetUserInfo()获取用户信息(进行此操作之前先检查Session是否有效,失效则需要采用类似方案一步骤),并附带Token传给服务端,由服务端解密数据,更新用户信息。完成后返回用户的NickName、AvatarURL给小程序端。

二、小程序与服务端数据交互约定

1、小程序向服务端的数据传送统一采用post请求,并将content-type设置为:application/x-www-form-urlencoded

2、服务端除用于小程序用户登录的接口外,其它接口在数据传输时都需要附带Token给服务端。