2017-04-11 155 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

解决。

相关问题