【无标题】

IOS内购认证踩坑

苹果内购认证的逻辑很简单,支付成功后,由前端发送一个凭证给后端,后端拿着凭证请求苹果提供的认证地址,根据返回的status来判断凭证是否正确,正确的话根据前端一同传递过来的订单号,处理订单逻辑。

上述流程没什么难度,但没想到会在请求参数的问题上踩了坑,浪费了几个小时,无语至极。

问题描述

上述代码执行后,一直返回 { "status": 21002 },意思是receipt-data 格式无效(不是合法的 Base64 凭证)

一开始我以为是传递参数没有按json格式发送给接口,后面测试了其他的http组件和扩展,各种设置header的content-type,但是都没有用,依然报上面的错

问题根源

前端传递的receipt凭证是bse64字符串,本来不因该包含反斜杠的。当时前端处理时,可能对它做了json转换,这会把字符串中 / 前都追加了 反斜杠 \

而我在测试时,前端使用的是form-data方式传参,导致原样接收了被追加了很多反斜杠的错误凭证。

当前端使用json传递参数,会自动把反斜杠转义,receipt凭证就又恢复了正常,认证就通过了

相关推荐
2601_9657984734 分钟前
ForumLab Review: Fast PHP Script for SEO Forum Sites
android·adb·php
姜太小白13 小时前
【Linux】df -h 卡住问题的通用排查与解决方案总结
linux·运维·php
狗凯之家源码网16 小时前
短剧系统搭建实战:源码功能与商业变现效果全景展示
开发语言·php
连续讨伐18 小时前
php小结
开发语言·php
2601_9657984719 小时前
MTDb Movie & TV Database Script Setup, Caching, and SEO Guide
linux·服务器·数据库·php
小小代码狗21 小时前
PHP 常用函数与变量参考文档
开发语言·安全·php
看昭奚恤哭21 小时前
LWIP TCP滑动窗口为TCP ZeroWindow的解决方法
网络·tcp/ip·php
AC赳赳老秦21 小时前
CSDN 技术社区数据采集:OpenClaw 抓取公开技术热帖,生成领域技术热点周报
java·大数据·前端·数据库·python·php·openclaw
烟漠河洛1 天前
俄罗斯电商3200亿卢布疯长:跨境支付与多平台订单系统架构解析
mysql·php
wang_xin_8881 天前
PHP函数
开发语言·php