2012-07-09 64 views
6

我正在使用應用程序購買時啓用此應用程序。 快樂的道路全部覆蓋,一切都很好,我試圖找出不開心的路徑。商店套件將保留未完成的交易多久?

簡而言之,購買綁定到服務器端組件。 購買時,當交易處於「已購買」狀態時,我應該出去到服務器,這將啓用用戶的帳戶。 當請求回來時,我清理了一些東西,最後在SKPaymentQueue上調用了-finishTransaction:。

當服務器調用因任何原因失敗時,非快樂路徑非常多。網絡不可用,網絡超時,用戶在購買之後立即關閉應用程序,並且在可以撥打服務器電話之前,將其命名。

我在5.1模擬器中使用沙箱帳戶進行的測試顯示,未完成的已購買交易將在下次啓動時回到隊列中,並且我的代理將被正確調用。 但是,過了一會兒,比如說5分鐘,繁榮,消失了就是交易。 考慮到沙盒帳戶的整體穩定性,我願意在模擬器的實現中調用它,但很難說。

處理這個問題的適當方法是什麼?

獎金問題:蘋果何時實際收費?聽起來應該是在應用程序名爲-finishTransaction後:應該是,但我無法在任何地方找到任何證據。

謝謝, /KRA

更新:對物理設備 測試,幾乎一個小時和交易仍然存在。看起來交易消失是模擬器的事情。

回答

0

當我實施應用內購買時,我放棄了在模擬器中進行測試。行爲完全不同。在設備上測試它,看看它是否在那裏工作。

我也對你關於收費的問題很感興趣,因爲我不完全確定它(我的應用還沒有發佈);)。

+0

感謝您的回答。這幾乎是我所得到的結論,沙箱是完全不可靠的,而且你必須在進行刺激之前進行信心的飛躍。一些早期的設備測試告訴我,他們總是會回來(也有一些常識表明這一點)。在設備上進行測試也不完全可靠,我有我的份額卸載,重新啓動,重新安裝感謝商店套件與可怕的「無法到達appstore」錯誤嚇壞了。 – kra 2012-07-09 01:04:12

+0

我不得不說,在設備上測試時我並沒有真正陷入太多麻煩。我非常仔細地遵循了這個指南:http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/。唯一讓我有時感到困惑的是,它會在做一些重新編譯之後返回無效的產品ID - 當發生這種情況時,我只需要刪除並重新編譯/運行。與產品ID的整個代碼符號關係對我來說仍然很神奇 - 例如,我不明白爲什麼它在使用調試簽名進行adhoc-testrollout時起作用。 – 2012-07-09 02:28:22

+0

是的,那部分幾乎可以,我的問題更多地是在沙箱帳戶之間切換。在某些時候,無論您做什麼,StoreKit都會放棄,不斷返回虛假錯誤,您幾乎不得不卸載/重新啓動手機/重新安裝。我不記得代碼簽名有任何問題,你只需要小心使用特定的配置文件,而不是通配符。只要項目可用,它應該工作,不管證書。 – kra 2012-07-09 19:57:54