php对接小鹅通API开发高级实战案例解析:小鹅通实战开发之合并用户user_id批量同步

简介: php对接小鹅通API开发高级实战案例解析:小鹅通实战开发之合并用户user_id批量同步

前言

作为一个API对接的开发者,最头疼的就是第三方API的升级。第三方API的升级可能会带来以下影响:

  1. 功能变更:升级后的API可能会有新的功能或停用一些老的功能,这会对接入方的应用程序产生影响。如果老的功能停用后,接入方的应用程序可能会受到破坏或无法正常工作。
  2. 接口变更:升级后的API可能会更改接口,比如修改请求参数、返回参数或URL等方面,这将迫使接入方对应用程序进行修改。
  3. 兼容性:如果升级后的API与以前版本不兼容,那么接入方的应用程序可能无法继续使用该API。这将需要重新编写应用程序或协商新的接口。
  4. 性能变化:升级后的API可能会产生性能变化,可能会变得更快或更慢。这也将影响接入方应用程序对API的使用。
  5. 安全问题:升级后的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后,需要进行以下测试步骤:

  1. 功能检查:对升级后的API进行全面功能检查,确认新的功能是否正常工作,回归已有的功能是否出现异常。
  2. 兼容性测试:进行兼容性测试,特别是对接入方应用程序进行测试,确保和旧版本API的兼容性,并确认新的版本兼容已有的应用程序。
  3. 性能测试:对升级后的API进行性能测试,保证API的性能满足要求,并寻找性能改进的机会。
  4. 安全测试:针对升级后的API进行安全测试,确认新的API是否有新的安全问题,并采取相应的措施加以解决。
  5. 文档更新:更新API的文档和其它文档,介绍API的新功能和改变,帮助接入方更好地了解API的使用。
  6. 用户反馈:收集用户反馈,包括API的功能、易用性等方面,根据反馈对API进行改进和优化。

@漏刻有时

相关文章
|
3月前
|
人工智能 API 开发者
HarmonyOS Next~鸿蒙应用框架开发实战:Ability Kit与Accessibility Kit深度解析
本书深入解析HarmonyOS应用框架开发,聚焦Ability Kit与Accessibility Kit两大核心组件。Ability Kit通过FA/PA双引擎架构实现跨设备协同,支持分布式能力开发;Accessibility Kit提供无障碍服务构建方案,优化用户体验。内容涵盖设计理念、实践案例、调试优化及未来演进方向,助力开发者打造高效、包容的分布式应用,体现HarmonyOS生态价值。
157 27
|
3月前
|
人工智能 API 语音技术
HarmonyOS Next~鸿蒙AI功能开发:Core Speech Kit与Core Vision Kit的技术解析与实践
本文深入解析鸿蒙操作系统(HarmonyOS)中的Core Speech Kit与Core Vision Kit,探讨其在AI功能开发中的核心能力与实践方法。Core Speech Kit聚焦语音交互,提供语音识别、合成等功能,支持多场景应用;Core Vision Kit专注视觉处理,涵盖人脸检测、OCR等技术。文章还分析了两者的协同应用及生态发展趋势,展望未来AI技术与鸿蒙系统结合带来的智能交互新阶段。
192 31
|
3月前
|
人工智能 小程序 前端开发
【一步步开发AI运动小程序】十九、运动识别中如何解析RGBA帧图片?
本文介绍了如何将相机抽取的RGBA帧图像解析为`.jpg`或`.png`格式,适用于体测、赛事等场景。首先讲解了RGBA图像结构,其为一维数组,每四个元素表示一个像素的颜色与透明度值。接着通过`uni.createOffscreenCanvas()`创建离屏画布以减少绘制干扰,并提供代码实现,将RGBA数据逐像素绘制到画布上生成图片。最后说明了为何不直接使用拍照API及图像转换的调用频率建议,强调应先暂存帧数据,运动结束后再进行转换和上传,以优化性能。
|
3月前
|
数据可视化 测试技术 API
前后端分离开发:如何高效调试API?有工具 vs 无工具全解析
在前后端分离的开发模式中,API 调试的效率直接影响项目的质量和交付速度。通过本文的对比分析,我们可以看到无工具调试模式虽具备灵活性和代码复用能力,但在操作便利性和团队协作上稍显不足。而传统的外部调试工具带来了可视化、高效协作与扩展性,却可能存在工具切换带来的开发链路断层问题。Apipost-Hepler 融合了两者的优势,让开发者无需离开熟悉的 IDEA 环境,就能享受可视化调试工具的强大功能。
92 5
|
3月前
|
移动开发 前端开发 JavaScript
从入门到精通:H5游戏源码开发技术全解析与未来趋势洞察
H5游戏凭借其跨平台、易传播和开发成本低的优势,近年来发展迅猛。接下来,让我们深入了解 H5 游戏源码开发的技术教程以及未来的发展趋势。
|
7月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
203 2
|
3月前
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
339 29
|
3月前
|
前端开发 数据安全/隐私保护 CDN
二次元聚合短视频解析去水印系统源码
二次元聚合短视频解析去水印系统源码
97 4
|
3月前
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
3月前
|
存储 前端开发 JavaScript
在线教育网课系统源码开发指南:功能设计与技术实现深度解析
在线教育网课系统是近年来发展迅猛的教育形式的核心载体,具备用户管理、课程管理、教学互动、学习评估等功能。本文从功能和技术两方面解析其源码开发,涵盖前端(HTML5、CSS3、JavaScript等)、后端(Java、Python等)、流媒体及云计算技术,并强调安全性、稳定性和用户体验的重要性。

推荐镜像

更多
  • DNS