【问题标题】:How to implement the Amazon In-App Purchase API?如何实现亚马逊应用内购买 API?
【发布时间】:2021-08-26 09:59:06
【问题描述】:

您好,很抱歉标题含糊。我有一个关于 Amazon IAP API 的具体问题,您将在帖子底部看到。

我以最简单的方式实现了 API,即我只是导入了他们的示例 IAP 应用程序并将其全部粘贴到我的应用程序中。我认为示例应用中唯一需要更改的是 SKU 和市场。

这是示例应用中名为 MySku.java 的类:

package com.amazon.sample.iap.entitlement;

/**
 * 
 * MySku enum contains all In App Purchase products definition that the sample
 * app will use. The product definition includes two properties: "SKU" and
 * "Available Marketplace".
 * 
 */
public enum MySku {

    // The only entitlement product used in this sample app
    LEVEL2("com.amazon.sample.iap.entitlement.level2", "US");

    private final String sku;
    private final String availableMarkpetplace;

    /**
     * Returns the MySku object from the specified Sku and marketplace value.
     * 
     * @param sku
     * @param marketplace
     * @return
     */
    public static MySku fromSku(final String sku, final String marketplace) {
        if (LEVEL2.getSku().equals(sku) && (marketplace == null || LEVEL2.getAvailableMarketplace().equalsIgnoreCase(marketplace))) {
            return LEVEL2;
        }
        return null;
    }

    /**
     * Returns the Sku string of the MySku object
     * 
     * @return
     */
    public String getSku() {
        return this.sku;
    }

    /**
     * Returns the Available Marketplace of the MySku object
     * 
     * @return
     */
    public String getAvailableMarketplace() {
        return this.availableMarkpetplace;
    }

    private MySku(final String sku, final String availableMarkpetplace) {
        this.sku = sku;
        this.availableMarkpetplace = availableMarkpetplace;
    }

}

所以我必须更改skuavailableMarketplace。我知道我的应用内产品的 sku,所以我设置了它,但是我应该将 availableMarketPlace 更改为什么,以便我的应用允许所有市场,而不仅仅是美国市场?

【问题讨论】:

    标签: java android


    【解决方案1】:

    您需要为每个 availableMarkpetplace 声明每个 SKU,如下所示>

    LEVEL2("com.amazon.sample.iap.entitlement.level2", "US"),
        LEVEL2_MX("com.amazon.sample.iap.entitlement.level2", "MX");
    

    对于MySku函数如下>

    public static MySku fromSku(final String sku, final String marketplace) {
            for (MySku mySku : values()) {
                if (mySku.getSku().equals(sku) &&
                        (null == marketplace || mySku.getAvailableMarketplace().equals(marketplace))) {
                    return mySku;
                }
            }
            return null;
        }
    

    唐佩奇

    【讨论】:

    • 我在哪里可以获得每个亚马逊市场的所有两个字母代码?抱歉,我知道这是一个愚蠢的问题,但因为我在里面放了随机字母,所以我必须确定
    • 根据亚马逊,它应该是一个 ISO 2 字母规范(检查此链接>iban.com/country-codes),转到您的亚马逊开发者控制台,然后在应用内商品上,您可以看到不同国家/地区的产品价格对于每个市场,这应该是您的产品可能可用的国家/地区。希望对您有所帮助。
    猜你喜欢
    • 2013-04-12
    • 1970-01-01
    • 2013-03-26
    • 2012-05-31
    • 2012-09-10
    • 2017-02-02
    • 2013-07-20
    相关资源
    最近更新 更多