2017-04-11 157 views
0

使用:App Store裏應用程序內購買訂閱驗證失敗

如需購買: 反應,本機應用程序內-utils的

進行驗證: IAP-收據驗證

成功購買訂閱後,我想在每次用戶輸入應用程序時驗證它。

receiptData返回正確的收據字符串。

InAppUtils.receiptData((error, receiptData)=> { 
      if(error) { 
      } else { 
       IOSReceiptValidator.validate(receiptData).then(function (result) { 
       }).catch(function (error) { 
       }); 
      } 
     }); 

IOSReceiptValidator:

static async validate(receiptData) { 
     try { 
      const validationData = await validateReceipt(receiptData); 
      console.log(validationData); 
     } catch(err) { 
      console.log(err.valid, err.error, err.message) // Here is the error 
     } 
    } 

驗證失敗,每一次,

錯誤:

「無法執行 'readAsText' 上 '的FileReader' :參數1 i不是'Blob'類型的。「

我試圖尋找與我正在使用的庫的其他問題,但沒有發現問題。 我不確定,但可能與Chrome上的調試有關? (在真實的設備上,只需在Chrome中調試) 任何人有任何想法?

謝謝。

回答

0

如果有人面臨同樣的問題,我已經使用「react-native-fetch-blob」來解決這個問題。

POST到這個網址:

const url = isProduction ? "https://buy.itunes.apple.com/verifyReceipt" : "https://sandbox.itunes.apple.com/verifyReceipt"; 

隨着內容:

{"receipt-data": receiptData, password: password} 

並等待響應0進行驗證。

如這裏記載: https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html

解決。

相關問題