【发布时间】:2013-03-23 18:35:36
【问题描述】:
我在我的 windows phone 8 项目中有这段代码,用于测试是否有带有产品 ID 键的产品。当我使用 MockIAP 时,一切都在开发中,但在我的应用程序发布后,我无法在在线商店购买。游戏崩溃。
我的应用正在使用 phonegap 2.3.0 并通过 iframe 加载。它使用cordova插件执行buy()。
这是其他人为他们的 WP8 应用程序实施 IAP 的方式吗(即首先下载所有列表信息)?
private async void buy()
{
ListingInformation li = await Store.CurrentApp.LoadListingInformationAsync();
if (li.ProductListings.ContainsKey(package_id))
{
string pID = li.ProductListings[package_id].ProductId;
var receipt = await Store.CurrentApp.RequestProductPurchaseAsync(pID, true);
parseXML(receipt);
prepData();
httpPostData();
Store.CurrentApp.ReportProductFulfillment(pID);
}
}
这是在应用商店中输入的内容:
- 应用内商品 ID:pack1
- 类型:消耗品
- 应用内产品别名:1000 积分
- 基本价格:0.99 美元
- 状态:已发布
- 标签:无可用信息或未提供任何信息
- 关键字:无可用信息或未提供任何信息
- 默认语言:英语
- 标题:100 学分
- 应用内产品说明:无可用信息或未提供任何信息
更多细节:
这是执行 buy() 的步骤
-
从 iframe 内的网络应用程序向执行cordova 插件的包装器发送一个postmessage
pm.bind('购买', function(e){ cordova.exec(app.purchase_success,app.purchase_failure,“InAppPurchase”,“purchase”,[e.package_id,e.user_id]) }, 根地址);
然后我将json对象反序列化为package_id和user_id变量
- 然后我执行 buy();
【问题讨论】:
-
游戏在什么时候崩溃?当您在游戏中按下购买按钮时,您的游戏是否真的打开了 wp 商店或崩溃,或者您在 wp 商店确认购买后是否会出现崩溃?您的游戏是否也能正确处理墓碑(RequestProductPurchaseAsync - 启动实际的 wp 商店并且您的应用已被墓碑)。
-
当我按下购买按钮时它崩溃了。它不会打开 wp 商店(它应该是吗?因为在 MockIAP 中,它也不会)。现在正在谷歌搜索墓碑。
-
是的,我之前提到的方法启动了商店,它会墓碑你的应用程序(而 MockIAP 只是呈现一个弹出窗口)。商店启动后,您的屏幕应如下所示:windowsphonebook.com/storage/…。
-
好的,是的,它在商店之前就崩溃了
-
尝试确保您从 UI 线程调用 Buy。如果不调用 Store.CurrentApp.RequestProductPurchaseAsync,我们会崩溃。
标签: c# in-app-purchase windows-phone-8