技术方案

## 授权方式 1. 小游戏授权 2. 短信验证码授权 ## 授权接口验证方式 - client_id=mini - client_secret=mini - 加密方式auth=Base64.encode((client_id + ":" + client_secret).getBytes()); - 登录的请求头 Authorization=Basic auth(中间有空格) - 登录成功后请求头 Authorization=Bearer auth - token用户的唯一标识 ## 第三方接口验证方式 - app_id=由后台配置 - secret=由后台配置 - 采用sha256的签名方式,请求参数值进行ascii码小到大排序,比如 ``` { "a","123456", "b","bbbwwww", "b","ccccdddd" } ``` - String str = 123456 + bbbwwww + ccccdddd + secret;+号代表拼接,最后拼接secret - String sign = sha256Utils.sign(str); - sign样例:4a3222c0edeee3705e49bee8706ba8e770cfbec3fc82d9ca17440789e0507c1d - 请求头带上,APP_ID=app_id - 后台会根据app_id 拿到 secret进行签名验证. ## 积分表 ```language CREATE TABLE `kbankscorex_app`.`app_integral` ( `user_id` bigint NOT NULL DEFAULT 0 COMMENT '用户id', `total_integral` bigint NULL DEFAULT NULL COMMENT '累计积分', `integral` bigint NULL DEFAULT NULL COMMENT '剩余积分', `convert_integral` bigint NULL DEFAULT NULL COMMENT '兑换积分//兑换积分+剩余积分=累计积分', `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', `update_time` datetime NULL DEFAULT NULL COMMENT '修改时间', PRIMARY KEY (`user_id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; ``` ## 积分明细表 ```language CREATE TABLE `kbankscorex_app`.`app_integral_detail` ( `integral_detail_id` bigint NOT NULL COMMENT '积分明细id', `user_id` bigint NOT NULL DEFAULT 0 COMMENT '用户id', `integral_type` int NOT NULL COMMENT '积分类型 1兑换积分(扣减积分) 2获取积分(增加积分)', `integral` int NOT NULL COMMENT '积分', `channel` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '渠道来源 1-小游戏 2-h5', `creat_time` datetime NOT NULL COMMENT '创建时间', `create_id` bigint NULL DEFAULT NULL COMMENT '创建人id', `create_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人名称', PRIMARY KEY (`integral_detail_id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; ``` ## 应用授权表 ```language CREATE TABLE `app_auth` ( `app_id` int NOT NULL COMMENT 'app_id', `secret` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '秘钥', `channel` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '渠道来源 1-小游戏 2-h5', `ip_white_list` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ip白名单,多个,分割', `host_white_list` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '域名白名单', `enable` int NOT NULL DEFAULT '1' COMMENT '开关 1开 0关', `create_time` datetime NOT NULL COMMENT '创建时间', `update_time` datetime NOT NULL COMMENT '修改时间', PRIMARY KEY (`app_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; ```