为什么生成的卡券与实际的卡券长度不一致?
为什么生成的卡券与实际的卡券长度不一致?
用户调用 youzan.trade.virtualticket.third.create.3.0.2 生成的卡券 Code 是 21 位,在用户自己的服务器上看到的和日志管理 debug 看到的都一样
但是实际上二维码识别出来的却是 20 位
答: 这是因为卡券的长度限制最大为 20 位,系统默认会对截取前 20 位作为卡券编码,因此在使用的时候需要注意,否则会导致第三方系统保存的数据与实际卡券不一致的问题。
我们可以在 YouzanTradeVirtualticketThirdCreateParams 这个类中看到解释:
public class YouzanTradeVirtualticketThirdCreateParams extends AbstractApiParams {
public static final Long serialVersionUID = 1L;
/** 统一核销码 如果长度小于20,有赞微商城则无法识别 */
@JSONField(name = "code")
private String code;
/** 券码 */
@JSONField(name = "ticket_nos")
private List<String> ticketNos;
/** orderNo,兼容方案,orderIdvsorderNo存在一个即可 */
@JSONField(name = "tid")
private String tid;