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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 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进行改进和优化。

@漏刻有时

相关文章
|
2月前
|
数据采集 存储 缓存
PHP爬虫的使用与开发
本文深入探讨了PHP爬虫的使用与开发,涵盖基本原理、关键技术、开发实践及优化策略。从发送HTTP请求、解析HTML到数据存储,再到处理反爬机制,全面指导读者构建高效可靠的爬虫程序。
79 3
|
2月前
|
NoSQL Java Linux
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
281 75
|
2月前
|
存储 设计模式 算法
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。 行为型模式分为: • 模板方法模式 • 策略模式 • 命令模式 • 职责链模式 • 状态模式 • 观察者模式 • 中介者模式 • 迭代器模式 • 访问者模式 • 备忘录模式 • 解释器模式
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
|
2月前
|
开发框架 小程序 前端开发
圈子社交app前端+后端源码,uniapp社交兴趣圈子开发,框架php圈子小程序安装搭建
本文介绍了圈子社交APP的源码获取、分析与定制,PHP实现的圈子框架设计及代码编写,以及圈子小程序的安装搭建。涵盖环境配置、数据库设计、前后端开发与接口对接等内容,确保平台的安全性、性能和功能完整性。通过详细指导,帮助开发者快速搭建稳定可靠的圈子社交平台。
|
2月前
|
PHP 开发者 容器
PHP命名空间深度解析:避免命名冲突与提升代码组织####
本文深入探讨了PHP中命名空间的概念、用途及最佳实践,揭示其在解决全局命名冲突、提高代码可维护性方面的重要性。通过生动实例和详尽分析,本文将帮助开发者有效利用命名空间来优化大型项目结构,确保代码的清晰与高效。 ####
72 20
|
2月前
|
运维 数据库连接 PHP
PHP中的异常处理机制深度解析####
本文深入探讨了PHP中异常处理机制的工作原理,通过实例分析展示了如何有效地使用try-catch语句来捕获和处理运行时错误。我们将从基础概念出发,逐步深入到高级应用技巧,旨在帮助开发者更好地理解和利用这一强大的工具,以提高代码的稳定性和可维护性。 ####
|
2月前
|
存储 监控 调度
云服务器成本优化深度解析与实战案例
本文深入探讨了云服务器成本优化的策略与实践,涵盖基本原则、具体策略及案例分析。基本原则包括以实际需求为导向、动态调整资源、成本控制为核心。具体策略涉及选择合适计费模式、优化资源配置、存储与网络配置、实施资源监控与审计、应用性能优化、利用优惠政策及考虑多云策略。文章还通过电商、制造企业和初创团队的实际案例,展示了云服务器成本优化的有效性,最后展望了未来的发展趋势,包括智能化优化、多云管理和绿色节能。
|
2月前
|
PHP 开发者 UED
PHP中的异常处理机制解析####
本文深入探讨了PHP中的异常处理机制,通过实例解析try-catch语句的用法,并对比传统错误处理方式,揭示其在提升代码健壮性与可维护性方面的优势。文章还简要介绍了自定义异常类的创建及其应用场景,为开发者提供实用的技术参考。 ####
|
2月前
|
PHP 开发者 容器
PHP命名空间深度解析及其最佳实践####
本文深入探讨了PHP中引入命名空间的重要性与实用性,通过实例讲解了如何定义、使用及别名化命名空间,旨在帮助开发者有效避免代码冲突,提升项目的模块化与可维护性。同时,文章还涉及了PHP-FIG标准,引导读者遵循最佳实践,优化代码结构,促进团队协作效率。 ####
43 1
|
3月前
|
编译器 PHP 开发者
PHP 8新特性解析与实战应用####
随着PHP 8的发布,这一经典编程语言迎来了诸多令人瞩目的新特性和性能优化。本文将深入探讨PHP 8中的几个关键新功能,包括命名参数、JIT编译器、新的字符串处理函数以及错误处理改进等。通过实际代码示例,展示如何在现有项目中有效利用这些新特性来提升代码的可读性、维护性和执行效率。无论你是PHP新手还是经验丰富的开发者,本文都将为你提供实用的技术洞察和最佳实践指导。 ####
56 1

热门文章

最新文章

推荐镜像

更多