场景描述:
- 在官方的微信支付商户平台创建代金券(总数100,每人限领50,每天不限制)
- 未开启防刷(两个都未开启)
- 并发调用5个发券接口,成功发券两个,三个返回RULE_LIMIT用户已达最大领券次数(重复此操作又可以成功发放两个,三个失败)
- 改为每组并发两个,分三组顺次调用,即等待前一组全部返回后发出下一组调用,情况略好
- 若顺次调用5个发券接口,即等待前次调用返回后发出下次调用,则全部成功发放(重复此操作依然成功发放五个)
- 顺次调用20个发券接口也全部成功
- 使用多个微信帐号测试结果一致
待确认的疑问:
- 返回的错误显然不符合事实,是因为API服务有强制防刷还是什么原因导致的?
- 一次发券数量较多时顺次调用必然导致等待时间较长,官方有没有相关的建议?
文档 https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/marketing/convention/chapter3_2.shtml 上有写两个条件:
RULE_LIMIT 返回应该是match上服务端的第二条了;对于发送失败的,接口支持幂等重入(即入参完全一致)可以尝试重发,直至达制券规则限制(50张);
非官方建议是,尽量顺序发。
什么场景会一张券同一用户去领50次?