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

news2025/1/10 12:15:32

小鹅通实战开发

  1. ChatGPT工作提效之小鹅通二次开发批量API对接解决方案(学习记录同步、用户注册同步、权益订购同步、开发文档)
  2. 小鹅通学习记录大批量队列同步
  3. 小鹅通云服务PHP-API二维数组传参解决方案

合并用户user_id批量同步

  • 小鹅通实战开发
  • 前言
  • 一、账号发生合并带来的影响
  • 二、查询用户合并记录
    • 1.用户管理-查询用户信息
    • 2.请求格式
    • 3.返回参数
  • 三、大数量的批处理API
    • 1.合并用户API接口封装
    • 2.遍历数据表用户
    • 3.同步用户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将会无效。
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

  • 新注册用户,提示其合并账户;
  • 老用户,已经大批量入库的老用户,如何将合并后的user_id更新过来呢

二、查询用户合并记录

1.用户管理-查询用户信息

请求示例:

请求方式及url
请求方式:POST
请求头:Content-Type:application/json
接口地址:https://api.xiaoe-tech.com/xe.user.merge.info/1.0.0
频率限制:103000

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进行改进和优化。


@漏刻有时

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/717315.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LabVIEW评估儿童的运动认知技能

LabVIEW评估儿童的运动认知技能 以前测量认知运动功能的技术范围从基本和耗时的笔和纸技术&#xff0c;到使用准确但复杂和昂贵的实验室设备。Kinelab的主要要求是提供一个易于配置、坚固且便携的平台&#xff0c;以便在向4-12岁的儿童展示交互式视觉刺激期间快速收集运动学测…

第三章 搜索与图论(三)——最小生成树与二分图

文章目录 最小生成树PrimKruskal 二分图染色法匈牙利算法 最小生成树练习题858. Prim算法求最小生成树859. Kruskal算法求最小生成树 二分图练习题860. 染色法判定二分图861. 二分图的最大匹配 最小生成树 最小生成树针对无向图&#xff0c;有向图不会用到 Prim 求解稠密图的最…

Error in parsing ‘.arclint‘ file, in key ‘bin‘ for linter ‘pylint‘

背景&#xff1a; Run arc diff --preview to create code revision on remote terminal, but exception happened. nnhhh:~/ppp$ arc diff --preview Linting...Exception Error in parsing .arclint file, in key bin for linter pylint. None of the configured binaries …

剑指offer28.对称的二叉树

我一开始想到的是用之前的镜像二叉树方法把树转换成他的镜像树放进队列&#xff0c;在这之前把树自己放进队列。然后比较这两个队列。但这样是有问题的&#xff0c;比如题目给的[1,2,2,null,3,null,3] 这个示例就不能通过&#xff0c;于是看了题解。豁然开朗&#xff0c;其实只…

服务器上安装虚拟机以及编译FastDDS以及ShapesDemo开源项目

&#x1f941;作者&#xff1a; 华丞臧 &#x1f4d5;​​​​专栏&#xff1a;【C】 各位读者老爷如果觉得博主写的不错&#xff0c;请诸位多多支持(点赞收藏关注)。如果有错误的地方&#xff0c;欢迎在评论区指出。 推荐一款刷题网站 &#x1f449;LeetCode 文章目录 前言一、…

namecheap 域名服务器 设置为Cloudflare

Namecheap 设置 自定义 域名服务器 登录Namecheap 帐户。进入后&#xff0c;将鼠标悬停在页面右上角的“帐户”选项上&#xff0c;然后选择“域列表”或选择左侧边栏中的“域列表” 参考 如何在 Cloudflare 帐户中域设置 DNS 记录

Simulink中Selector的使用

文章目录 0.prolog1 Starting and ending indices (port)2. Starting index (port)3. Starting index (dialog)4. Index vector (dialog)5. Index vector (port)Reference 0.prolog Index mode有两种&#xff0c;[one-based, zero-based]&#xff0c;分别是从1开始计数&#x…

波函数:描述量子世界的数学工具

亲爱的读者&#xff0c; 欢迎回到我们的量子力学系列文章。在前两篇文章中&#xff0c;我们介绍了量子力学的起源和基本概念。今天&#xff0c;我们将深入探讨量子力学的核心数学工具——波函数。 波函数是量子力学中的关键概念&#xff0c;它描述了一个量子系统的状态。波函…

Java转Go:java开发者转学go语言,请给我一些建议和学习推荐

在做开发时遇到最无理的需求就是部门没了&#x1f602; 目录 做开发时你遇到最无理的需求是什么&#xff1f;方向一&#xff1a;分享那些你遇到的无理需求方向二&#xff1a;面对这些无理需求时你是怎么做的&#xff1f;方向三&#xff1a;怎么避免遇见这些无理需求 java开发者…

赛效:怎么在线给Word文档加图片水印

1&#xff1a;在电脑网页上打开云组件&#xff0c;点击“Word转换”菜单里的“Word加水印&#xff08;图片&#xff09;”。 2&#xff1a;点击选择文件添加Word文档。 3&#xff1a;点击“选择水印图片”上传做水印的图片。 4&#xff1a;水印图片添加成功后可以选择水印角度&…

电商小程序开发指南:吸引并留住用户的秘诀

电商小程序作为微信生态内的新产品&#xff0c;有许多开发方面的内容需要学习&#xff0c;比如电商小程序的定位、功能、设计等。电商小程序是由商家开发并在微信平台上运行的小程序。它可以与微信公众号一起使用&#xff0c;也可以单独使用。 从传统电商到社交电商&#xff0…

24-正则表达式,应用场景

一、是什么 是一种用来匹配字符串的强有力的武器 它的设计思想是用一种描述性的语言定义一个规则&#xff0c;凡是符合规则的字符串&#xff0c;我们就认为它“匹配”了&#xff0c;否则&#xff0c;该字符串就是不合法的 在 JavaScript中&#xff0c;正则表达式也是对象&…

Spring Boot 缓存应用实践

缓存是最直接有效提升系统性能的手段之一。个人认为用好用对缓存是优秀程序员的必备基本素质。本文结合实际开发经验&#xff0c;从简单概念原理和代码入手&#xff0c;一步一步搭建一个简单的二级缓存系统。 一、通用缓存接口 1、缓存基础算法 FIFO&#xff08;First In Fir…

LVS负载均衡群集与LVS-NAT部署实战配置

文章目录 一.什么是集群1.群集的含义 二.集群使用在那个场景三.集群的分类1.负载均衡器群集2.高可用群集3.高性能运算群集 四.负载集群的架构1.第一层&#xff0c;负载调度器2.第二层&#xff0c;服务器池3.第三层&#xff0c;共享存储 五.负载均衡集群的工作模式1.地址转换 &a…

STM32中static和extern的用法

static&#xff1a; A. static变量 称为静态变量。根据变量的类型可以分为静态局部变量和静态全程变量。 1. 静态局部变量 它与局部变量的区别在于: 在函数退出时, 这个变量始终存在, 但不能被其它 函数使用, 当再次进入该函数时, 将保存上次的结果。其它与局部变量一样。…

记一次自建靶场三层代理内网渗透过程

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓ 01 向日葵RCE外网突破02 Frp内网隧道搭建03 获取域内出网主机权限04 三层隧道搭建访问内网不出网主机 01 向日葵RCE外网突破 端口扫描探测存活端口&#xff0c;发现存在172.16.16.128:49773端口 访问…

【RPC】—Protobuf编码原理

Protobuf编码原理 ⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ Spring专栏&#x1f449;https://blog.csdn.net/weixin_53580595/category_12279588.html SpringMVC专…

【跨域认证】详解JWT,JWT是什么?

JSON Web Token&#xff08;缩写 JWT&#xff09;是目前最流行的跨域认证解决方案&#xff0c;本文介绍它的原理和用法。 一、跨域认证的问题 互联网服务离不开用户认证。一般流程是下面这样。 1、用户向服务器发送用户名和密码。 2、服务器验证通过后&#xff0c;在当前对话&…

[SSM]MyBatis使用javassist生成类和接口代理机制

目录 六、使用javassist生成类 6.1Javassist的使用 6.2使用Javassist生成DaoImpl类 七、MyBatis中接口代理机制及使用 7.1在之前的web应用中使用接口代理机制 7.2使用接口代理机制完成之前的CRUD(部分代码) 六、使用javassist生成类 6.1Javassist的使用 引入javassist依…