PHP苹果内购二次验证的那些巨坑
最**台有出现被刷单(漏洞很大,个人感觉后端验证也很难避免)的情况,找之前认识的开发大佬问过,要做苹果内购的二次验证。。。。然后就开始了巨坑之旅
关于$receipt-data这个参数,由IOS处理以后传给服务端,前端处理时一定要注意:
IOS对receipt-data使用base64加密,转为string类型后,要对字符串中的 和 做特殊字符处理,但是千万不要对 "+" 做处理
我之前百度查到的资料都是对+做了处理,都会报错{"status":21002, "exception":"com.apple.its.drm.InvalidDrmArgumentException"}
服务端拿到IOS给的receipt-data数据,不要用json_encode直接转,需要手动拼接,不然也会报错的
我有尝试让IOS拼好json发给我,很不幸,json格式数据里的引号 '' 全都不见了。。。
如果你上面的问题都解决掉,不再报错21002而开始报错{"status":21004, "environment":"Sandbox"}
那么就去苹果开发者*台去申请这个东西作为password拼接到json里面就好了