iOS 内购验证,21002

0x00

后台验证结果:

{"status":21002, "exception":"com.apple.its.drm.InvalidDrmArgumentException"}

在手机端验证

是能够返回正确数据的


21002: 收据数据不符合格式

经过对比回传参数:receipt-data

发现后台接收的数据,里面的+号,全变成了(这是一个空格)

所以,是后台的锅~


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
以下是 PHP 代码实现 iOS 内购订单验证的示例: ```php <?php // 定义 app id 和 app secret $app_id = 'your_app_id'; $app_secret = 'your_app_secret'; // 获取验证请求参数 $receipt = $_POST['receipt']; $password = $_POST['password']; // 发送验证请求到 Apple 服务器 $url = 'https://buy.itunes.apple.com/verifyReceipt'; // 正式环境 //$url = 'https://sandbox.itunes.apple.com/verifyReceipt'; // 沙盒环境 $data = json_encode(array('receipt-data' => $receipt, 'password' => $password)); $options = array( 'http' => array( 'header' => "Content-type: application/json\r\n", 'method' => 'POST', 'content' => $data ) ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); // 解析验证结果 $response = json_decode($result, true); if ($response['status'] == 0) { // 验证成功 $latest_receipt_info = $response['latest_receipt_info']; $transaction_id = $latest_receipt_info[0]['transaction_id']; $product_id = $latest_receipt_info[0]['product_id']; $purchase_date = $latest_receipt_info[0]['purchase_date']; // TODO: 在这里处理订单验证成功后的逻辑 } else { // 验证失败 $error_code = $response['status']; $error_message = $response['status_message']; // TODO: 在这里处理订单验证失败后的逻辑 } ?> ``` 以上代码中,首先定义了 app id 和 app secret,然后获取了验证请求参数 receipt 和 password,接着发送验证请求到 Apple 服务器,并解析验证结果。如果验证成功,可以获取到订单的相关信息,如 transaction_id、product_id 和 purchase_date 等,可以在这里处理订单验证成功后的逻辑;如果验证失败,可以获取到错误码和错误信息,可以在这里处理订单验证失败后的逻辑。需要注意的是,验证请求需要发送到正式环境或者沙盒环境,根据实际情况选择相应的 URL 即可。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豪冷啊

你的鼓励是对我的认可!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值