获取微信openid相关说明

接口说明

微信打开的网页,是无法持久存贮 cookies 的,你知道吗?

那么如何辨识唯一用户呢?

是的,使用微信服务号!服务号拥有高级接口,可以给让网站通过微信的OAuth2授权, 获得用户的 OpenID, 从而辨别一个唯一用户。

那么,没有微信服务号呢?

可以使用如下方式获取微信openid。

1. 流程示意

流程1示意:获取接口a -> 验证接口a, 该流程只能获取唯一的微信openid

流程2示意:获取接口b -> 验证接口b, 该流程获取微信用户的openid、姓名、头像、位置、性别等等

ps:使用获取接口b, 每天有100次限制

2. 获取接口

获取接口a:http://uc.apixn.com/wxapi.php?refer=URL

获取接口b:http://uc.apixn.com/wxapi.php?refer=URL&authorize=1


获取接口a

1. 参数说明:

refer: 需要跳转到的 URL. 必须使用 urlencode进行编码(php写法).

2. 返回参数:

aopenid: APIXN会通过微信授权, 拿到用户唯一的 openid, 在指定跳转的URL的后面添加参数aopenid,并把 openid赋值给参数aopenid.

verify: 校验码. 每次的获取 aopenid 的动作都会生成唯一的一个校验码, 网站可以通过这个校验码访问APIXN的验证接口,验证这个aopenid 是否是从APIXN发出的. 以防止恶意行为. 校验码在120秒内有效.

获取接口b

1. 参数说明:

refer: 需要跳转到的 URL. 需要使用 urlencode进行编码(php写法).

authorize 1,获取用户信息,会有微信的授权页面弹出,用户授权操作;

2. 返回参数:

如果微信用户授权成功:

aopenid: APIXN会通过微信授权, 拿到用户唯一的 openid, 在指定跳转的URL的后面添加参数aopenid,并把 openid赋值给参数aopenid.

verify: 校验码. 每次的获取 aopenid 的动作都会生成唯一的一个校验码, 网站可以通过这个校验码访问APIXN的验证接口,验证这个aopenid 是否是从APIXN发出的. 以防止恶意行为. 校验码在120秒内有效.

如果微信用户授权失败:

sq: 在指定跳转的URL的后面添加参数sq,并把 no赋值给参数sq.


3. 验证接口

验证接口a:http://uc.apixn.com/auth.php?aopenid=AOPENID&verify=校验码

验证接口b:http://uc.apixn.com/auth.php?aopenid=AOPENID&verify=校验码&info=1


验证接口a

参数说明:

aopenid: 必填. 前面获取到的 aopenid

verify: 必填. 前面获取到的 verify 校验码

验证接口用于验证wxapi.php接口是否真正来自APIXN。返回值为字符串 "true" 或者 "false".

验证接口b(必须使用获取接口b,才可以使用验证接口b

参数说明:

aopenid: 必填. 前面获取到的 aopenid

verify: 必填. 前面获取到的 verify 校验码

info: 1. 此参数必须使用获取接口b

验证接口用于验证wxapi.php接口是否真正来自APIXN。返回值微信用户信息json 或者 "false".