微信卡券Code解码问题

时间:2022-08-30 00:22:51
通过wx.chooseCard选择卡券后,获取到encrypt_code,调用解码接口解码Code时总是失败,返回如下:
errcode: 40075
errmsg: invalid encrypt code hint: [U77xuA0696ent3]

14 个解决方案

#1


通常都是"+"号被转成空格了 微信卡券Code解码问题

#2


是不是转码的问题

#3


没有“+”也不行,再说我都用encodeURIComponent把参数处理了,还是不行,同样的错误!大家有调用成功的吗?

#4


引用 3 楼 lxy_nasca 的回复:
没有“+”也不行,再说我都用encodeURIComponent把参数处理了,还是不行,同样的错误!大家有调用成功的吗?


你把你encodeURIComponent过的参数输出看看 那串encrypt_code没有'+'号 就是加号被转成空格了


#5


引用 4 楼 q81999008 的回复:
Quote: 引用 3 楼 lxy_nasca 的回复:

没有“+”也不行,再说我都用encodeURIComponent把参数处理了,还是不行,同样的错误!大家有调用成功的吗?


你把你encodeURIComponent过的参数输出看看 那串encrypt_code没有'+'号 就是加号被转成空格了



输出了,"+"都已变成%2B

#6


引用 5 楼 lxy_nasca 的回复:
Quote: 引用 4 楼 q81999008 的回复:

Quote: 引用 3 楼 lxy_nasca 的回复:

没有“+”也不行,再说我都用encodeURIComponent把参数处理了,还是不行,同样的错误!大家有调用成功的吗?


你把你encodeURIComponent过的参数输出看看 那串encrypt_code没有'+'号 就是加号被转成空格了



输出了,"+"都已变成%2B


那就别用encodeURIComponent了
直接post
{"encrypt_code":"axasfqw+_xasda++Asxas1515"}// 像这样
过去请求微信解码

#7


那就别用encodeURIComponent了
直接post
{"encrypt_code":"axasfqw+_xasda++Asxas1515"}// 像这样
过去请求微信解码

最早就是直接post的,没使用encodeURIComponent,也不行

#8


看来是无解了,唉!

#9


我这里和你说的 是一样的做法啊。

我觉得还是你检查一下你最后传递给微信的那个json字符串吧,可能呢是由于最后你拼接的时候 多了一个空格符  造成了数据问题。
之前我也是有过这样的错误。  不常逛贴吧  若要讨论  还请加QQ  247546670

#10


遇到同样问题的求救

#11


遇到与楼主同样的问题之外,还有另外一个:

查看demo的js代码中发现应通过以下地址来获取真正的code,但ajax无法跨域获取(至少以下地址根本不支持跨域取值)
http://203.195.235.76/jssdk/decrypt_code.php?code=

所以即使楼主的问题解决了,如何获取真正的code呢?腾讯压根没提供decrypt_code.php的源码,文档中也没有一处提到解码算法,真他妈的操蛋,不知道大神们是如何做卡券的?望指教

#12


大神都那里去了啊?????

#13


你是直接点击进去,然后把地址给复制下来的吧?
如果是的那你把复制下来的URL进行一次DECODE,这样拿到的才是你真正加密的一个CODE码
http://tool.chinaz.com/Tools/URLEncode.aspx

之前我弄的时候做了一个总结,里面有提到这点:
http://blog.csdn.net/u011738153/article/details/50457167

我贴出一部分:
4、卡卷核销:
通过卡卷跳转到外部链接会拼上参数:
card_id=p-yZQwrZrQemMhqVYQLtkoYktA-E
encrypt_code=pd0vTUHSHc9tMUCL2gXABcUmINm6yxqJh0y9Phsy63E%3D
openid=o-yZQwhCG1_x9bM52-y4pF69Fwgc
如:http://m.j1.com/?card_id=p-yZQwrZrQemMhqVYQLtkoYktA-E&encrypt_code=pd0vTUHSHc9tMUCL2gXABcUmINm6yxqJh0y9Phsy63E%3D&openid=o-yZQwhCG1_x9bM52-y4pF69Fwgc


在线解密卡卷接口:https://api.weixin.qq.com/card/code/decrypt?access_token=TOKEN
参数(注:直接从URL中拷贝出来记得进行DECODE解码):
{
  "encrypt_code":"pd0vTUHSHc9tMUCL2gXABcUmINm6yxqJh0y9Phsy63E="
}
返回:
 {
  "errcode":0,
  "errmsg":"ok",
  "code":"751234212312" //解密后真实CODE
  }
  
核销接口:
https://api.weixin.qq.com/card/code/consume?access_token=TOKEN
{
  "code": "ZYF670F61E",
  "card_id": "p-yZQwhITydjFEBGnbJUA37uPy7A"
}

#14


我晕。。这么老的帖子都让翻了出来

#1


通常都是"+"号被转成空格了 微信卡券Code解码问题

#2


是不是转码的问题

#3


没有“+”也不行,再说我都用encodeURIComponent把参数处理了,还是不行,同样的错误!大家有调用成功的吗?

#4


引用 3 楼 lxy_nasca 的回复:
没有“+”也不行,再说我都用encodeURIComponent把参数处理了,还是不行,同样的错误!大家有调用成功的吗?


你把你encodeURIComponent过的参数输出看看 那串encrypt_code没有'+'号 就是加号被转成空格了


#5


引用 4 楼 q81999008 的回复:
Quote: 引用 3 楼 lxy_nasca 的回复:

没有“+”也不行,再说我都用encodeURIComponent把参数处理了,还是不行,同样的错误!大家有调用成功的吗?


你把你encodeURIComponent过的参数输出看看 那串encrypt_code没有'+'号 就是加号被转成空格了



输出了,"+"都已变成%2B

#6


引用 5 楼 lxy_nasca 的回复:
Quote: 引用 4 楼 q81999008 的回复:

Quote: 引用 3 楼 lxy_nasca 的回复:

没有“+”也不行,再说我都用encodeURIComponent把参数处理了,还是不行,同样的错误!大家有调用成功的吗?


你把你encodeURIComponent过的参数输出看看 那串encrypt_code没有'+'号 就是加号被转成空格了



输出了,"+"都已变成%2B


那就别用encodeURIComponent了
直接post
{"encrypt_code":"axasfqw+_xasda++Asxas1515"}// 像这样
过去请求微信解码

#7


那就别用encodeURIComponent了
直接post
{"encrypt_code":"axasfqw+_xasda++Asxas1515"}// 像这样
过去请求微信解码

最早就是直接post的,没使用encodeURIComponent,也不行

#8


看来是无解了,唉!

#9


我这里和你说的 是一样的做法啊。

我觉得还是你检查一下你最后传递给微信的那个json字符串吧,可能呢是由于最后你拼接的时候 多了一个空格符  造成了数据问题。
之前我也是有过这样的错误。  不常逛贴吧  若要讨论  还请加QQ  247546670

#10


遇到同样问题的求救

#11


遇到与楼主同样的问题之外,还有另外一个:

查看demo的js代码中发现应通过以下地址来获取真正的code,但ajax无法跨域获取(至少以下地址根本不支持跨域取值)
http://203.195.235.76/jssdk/decrypt_code.php?code=

所以即使楼主的问题解决了,如何获取真正的code呢?腾讯压根没提供decrypt_code.php的源码,文档中也没有一处提到解码算法,真他妈的操蛋,不知道大神们是如何做卡券的?望指教

#12


大神都那里去了啊?????

#13


你是直接点击进去,然后把地址给复制下来的吧?
如果是的那你把复制下来的URL进行一次DECODE,这样拿到的才是你真正加密的一个CODE码
http://tool.chinaz.com/Tools/URLEncode.aspx

之前我弄的时候做了一个总结,里面有提到这点:
http://blog.csdn.net/u011738153/article/details/50457167

我贴出一部分:
4、卡卷核销:
通过卡卷跳转到外部链接会拼上参数:
card_id=p-yZQwrZrQemMhqVYQLtkoYktA-E
encrypt_code=pd0vTUHSHc9tMUCL2gXABcUmINm6yxqJh0y9Phsy63E%3D
openid=o-yZQwhCG1_x9bM52-y4pF69Fwgc
如:http://m.j1.com/?card_id=p-yZQwrZrQemMhqVYQLtkoYktA-E&encrypt_code=pd0vTUHSHc9tMUCL2gXABcUmINm6yxqJh0y9Phsy63E%3D&openid=o-yZQwhCG1_x9bM52-y4pF69Fwgc


在线解密卡卷接口:https://api.weixin.qq.com/card/code/decrypt?access_token=TOKEN
参数(注:直接从URL中拷贝出来记得进行DECODE解码):
{
  "encrypt_code":"pd0vTUHSHc9tMUCL2gXABcUmINm6yxqJh0y9Phsy63E="
}
返回:
 {
  "errcode":0,
  "errmsg":"ok",
  "code":"751234212312" //解密后真实CODE
  }
  
核销接口:
https://api.weixin.qq.com/card/code/consume?access_token=TOKEN
{
  "code": "ZYF670F61E",
  "card_id": "p-yZQwhITydjFEBGnbJUA37uPy7A"
}

#14


我晕。。这么老的帖子都让翻了出来