小鹅通实战开发
- ChatGPT工作提效之小鹅通二次开发批量API对接解决方案(学习记录同步、用户注册同步、权益订购同步、开发文档)
- 小鹅通学习记录大批量队列同步
- 小鹅通云服务PHP-API二维数组传参解决方案
合并用户user_id批量同步
- 小鹅通实战开发
- 前言
- 一、账号发生合并带来的影响
- 二、查询用户合并记录
- 1.用户管理-查询用户信息
- 2.请求格式
- 3.返回参数
- 三、大数量的批处理API
- 1.合并用户API接口封装
- 2.遍历数据表用户
- 3.同步用户user_id
- 总结
前言
作为一个API对接的开发者,最头疼的就是第三方API的升级。第三方API的升级可能会带来以下影响:
-
功能变更:升级后的API可能会有新的功能或停用一些老的功能,这会对接入方的应用程序产生影响。如果老的功能停用后,接入方的应用程序可能会受到破坏或无法正常工作。
-
接口变更:升级后的API可能会更改接口,比如修改请求参数、返回参数或URL等方面,这将迫使接入方对应用程序进行修改。
-
兼容性:如果升级后的API与以前版本不兼容,那么接入方的应用程序可能无法继续使用该API。这将需要重新编写应用程序或协商新的接口。
-
性能变化:升级后的API可能会产生性能变化,可能会变得更快或更慢。这也将影响接入方应用程序对API的使用。
-
安全问题:升级后的API可能会带来新的安全问题,因此,接入方需要注意更新他们的安全措施以适应API的变化,以保证应用程序的安全性。
应用开发者您好,为了给您提供更好的服务,我们对帐号系统做了升级,从7月14日起,[注册新用户]接口的请求字段不允许同时传递 data.wx_union_id 和 data.phone。如您的应用涉及到以上接口及参数,请在7月14日接口调整生效前完成优化改造。否则将影响到应用服务。感谢你的理解与支持!
注册新用户接口调整通知 2023-06-16 11:52:26
很不幸,在系统正常运行的情况下,小鹅通发布了最新的API通知,也解释了为什么会出现59997
好吧,开工!
一、账号发生合并带来的影响
当账号发生合并时,可能会导致API注册的账号被注销,user_id将会无效。
- 新注册用户,提示其合并账户;
- 老用户,已经大批量入库的老用户,如何将合并后的user_id更新过来呢
二、查询用户合并记录
1.用户管理-查询用户信息
请求示例:
请求方式及url
请求方式:POST
请求头:Content-Type:application/json
接口地址:https://api.xiaoe-tech.com/xe.user.merge.info/1.0.0
频率限制:10秒3000次
2.请求格式
3.返回参数
{"code": 0,"msg": "ok","data": {"app_id": "appxxxx","target_user_id": "u_xxxx","resource_user_id": "u_xxxx","merged_at": "2021-05-14 09:57:25.000000"}
}
其中:
- data.target_user_id string 合并后账号id;
- data.resource_user_id string 被合并账号id;
- data.merged_at timestamp 合并时间;
三、大数量的批处理API
1.合并用户API接口封装
/*获取指定资源学习记录信息* 频率限制:10秒3000次* $target_user_id,合并后账号id* $resource_user_id,被合并账号id* By WoodCutter 2023-06-27
*/function getUserMerge($resource_user_id)
{require_once './libs/Client.php';$client = new Client();$url = "https://api.xiaoe-tech.com/xe.user.merge.info/1.0.0";$method = "post";$data = array("resource_user_id" => $resource_user_id);$params = ['data' => $data];$result = $client->request($method, $url, $params);return json_encode($result);
}
2.遍历数据表用户
新增is_merge,是否检测过账户合并。
global $db, $res;
dbc();//04.对接数据
@$course_id = get_param('course_id');
$sql = "select sign_id,user_eid,is_merge FROM " . $db->table('sign_2023') . " WHERE is_merge = 0 AND user_eid <> ''";//未判断合并的用户
if ($course_id != "") {$sql .= " AND course_id = " . $course_id;
}
$sql .= " ORDER BY sign_id DESC LIMIT 3000";
$row = $db->queryall($sql);
$res["data"] = $row;
die(json_encode_lockdata($res));
3.同步用户user_id
$sign_id = get_param('sign_id');
$user_eid = get_param('user_eid');
$data = ['resource_user_id' => $user_eid];//执行同步
require_once '../libs/Client.php';//注意路径问题
$client = new Client();
$url = "https://api.xiaoe-tech.com/xe.user.merge.info/1.0.0";
$method = "post";
$params = ['data' => $data];
$result = $client->request($method, $url, $params);
//return json_encode($result);
if ($result['code'] == 0) {//合并用户;if ($result['data']['target_user_id']) {$db->update('sign_2023', array('user_eid' => $result['data']['target_user_id'], 'is_merge' => 1), array('sign_id' => $sign_id));}
} else {$db->update('sign_2023', array('is_merge' => 1), array('sign_id' => $sign_id));//已判断
}
//输出数据
$res['code'] = $result;
die(json_encode($res));
总结
升级API后,需要进行以下测试步骤:
-
功能检查:对升级后的API进行全面功能检查,确认新的功能是否正常工作,回归已有的功能是否出现异常。
-
兼容性测试:进行兼容性测试,特别是对接入方应用程序进行测试,确保和旧版本API的兼容性,并确认新的版本兼容已有的应用程序。
-
性能测试:对升级后的API进行性能测试,保证API的性能满足要求,并寻找性能改进的机会。
-
安全测试:针对升级后的API进行安全测试,确认新的API是否有新的安全问题,并采取相应的措施加以解决。
-
文档更新:更新API的文档和其它文档,介绍API的新功能和改变,帮助接入方更好地了解API的使用。
-
用户反馈:收集用户反馈,包括API的功能、易用性等方面,根据反馈对API进行改进和优化。
@漏刻有时