【无标题】

IOS内购认证踩坑

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

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

问题描述

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

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

问题根源

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

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

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

相关推荐
BingoGo2 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack2 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户3074596982073 天前
PHP 扩展——从入门到理解
php
鹏仔先生3 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
云水一下4 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php
xingpanvip4 天前
星盘接口开发文档:本命盘接口指南
android·开发语言·css·php·lua
酉鬼女又兒4 天前
零基础入门计算机网络运输层:端到端通信核心作用、端口号分类规则、复用分用工作机制及UDP与TCP协议全方位对比详解
网络·网络协议·tcp/ip·计算机网络·考研·udp·php
dog2504 天前
不要再继续优化 TCP
网络协议·tcp/ip·php
Channing Lewis4 天前
PHP 解析 Excel 的那些坑:一次“行号错位”引发的数据丢失
开发语言·php·excel
Cheng小攸4 天前
渗透行为分析与检测
开发语言·php