iOS 苹果内购验证凭证请求地址

测试地址

swift 复制代码
https://sandbox.itunes.apple.com/verifyReceipt

正式地址:

swift 复制代码
https://buy.itunes.apple.com/verifyReceipt

示例

swift 复制代码
import Foundation

class InAppPurchaseManager {
    
    static let shared = InAppPurchaseManager()
    
    private let verifyURL = URL(string: "https://buy.itunes.apple.com/verifyReceipt")! // 苹果正式环境验证地址
    
    func verifyReceipt(receiptData: Data, completion: @escaping (Bool) -> Void) {
        let receiptString = receiptData.base64EncodedString(options: [])
        let parameters = ["receipt-data": receiptString]
        
        guard let jsonData = try? JSONSerialization.data(withJSONObject: parameters, options: []) else {
            completion(false)
            return
        }
        
        var request = URLRequest(url: verifyURL)
        request.httpMethod = "POST"
        request.setValue("application/json", forHTTPHeaderField: "Content-Type")
        request.httpBody = jsonData
        
        let task = URLSession.shared.dataTask(with: request) { data, response, error in
            guard let data = data,
                  let httpResponse = response as? HTTPURLResponse,
                  error == nil,
                  httpResponse.statusCode == 200 else {
                completion(false)
                return
            }
            
            do {
                // 解析服务器返回的数据
                let jsonResponse = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
                
                // 检查验证结果
                if let status = jsonResponse?["status"] as? Int, status == 0 {
                    // 验证成功
                    completion(true)
                } else {
                    // 验证失败
                    completion(false)
                }
            } catch {
                // JSON 解析失败
                completion(false)
            }
        }
        
        task.resume()
    }
}
相关推荐
_瑞1 小时前
深入理解灵动岛
前端·ios·app
黑科技iOS上架3 小时前
分享一个开源的iOS应用AppIcon生成器
经验分享·ios
wabil1 天前
【LVGL】滑动切换页面的界面优化实践
开发语言·ios·swift
威武的花瓣1 天前
调用Page.RegisterAsyncTask()的异步页
ios·iphone
Digitally2 天前
5 种简易方法:摩托罗拉手机数据迁移至 iPhone 17
ios·智能手机·iphone
EricStone4 天前
VibeCoding工程流程学习二:iOS项目架构
ios·vibecoding
天桥吴彦祖6 天前
判断iOS如何监听手机屏幕是否锁屏
ios
敲代码的鱼7 天前
PDF 预览与签名批注写回 支持安卓 iOS 鸿蒙 UTS插件
android·前端·ios
时光足迹7 天前
uni-app 视频通话实战:康复师与患者视频问诊的 6 个致命 Bug 与解决方案
android·ios·uni-app
时光足迹7 天前
JPush UniApp UTS 插件完全参考手册:API、事件与厂商通道一网打尽
vue.js·ios·uni-app