导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

启用应用的应用内购买 (HTML)

Applies to Windows and Windows Phone

你的应用可以提供客户能从应用内购买的产品和功能。下面我们显示了如何在应用中启用这些付费内容。

如果你希望尝试使用应用内购买和其他重要 Windows 8 功能,请下载 Windows 8 实例实验室。这些实验室提供用于以你选择的编程语言(JavaScript 和 HTML 或 C# 和 XAML)创建示例 Windows 应用商店应用的模块化分步说明。

要查看客户的应用内购买体验,请参阅客户的应用内购买体验。请注意,如果客户已购买了完整版本的应用,则只能进行应用内购买。

你需要了解的内容

技术

先决条件

  • 可添加供客户购买的功能的 Windows 运行时应用。

说明

步骤 1: 为你的应用初始化许可证信息

当应用在执行初始化时,请通过初始化 CurrentAppCurrentAppSimulator 获取应用的 LicenseInformation 对象,以启用该应用的应用内购买。


function appInit()
{
    // some app initialization functions

        // Get current product object 
        // Execute only one of these statements. 
        // The next line is commented out for testing.
        // currentApp = Windows.ApplicationModel.Store.CurrentApp;

        // The next line is commented out for production/release.
        currentApp = Windows.ApplicationModel.Store.CurrentAppSimulator;

        // We should have either a real or a simulated CurrentProduct object here.

        // Get the license info
        licenseInformation = currentApp.licenseInformation;

    // other app initializations function
}

注意  首次编码和测试新应用内付费内容时,必须使用 CurrentAppSimulator 对象而不是 CurrentApp 对象。这样,你可以使用对许可证服务器的模拟调用验证许可证逻辑,而不是调用实时服务器。若要实现此目的,需要在 <installation_folder>\Microsoft\Windows Store\ApiData 中自定义名为“WindowsStoreProxy.xml”的文件。Microsoft Visual Studio 仿真程序会在你首次运行应用时创建此文件,你也可以在运行时下载一个自定义文件。有关详细信息,请参阅 CurrentAppSimulator 文档。

步骤 2: 向应用中添加应用内付费内容

针对你希望通过应用内购买提供的每项功能,创建一个应用内付费内容并将它添加到你的应用中。

要点  向应用商店提交你的应用之前,必须将你希望呈现给客户的所有应用内付费内容添加到应用中。如果你稍后需要添加新的应用内付费内容,则必须更新你的应用并重新提交新版本。

  1. 创建应用内付费内容标记

    通过应用内付费内容标记来标识应用中的每个应用内付费内容。此标记是一个字符串,在你的应用和应用商店中定义和使用它来标识特定的应用内付费内容。为它提供一个独特(对于你的应用)且有意义的名称,以便你可以在编码时快速标识它所表示的正确功能。下面是一些名称示例:

    • “SpaceMissionLevel4”
    • “ContosoCloudSave”
    • “RainbowThemePack”。
  2. 在条件块中编码功能

    你必须将与应用内付费内容关联的每个功能的代码放在条件块中,从而测试以查看客户是否有使用该功能的许可证。

    下面提供了一个显示如何在许可证特定的条件块中编码名为 featureName 的功能的示例。字符串 featureName 是在应用中唯一标识此功能的标记,它也用于在应用商店中标识此功能。

    
    
    if (licenseInformation.productLicenses.lookup("featureName").isActive) 
    {
        // the customer can access this feature
    }
    else 
    {
        // the customer can't access this feature
    }
    
    
    
  3. 为此功能添加购买 UI

    你的应用还必需为客户提供一种方式来购买应用内付费内容提供的产品或功能。客户无法以购买完整应用的方式通过应用商店来购买上述内容。

    下面介绍如何测试,以查看客户是否已拥有应用内付费内容,如果尚未拥有,则显示购买对话框,让用户可以购买该内容。将注释“显示购买对话框”替换为你的购买对话框自定义代码(如一个包含友好的“购买此应用!”按钮的页面)。

    
    function buyFeature1() {
        if (!licenseInformation.productLicenses.lookup("featureName").isActive)
        {
            // The customer doesn't own this feature, so 
            // show the purchase dialog.
    								
            // note: currentApp is a reference to CurrentAppSimulator from a previous declaration
            currentApp.requestProductPurchaseAsync("featureName", false).then(
                function () {
                    //Check the license state to determine if the in-app purchase was successful.
                }, 
                function () {
                    // The in-app purchase was not completed because 
                    // there was an error.
                });
        } 
        else
        {
            // The customer already owns this feature.
        }
    }
    
    

步骤 3: 更改测试代码以达到最后要求

这是一个简单的步骤:在应用的代码中将对 CurrentAppSimulator 的每个引用更改为 CurrentApp。你不再需要提供 WindowsStoreProxy.xml 文件,因此请将它从你的应用路径中删除(但是你可能希望保存它,以便在下一步中配置应用内付费内容时进行引用)。

步骤 4: 在应用商店中配置应用内付费内容

将你的应用提交到应用商店之前,将每个应用内付费内容添加到“提交应用”工作流中。这是你指定应用内付费内容的标记、价格和功能生存时间的位置。请确保完全按照测试时在 WindowsStoreProxy.xml 中设置的配置来配置它。

步骤 5: 在应用商店中描述应用内付费内容

当你将应用包上载到应用商店后,可以在提交你的应用时,在“描述”页上输入每个应用内付费内容的描述。如果你的应用支持多种语言,则必须以你的应用支持的每种语言描述每个应用内付费内容。

提供清楚明确的描述,准确地指出该功能为应用增添的功能。如果对应用本身提供的其他功能的价值不太明白,你将很难销售它。有关应用内购买描述的各具体部分的更多信息,请参阅你的应用提要

备注

如果你对向客户提供消费品应用内购买选项感兴趣,请参阅启用消费品的应用内购买主题。

如果你需要使用收据来验证用户是否进行了应用内购买,请确保查看使用收据验证购买

相关主题

启用消费品的应用内购买
试用版应用和应用内购买示例

 

 

显示:
© 2014 Microsoft