微信卡券开发错误自排查参考文档

来源:互联网 发布:立项依据怎么写 知乎 编辑:程序博客网 时间:2024/04/26 19:23

 微信卡券开发错误自排查参考文档

 

 

 

目录

微信卡券开发者错误排查文档...1

Part.1常见错误...3

1.1接入指引...3

1.2卡券创建...4

1.3卡券投放...5

1.4卡券核销...8

Part.2常见疑问...9

Part.3错误返回码释义...11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Part.1接入问题

 

1.1接入指引

 

Q1:为什么公众号之前有申请自定义SN号权限入口,现在没有了?

A:现在开通卡券权限默认为开通SN权限,所以现在已经无需申请了。 

 

Q2:如何开通储值卡权限?

A:  储值卡(如有储值功能的会员卡),需提交预付卡备案,待审核通过后,获得储值权限,具体说明详见:

https://mp.weixin.qq.com/cgi-bin/frame?t=cardticket/apply_prepaid_frame&lang=zh_CN&token=1596050821 。

Q3 : 配置JS API域名(不审核,配置即生效)的规则是什么?

由于部分商户测试环境不能使用正式域名,因此,给予商户修改一次域名的机会。

请确定域名后再进行线上配置。配置前请仔细阅读卡券接口文档(添加到卡包JSAPI接口)的相关说明,确保申请格式(ip地址无效)无误,且在调用该域名下的url时,需添加参数wechat_card_js=1。

若联调中有问题,请先参考后面的调试案例,一般存在的问题为:字段拼写错误、签名错误、未加指定参数等。

Q4 : 微信卡券的使用流程是什么呢?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.2卡券创建

类型

错误案例

问题所在

排错方法

 

 

 

 

 

 创建卡券

{48001,api unauthorzied}

创建卡券返回提示未授权

API 无权限: ①未申请开通卡券功能权限 ②使用错误的appid  ③access_token已失效

 

 

可以直接粘贴Wiki上的示例代码请求一次,如果成功则以一比对排错

{47001,data format error}

创建卡券返回提示格式错误

时间类型字段填写错误:①type 1或2仅支持填写相应专属字段,详情见文档 ②更新后的时间类型为DATE_TYPE_FIX_TIME_RANGE和 DATE_TYPE_FIX_TERM,分别对应type1和type2,为字符串类型

missing required fields! please check document and request json!

创建时提示字段缺失

缺失或者错误填写了必填参数,hint后面为缺少字段,请对照文档必填字段要求进行排查

{"errcode": 47001,

  "errmsg": "data format error  hints: Error before

POST数据格式错误,出错点在error before之前,请对照文档排查

 

 

 

1.3卡券投放

类型

错误案例

问题所在

排错方法

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

创建二维码

创建卡券二维码提示成功,但是扫描二维码之后却是公众号二维码

错将生成带参数二维码链接当成生成卡券二维码链接使用

1.https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN带参数二维码生成链接

2.https://api.weixin.qq.com/card/qrcode/create?access_token=TOKEN卡券二维码生成链接

 

 

可以直接粘贴Wiki上的示例代码和请求链接,如果成功则以一比对排错

Invalid action name

 

错将action name“QR_CARD“写成“QR_CODE”

invalid action info

 

1.该card_id创建时的属性和生成二维码时填写的不匹配,例如创建时为非自定义code,生成二维码时填写了自定义code;创建没有bind_openid生成时传入openid 2.创建卡券时某些字段填写错误,常见为canshare不是字符串,不要加“”。

 

 

调用查询卡券详情接口对比创建二维码字段和创建卡券字段是否对齐

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSSDK投放

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSSDK投放

 

为了提高用户成功领取卡券几率,建议原来用batchaddcard方法投放卡券的开发者改为采用wx.addcard的方法在H5页面拉起卡券,该方法拉起成功率更高更加稳定

invalid url domain

当前页面域名未与JS安全域名做绑定

 

 

 

 

 

 

 

 

详情查阅WIKIJSSDK部分附录5

并开启debug模式

invalid signature

  1. 确认签名算法正确,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验。
  2. 确认config中nonceStr(js中驼峰标准大写S), timestamp与用以签名中的对应noncestr, timestamp一致。
  3. 确认url是页面完整的url(请在当前页面alert(location.href.split('#')[0])确认),包括'http(s)://'部分,以及'?'后面的GET参数部分,但不包括'#'hash后面的部分。
  4. 确认 config 中的 appid 与用来获取 jsapi_ticket 的 appid 一致。
  5. 确保一定缓存access_token和jsapi_ticket。
  6. 确保你获取用来签名的url是动态获取的,动态页面可参见实例代码中php的实现方式。如果是html的静态页面在前端通过ajaxurl传到后台签名,前端需要用js获取当前页面除去'#'hash部分的链接(可用location.href.split('#')[0]获取,而且需要encodeURIComponent),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败

 

页面提示the permission value is offline verifying

config没有正确执行,或者是调用的JSAPI没有传入config的jsApiList参数中。建议按如下顺序检查:

  1. 确认config正确通过。
  2. 如果是在页面加载好时就调用了JSAPI,则必须写在wx.ready的回调中。
  3. 确认config的jsApiList参数包含了这个JSAPI。

 

领取页面提示permission denied

该公众号没有权限使用这个JSAPI,或者是调用的JSAPI没有传入configjsApiList参数中(部分接口需要认证之后才能使用)

领取页面提示未生效

未设置领取用户白名单

通过白名单接口设置白名单

领取页面提示该卡券未经制方授权,不可领取

①    A商家的卡券违规在B商家公众号内投放

请按照规则投放,目前微信限制在公众号环境下只允许在制券方公众号内投放该卡券(参与卡券互通项目的除外)

领取页面提示参数错误

①   未设置用户白名单②自定义code超过20

②   cardext中参数格式错误

强烈建议仔细查看card_ext参数说明并注意参数类型

按照要求进行传递参数

(比如自定义code或者设定了bind_openid的开发者必须在card_ext内传入相应参数)

领取页面提示已领完(未被领

取的卡券)

sku设置数量过少②指定openid的卡券被非指定用户领取

 

领取页面提示签名错误

1.错误将card_ext(字符串)写成object类型(导致安卓可以领取,IOS签名错误)

2.时间戳错误,比如用了多年后的时间

3.签名内参与的字段与card_ext相应字段未对齐,比如timestamp的值是否一致,签名中写入nonce_strcard_ext没有

 

强烈建议仔细查看card_ext参数说明

按照要求进行传递参数

(比如自定义code或者设定了bind_openid的开发者必须在card_ext内传入相应参数)

 

 

1.4卡券核销

类型

错误案例

问题所在

排错方法

 

核销卡券

Invalid code

无效code ①code被用户删除 ②code被转赠后失效 

调用查询code接口查看code是否为无效code,更换code后重试并确认code分配机制是否有缺陷

 

 

 

 

 

 

 

 

拉取适用门店列表卡券

JSAPI签名错误,无法拉起卡券列表

当config未通过时,可以开启debug模式并参考卡券投放中签名错误的方式排查

可以用JSAPI签名工具排错

 

 

拉起的卡券列表为空

①卡券签名错误:可以用卡券签名debug工具排除这种错误

②筛选条件错误:请确认用户卡包内的卡券类型和门店与筛选条件中的card_type和shopid一致,比如用户只有团购券但是筛选条件card_type没有填入groupon则就无法拉到用户的卡券

可以用卡券签名debug工具进行排错,另外需要特别注意的是在签名

 

 

Part.2常见疑问

Q1:要投放一种“50元XX团购券”是否需要调用创建卡券接口生成很多card_id供用户领取?

A1:card_id对应了一类卡券,即“50元XX团购券”只用创建一个card_id,在创建时需要设置可被领取的库存,每位用户领取到的是该card_id下的一个code。

Q2:调用删除接口删除某张card_id后调用查询卡券接口仍能查到?

A2:删除卡券后用户无法再领取该ID的卡券,但已发被领取的卡券依旧有效,所以通过查询接口仍可查询到被删的卡券。

Q3:创建卡券中canshare和givebyfriend字段的区别?

A3:canshare字段控制是否可以分享原生领取页面,givebyfriend控制是否能够转赠已领取的卡券。

Q4:关于创建卡券接口Color字段:颜色值有哪些,是否可以不调接口,直接指定(金色和银色)?

A4:目前支持十种色值,可调用1.4获取颜色列表,后续会将颜色列表展示在MP平台。

Q5:custom_url: 商户自定义url地址(非必填) ,如何定义,在这个接口定义这个参数用途是什么?

A5:url_name_type、custom_url是组合使用的字段,用于支持商家功能的扩展,可在卡券页面内设置自定义cell,url_name_type定义名称类型,custom_url定义点击后跳转的url。

Q6:关于推送卡券包信息通知接口,创建卡券审核通过后,是否微信自动发送?

A6:审核通过后会有事件推送,再由商户选择投放方式,见4.5.1 审核通过事件推送。

Q7:领取卡券事件推送,是否只有当用户领取卡券才会推送,转赠等其他操作是否推送。

A7:转赠被领取后,会推送领取人和赠送的openid以及该卡券的code,详情见4.5.2 领取卡券事件推送。

Q8:自定义code的长度限制和规则?

A8:自定义code长度限制为20个字符以内,为字符串格式。

Part.3错误返回码释义

 

返回码

说明

常见错误

-1

系统繁忙,此时请开发者稍候再试。

无权限或者频繁调用超过调用次数

0

请求成功

OK

40009

图片文件超长。

 

40013

不合法的Appid,请开发者检查

AppID的正确性,避免异常字符,注意大小写。

 

40053

不合法的actioninfo,请开发者确认参数正确。

1.       确认请求链接是否正确

2.       确认action name是否正确

40071

不合法的卡券类型。

1.       卡券类型与结构体名不一致

2.       卡券类型与特有字段不对应

40072

不合法的编码方式。

 

40078

不合法的卡券状态。

卡券处于转赠删除或者失效状态

40079

不合法的时间。

卡券未到有效期

40080

不合法的CardExt

1.       card_ext缺乏关键必填参数

2.       card_ext格式错误

40099

卡券已被核销。

 

40100

不合法的时间区间。

时间戳错误

40116

不合法的Code码。

 

40122

不合法的库存数量。

 

40124

会员卡设置查过限制的

custom_field字段。

设置超过2个以上的custom_field

 

40127

卡券被用户删除或转赠中。

 

41012

缺少cardid参数。

 

45030

cardid无接口权限。

 

45031

库存为0

 

45033

用户领取次数超过限制get_limit

 

41011

缺少必填字段。

 

45021

字段超过长度限制,请参考相应接口

的字段说明。

 

 

40056

不合法的Code码。

 

43010

无储值权限,请前往公众平台申请。

需要开通处置权限

更多返回码错误,参考全局返回码

0 0
原创粉丝点击