所在位置:首页  >  帮助文档  >  PHP实现微信小程序用户授权的工具类示例

PHP实现微信小程序用户授权的工具类示例

发布日期:2018-03-28

1.申请一个小程序,申请地址:传送门

2.仔细阅读小程序的用户授权登陆官方文档: 《用户授权登陆的流程》

3.仔细阅读微信用户数据解密的相关文档: 《用户数据解密说明文档》

在小程序后台配置好相应的后端请求地址,路径是:开发---->开发设置,如图

5.小程序如果需要做多个小程序的打通,还需要在微信开放平台绑定到开发者账号下面, 如果不需要union_id请忽略

6.服务端准备一个用户授权的接口,假设接口链接为http://test.dev.com/user/authorization,此接口接受如下参数

· code:微信登陆接口返回的登陆凭证,用户获取session_key

· iv:微信小程序登陆接口返回的向量,用于数据解密

· encrypted_data : 微信获取用户信息接口的返回的用户加密数据,用于后端的接口解析

· signature加密数据

接口返回的数据如下

{

  "errcode": 200,

  "msg": "SUCCESS",

  "data": {

    "uid": 34098,

    "unionid": "xxx",

  }

}

 

6.建表

1)用户表,其中比较重要的字段是union_id,因为我们是有多个小程序和公众号,因此使用这个来区分唯一的用户编号

DROP TABLE IF EXISTS `jz_wxa_user`;

CREATE TABLE `jz_wxa_user` (

 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,

 `uid` bigint(18) DEFAULT NULL,

 `openid` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT 'openid',

 `user_name` varchar(100) CHARACTER SET utf8mb4 DEFAULT '',

 `nick_name` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '用户昵称',

 `sex` enum('0','1') CHARACTER SET utf8 DEFAULT '1' COMMENT '性别',

 `avatar` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '用户头像',

 `province` varchar(100) CHARACTER SET utf8 DEFAULT NULL COMMENT '省份',

 `city` varchar(100) CHARACTER SET utf8 DEFAULT NULL COMMENT '城市',

 `country` varchar(100) CHARACTER SET utf8 DEFAULT NULL COMMENT '国家',

 `wx_union_id` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '公众平台的唯一id',

 `from_url` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '来源url',

 `created_at` timestamp NULL DEFAULT NULL,

 `updated_at` timestamp NULL DEFAULT NULL,

 `from_appid` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT 'wx95fc895bebd3743b' COMMENT '来源appid',

 `wx_header` varchar(150) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '微信头像',

 `gh_openid` varchar(60) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '微信公众号openid',

 `phone` varchar(30) CHARACTER SET utf8 DEFAULT '' COMMENT '手机号码',

 PRIMARY KEY (`id`),

 KEY `idx_uid_union_id` (`uid`,`wx_union_id`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

实现步骤

用户授权时序图

企业微信咨询

关注蓝空公众号

联系方式

深圳蓝空网络技术有限公司

地址:深圳市南海区粤海街道滨海社区海天二路25号深圳湾创业投资大厦10层

总部地址:大连市高新园区希贤街29号宏泰大厦B座704

总部联系方式:0411-39759238

邮箱:2601819616@qq.com

粤ICP备19028444号-1

版权归深圳蓝空网络技术有限公司所有

电话咨询
产品中心
在线留言
QQ客服