在 Windows 应用商店应用中构建应用内购买需要使用应用内购买模拟器。它几乎与真正的应用内购买命名空间相同。在构建我的应用程序时,我使用模拟器。我在商店中保留了我的名字。我什至在商店中为我的应用创建了应用内购买。在提交我的应用程序进行认证之前,有没有办法测试真正的 IAP?
问问题
345 次
1 回答
4
不,在您的应用提交认证之前,Windows 应用商店中的应用内购买不是“真实的”。这意味着您在提交之前的最后一步是将模拟器代码换成真实代码。而且,是的,这意味着您无法测试您的真实代码 - Store 测试人员将是第一个为您测试它的人。
还有一件事
话虽如此,我创建了一个包含真实 API 和模拟器 API 的辅助类。虽然它只能帮助 90% 的用例,但它非常适合这 90% 的用例。我已经与 IAP 产品团队验证了代码并提交了使用它的真实应用程序。
你可以在这里找到这个助手:http: //codepaste.net/rqwtcy
如果要删除广告,请使用以下语法,例如...
我将它添加到我的视图模型中,如下所示:
public async Task Start()
{
// in app purchase setup
m_HideAdsFeature = await new InAppPurchaseHelper(HIDEADSFAETURENAME,
System.Diagnostics.Debugger.IsAttached).Setup();
this.HideAds = m_HideAdsFeature.IsPurchased;
}
bool m_HideAds = false;
public bool HideAds { get { return m_HideAds; } set { SetProperty(ref m_HideAds, value); } }
const string HIDEADSFAETURENAME = "HideAds";
InAppPurchaseHelper m_HideAdsFeature;
// http://codepaste.net/ho9s5a
DelegateCommand m_PurchaseHideAdsCommand = null;
public DelegateCommand PurchaseHideAdsCommand
{
get
{
if (m_PurchaseHideAdsCommand != null)
return m_PurchaseHideAdsCommand;
m_PurchaseHideAdsCommand = new DelegateCommand(
PurchaseHideAdsCommandExecute, PurchaseHideAdsCommandCanExecute);
this.PropertyChanged += (s, e) => m_PurchaseHideAdsCommand.RaiseCanExecuteChanged();
return m_PurchaseHideAdsCommand;
}
}
async void PurchaseHideAdsCommandExecute()
{
PauseCommandExecute();
await m_HideAdsFeature.Purchase();
HideAds = m_HideAdsFeature.IsPurchased;
}
bool PurchaseHideAdsCommandCanExecute()
{
if (m_HideAdsFeature == null)
return false;
return !m_HideAdsFeature.IsPurchased;
}
我将它添加到我的 XAML 中,如下所示:
<UI:AdControl x:Name="MyAdControl"
Width="250" Height="250"
HorizontalAlignment="Left" VerticalAlignment="Top"
AdUnitId="10043107" ApplicationId="d25517cb-12d4-4699-8bdc-52040c712cab"
Visibility="{Binding HideAds,
Converter={StaticResource CollapsedWhenTrueConverter}}" />
祝你好运!
于 2013-02-21T18:26:38.300 回答