信息
您所需的主题如下所示。但此主题未包含在此库中。

启用应用内产品购买 (HTML)

[ 本文适用于编写 Windows 运行时应用的 Windows 8.x 和 Windows Phone 8.x 开发人员。如果你要针对 Windows 10 进行开发,请参阅 最新文档 ]

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

请注意,如果客户已购买了完整版本的应用,则只能购买应用内产品。

你需要了解的内容

技术

先决条件

  • 可添加供客户购买的功能的 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 对象。这样,你可以使用对许可证服务器的模拟调用验证许可证逻辑,而不是调用实时服务器。若要实现此目的,需要在 %userprofile%\AppData\local\packages\<package name>\LocalState\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: 在应用商店中描述应用内产品

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

提供清楚明确的描述,准确地指出应用内产品添加到该应用的功能。如果不清楚超过应用本身可提供价值的产品价值,你将很难销售它。有关应用内产品描述的各具体部分的更多信息,请参阅你的应用提要

备注

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

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

相关主题

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

 

 

显示: