2013-08-23 36 views
0

我正在測試我的Windows Phone 8應用程序,以便在應用程序可以完成消耗品購買之前進入後臺。因此,在每次啓動應用程序時,我都會檢查是否有任何未完成的應用程序內購買,如果有,我會使用CurrentApp.ReportProductFulfillment方法完成它們。 但是,在測試過程中,我發現即使設備未連接到Internet,此方法也能正常工作。那麼,該應用如何以及何時讓市場知道購買成功了?更重要的是,我是否應該只在互聯網連接時才這樣做?CurrentApp.ReportProductFulfillment方法如何工作?

這是我的代碼的方式:通過在固定的時間間隔OS催生了一個後臺任務

var licenses = CurrentApp.LicenseInformation.ProductLicenses; 
if (licenses["PRODUCT_ID"].IsConsumable && licenses["PRODUCT_ID"].IsActive) { 
    // Fulfill consumable purchases 

    // Let the Marketplace know 
    CurrentApp.ReportProductFulfillment("PRODUCT_ID"); 
} 

回答

0

市場通信發生。如果您將Fiddler附加到運行Windows Phone模擬器的計算機上,則可以觀察此流量。

以下聲明僅僅是我的假設,因此請謹慎使用它。我會想象背景Marketplace交流處理一些任務。其中最常見的是檢查應用程序更新。但是,這也是操作系統傳達訂單履行的理想時間。在這種情況下,Marketplace服務可能會將您的報告請求排隊,如果無法立即傳送,請將其延遲以供後臺處理,以便即使手機沒有數據訪問權限也可以運行該方法。考慮到現代無現金交易的性質,我認爲Marketplace沒有任何理由需要立即通知履行,因爲一旦獲得初始化授權,它有時間完成交易。

0

CurrentApp.LicenseInformation.ProductLicenses由Windows Phone操作系統緩存。