2013-01-09 126 views
2

客戶端應用程序成功執行應用內購買並從iTunes接收收據。然後,客戶端將此收據發送給服務器,服務器將與Apple進行驗證,如果成功,則會爲客戶端解鎖一些內容。Apple In-App-Purchase收據驗證

是否可以在IAP採購申請中插入額外數據,以便收貨或收貨驗證包含此值?

A receipt to help explain

我試圖阻止人在這方面的中間人/包嗅探式劈如果有人發現另一個人的收據,並驗證其對我的服務器,如何服務器知道這個收據不是由這個產生的,驗證的人?

從蘋果的IAP documentation驗證響應中有一些值返回。是否有可能使用version_external_identifier值?它有什麼用途或價值?

感謝

回答

0

version_external_identifier 唯一標識您的應用程序的版本的任意數量。此密鑰在沙箱創建的收據中缺失。

這真的回答你的問題;它是確定您的應用程序對購買進行了哪些修訂的一種方式。您可以擁有相同的版本號,但可以有多個修訂版,並且這可以支持那個和IAP。

是否可以在IAP購買請求中插入額外的數據,以便收據或收據驗證包含此值?

最終,沒有。蘋果公司掌握收據及其內容。如果您按照文檔中的指導進行操作(請參閱this以瞭解更多信息以及您發佈的鏈接),您可以對付中間人攻擊的人(Apple會考慮這一點)。確保連接到您的服務器和Apple是HTTPS。

無論如何,一個代表某人進行購買的男人反而略微不實;購買請求與Apple ID綁定,這意味着中間人需要知道他們的憑據。