2009-10-04 19 views
4

當交易完成時,我收到了應用程序存儲的已記錄交易的收據,並且我想詢問蘋果的服務器是否該收據有效。IPHONE應用內購買:是否可以在不使用外部服務器的情況下驗證收據?

有沒有辦法做到這一點沒有使用外部服務器

+0

@everyone:我想他想直接從手機上聯繫Apple的服務器,而不是聯繫外部服務器,而外部服務器又會聯繫Apple。這可能嗎? – pt2ph8 2011-02-01 13:36:16

回答

1

本案解決。有可能只使用iphone來做到這一點。

+0

只有在有效的情況下,您才能確認收款是否真實,而不詢問Apple。在這裏工作有兩個非常不同的概念,你的問題含糊不清,並不是很有幫助。 – 2009-10-07 04:23:44

+0

...等等...怎麼樣? – meronix 2011-02-08 07:21:09

6

我想問問蘋果的服務器,如果這個收據是有效的。

有沒有辦法做到這一點,而不使用外部服務器?

也許這只是我,但好像你要求聯繫服務器而不聯繫服務器,這恐怕是不可能的。

+3

我想他想直接從手機上聯繫Apple的服務器,而不是聯繫外部服務器,而外部服務器又會聯繫Apple。這可能嗎? – pt2ph8 2011-02-01 13:35:56

2

據我所知,有蘋果公司提供一些JSON服務:

一個用於在應用程序沙箱(提交前):
https://sandbox.itunes.apple.com/verifyReceipt

一個爲App Store版本:
https://buy.itunes.apple.com/verifyReceipt

你可以打電話給他們發送您的收據:

{ 
    "receipt-data" : "(actual receipt bytes here)" 
}

,並返回了答案:

{ 
    "status" : 0, 
    "receipt" : { ... } 
}

我想你可以對服務的直接調用你的iPhone應用程序中也可以調用,作爲一個代理蘋果的服務工作,在自己的服務器腳本。這取決於你的應用邏輯。如果您需要檢查服務器上的收據(IE。授權下載),則應該調用您的服務器腳本,否則可以直接從應用程序驗證收據。

文檔參考: http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/VerifyingStoreReceipts/VerifyingStoreReceipts.html

1

澄清:

  • 只有蘋果的服務器可以提供約 交易收據有效性的信息。事實上,您必須聯繫此服務器,甚至只需要 以查明產品是否仍處於活動狀態(或者用戶是否已取消訂購 )。
  • 在網絡上,您會發現 根本不是或者至少沒有任何安全的方式可以通過HTTP-POST將您的應用程序與此Apple服務器聯繫。 大家似乎都相信,你需要有一個網絡服務器,其中 與你的應用程序聯繫,並且你應該只從Web服務器聯繫Apple的 服務器。

蘋果,但是,即使提供了實現代碼(我想我已經發現,更早)就如何驗證服務器安全地接觸,而另一臺Web服務器之間: http://developer.apple.com/library/ios/#releasenotes/StoreKit/IAP_ReceiptValidation/_index.html 這實現類似於lomanf提到什麼,只是更詳細地介紹了所有需要的安全性,即使在iOS 5.x下也能正常工作。 所以答案是絕對的:是的。

相關問題