2017-06-13 9 views
0

以下の機能を使用して領収書を確認します。ご覧のように、サンドボックスURLは、ストアに送信する前に再テストをテストするために使用しました。私が学びたいことはこれです:私が提出する前に、私はstoreUrlセクションに何を書きますか?そのURLにアクセスするにはどうすればよいですか?私の研究によると、サーバーのアドレスなどを入れておく必要がありますが、提出したい製品は非消耗品なので、サーバーはありません。App Storeでのアプリ内購入の領収書の確認

func verifyReciept (transaction : SKPaymentTransaction?) { 

     let recieptURL = Bundle.main.appStoreReceiptURL! 
     if let reciept = NSData(contentsOf: recieptURL){ 
      let requestContents = ["receipt-data" : reciept.base64EncodedString(options: NSData.Base64EncodingOptions(rawValue:0))] 

      do { 

       let requestData = try JSONSerialization.data(withJSONObject: requestContents, options: JSONSerialization.WritingOptions(rawValue : 0)) 

       let storeURL = NSURL(string: "https:/sandbox.itunes.apple.com/verifyReceipt") 
       let request = NSMutableURLRequest(url: storeURL! as URL) 
       request.httpMethod = "Post" 
       request.httpBody = requestData 

       let session = URLSession.shared 
       let task = session.dataTask(with: request as URLRequest, completionHandler: { (responseData: Data?, response : URLResponse?, error : Error?) -> Void in 

       do { 
       let json = try JSONSerialization.jsonObject(with: responseData!, options: .mutableLeaves) as! NSDictionary 
        print(json) 

        if(json.object(forKey: "status") as! NSNumber) == 0 { 

         let receipt_dict = json["receipt"] as! NSDictionary 
         if let purchases = receipt_dict["in_app"] as? NSArray { 
          self.validatePurchaseArray(purchases: purchases) 
         } 
         if transaction != nil { 
          SKPaymentQueue.default().finishTransaction(transaction!) 
         } 
        } 

        else { 
        print(json.object(forKey: "status") as! NSNumber) 

        } 

       } 

       catch{ 
        print(error) 

        } 
       }) 

       task.resume() 

      } catch { 

       print(error) 
      } 
     } 
     else { 

      print("No Reciept") 
     } 

    } 

答えて

2

あなたは領収書を検証するためのprod URLでそれを置き換える必要があります。

"https://buy.itunes.apple.com/verifyReceipt" 

をあなたがあなたのサーバーが関与について話している事は、あなたが取ることができ、追加の尺度です。サーバー側の検証では、サーバーに領収書を送信し、サーバーからこの同じ機能を実行する必要があります。

+0

ありがとう私はあなたに調査し、同意するソリューション。 –

関連する問題