2011-07-01 46 views
2

我開發了一個被拒絕的iPhone應用程序。有了這個應用程序,我提供了一個SMS傳輸服務在我的網站上,每個用戶都有一個賬戶,他可以在網站上購買信用卡以發送短信。如何爲應用內購買開發支付驗證?

拒絕的原因是我的應用使用外部服務,即我的網站。他們說我必須使用應用程序內購買的信用。

所以現在我要擴大我的api了。因此,如果購買發生在應用程序中,網絡服務器需要知道有購買和購買什麼類型。這是使用HTTP-POST完成的。

我可以構建一個簡單的URL並在用戶帳戶中註冊購買,因爲我可以驗證購買在應用商店中是否正確執行。但爲了防止黑客入侵併僅出於安全原因,我認爲必須進行某種加密。

E.g.如果應用程序中的付款流程成功,我會發送一個HTTP-POST到我的網絡服務器。它包含一些可以通過網絡服務器加密的加密密鑰。

你對這一切有什麼看法?如何使我的api在應用內購買時更安全,我可以使用哪種安全算法?

其他建議或意見?

回答

6

您應該看看Server Product Model,而不是試圖發明某種方式爲您的設備上的應用程序告訴服務器,信用是事後購買的。 Verifying Store Receipts的部分將派上用場;簡而言之,您的應用將transactionReceipt的內容傳輸到您的服務器(理想情況下通過HTTPS)。您的服務器使用base64對其進行編碼,將其嵌入到一個簡單的JSON對象中,並將其發佈到Apple以獲取狀態和驗證的購買信息。

-1

是的你是對的。這是最好的方法。當用戶使用應用程序內購買(IAP)購買功勞時您將擁有購買成功的委託方法。所以你可以在這個委託方法中調用你的服務器API,並在服務器數據庫的用戶表中放入一些帶有信用號的標誌。你可以發送這個信息加密,你的服務器將解密它並插入你的數據庫。

1

你應該看看這個wiki文章public key encryption。這就是你將要使用的東西。

CommonCrypto是適用於iOS的模塊,用於處理此類加密。以下是使用此模塊的iOS開發人員庫中的sample project