IOS支付,服务端二次验证返回21002 20C

我在前端支付后,将receipt传到java服务端进行验证,并将receipt进行了base64编码,用的是utf-8进行编码,并将编码后的结果组成json格式,key是receipt-data,value是receipt的base64编码后的字符串,验证地址是沙箱测试环境:https://sandbox.itunes.apple.com/verifyReceipt
但是始终收到结果:{"status":21002, "exception":"java.lang.IllegalArgumentException"} 请问各位大神有没有遇到过一样问题的,求大神帮忙解决

4个回答

你的jdk版本可能高了

fengge374043291
永不言败snow 是jdk版本高,base64编码可能不一样导致的吗
2 年多之前 回复
fengge374043291
永不言败snow 回复caozhy: 关键我看不懂ios的代码- -,我客户端是用的u3d,不知道这段代码什么意思
2 年多之前 回复
caozhy
回答这么多问题就耍赖把我的积分一笔勾销了 回复fengge374043291: 一样的啊,java服务器端和苹果的服务器通讯也相当于客户端
2 年多之前 回复
fengge374043291
永不言败snow 这个是ios的,我是用的java服务端,有没有解决办法呢?
2 年多之前 回复

个人认为是你base64编码的问题,网上搜一下别人的base64代码替换一下试试,如果还有问题,查看你的秘钥和公钥有没有引用错,或者是你jdk版本的问题

fengge374043291
永不言败snow base64换了两种都不行,密钥和公钥是什么啊,我这好像没有用到,望详细解答下
2 年多之前 回复

已经解决了,我用的是u3d的iap插件,客户端返回的收据receipt,里面的Payload是苹果的返回的收据并已经base64编过码的,我把整个receipt又编码了一遍

weixin_42781617
暴走丢丢 还是生成 key是receipt-data,value是receipt中的payload字符串 字典么? 能 贴下代码么?
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问