关于小程序三方平台模板列表不全的问题

使用小程序三方授权已经有段时间了,之前在小程序后台(包含通过开放平台接口:将草稿添加到模板库)将草稿箱中的模板添加到普通模板,然后再调用”获取模板列表“接口,会发现刚添加的在最下面,此时只需要获取数组当中的最后一个即可,但最近发现添加接口报错了,一查原因是普通模板最多添加200条记录,然后就想着删除最老的几条记录,然后再重新添加,这回是添加成功了,但是通过接口获取到的数组的最后一个却不是刚才添加的,百思不得其解。

如下图所示,前面添加的模板id是200,但通过接口返回的数组当中最后一条却是199,反复测试了几次,最后一个仍旧是199

小程序后台明明有的,为什么通过接口却获取不到呢,不经意间对返回的结果搜索了下,才发现刚才添加的记录是有的,既然记录存在那就好办了。

规律总结:
每次添加成功(包括通过接口和小程序后台)会生成一个模板id,这个模板id是递增的,我们只需要根据模板id倒序,然后获取第一个就可以了

此时只需要对数组按照template_id进行排序,然后再获取第一个或者最后一个即可

PHP代码如下:

$template_list = $data['template_list'];


//获取template_id
$template_ids = array_column($template_list, 'template_id');


//按照template_id倒序
array_multisort($template_ids, SORT_DESC, $template_list);


//取第一个
$template_end = array_shift($template_list);

具体原因:
当普通模板列表长度达到一定数量(如:200个)的时候,就无法将草稿箱的列表添加进去,需要删除后再添加,新添加进去的会占据原来的位置,这就是具体原因,当然微信这么做也是为了节省它的存储空间

Tagged ,