且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

iOS 8,Swift,IAP的收据验证

更新时间:2023-02-03 09:21:26

所以。您的问题很简单。您可以在响应标头上看到正文。观看数据。代替 response 方法,***使用 .responseJSON(options:[],completeHandler:)方法,请参见我的代码

So. You problem is simple. You watch on response header instead body. Watch data. Also instead response method better use .responseJSON(options: [], completionHandler:) method, see my code

func validateReceipt() {
    if let receipt =  NSBundle.mainBundle().appStoreReceiptURL {
        if let data = NSData(contentsOfURL: receipt) {
            let requestContents:[String:String] = ["receipt-data":data.base64EncodedStringWithOptions([]), "password": "YOU_SHARED_SECRET"]
            let requestData = try! NSJSONSerialization.dataWithJSONObject(requestContents,options: [])
            let request = NSMutableURLRequest(URL: NSURL(string: "https://sandbox.itunes.apple.com/verifyReceipt")!)
            request.HTTPMethod = "POST"
            request.HTTPBody = requestData
            let (param, _) = Alamofire.ParameterEncoding.URL.encode(request, parameters: nil)

            Alamofire.request(param)
                .responseJSON(options: [], completionHandler: { (result) -> Void in
                    print(result)
                })
        }
    }
}