3

我在Google Play(fmr。Android Market)上放置應用,現在我正在開發應用內結算功能。 Android文檔說,您應該通過使用公鑰驗證交易簽名來做到這一點,但我想知道使用Google Checkout API檢索訂單信息會更容易。像下面這樣:使用Google Checkout驗證Android應用內購買?

老辦法

  1. 的Android客戶購買了一些產品的市場
  2. 市場上發出迴應電話的隨機數,簽名的transactionId等
  3. Android手機,或遠程服務器驗證使用隨機數(先前生成)的事務和簽名。
  4. 如果交易被驗證,購買是有效的,信貸客戶與項目。

MY WAY

  1. 的Android客戶購買了一些產品在市場上
  2. 市場發出迴應電話的隨機數,簽名的transactionId等
  3. Android手機發送請求到遠程服務器的transactionId
  4. 遠程服務器向google checkout API發送一個請求,以使用transactionid命令,並驗證事務已清除。
  5. 如果交易已被清除,信貸客戶與項目

這可能嗎?

回答

1

也許吧。儘管Google Checkout API無處不在。如果您有商戶密鑰,則應該可以使用它,但該密鑰不適用於大多數國家/地區。您將需要再聯繫一臺服務器,但聽起來它應該起作用。問題是,爲什麼你還沒有嘗試過呢?

+0

那麼,這兩種方法都變成了很多工作。我使用App Engine作爲我的遠程服務器,它沒有簡單的方法來驗證公鑰使用的簽名(m2crypto不在AE上運行,pyCrypto有問題)。 – 2012-04-07 15:43:25

+0

不知道關於生成隨機數和驗證簽名的工作很多。當然連接到谷歌結帳是更多的工作?有一段時間沒有使用pyCrypto,但我很確定它可以驗證RSA簽名。或者你可以用Java做後端。 – 2012-04-07 15:50:31

+0

我不是Android/Play開發者 - Google Checkout API僅適用於通過Google Checkout進行的交易(不是任何其他API/Google產品)。您的商家/賣家ID和密鑰對於您的市場/產品API是唯一的(它不會與Google Checkout的「商家ID /密鑰」相同。訂單號/ ID也會不同...... – EdSF 2012-04-08 03:13:03

1

你的方式似乎很容易欺騙我。對於像結算這樣重要的事情,我會採用推薦的方法。它被認爲是。

+0

那麼,我想到這個原因是因爲Facebook的學分以這種方式工作(大部分)。他們如何欺騙交易ID? – 2012-04-07 15:44:29

+0

我懷疑Facebook的人做了非常聰明的事情,他們已經仔細考慮過了,可能會或可能不會在你的方法中。 – StilesCrisis 2012-04-07 19:47:59