PurchaseClient

public abstract class BillingClient extends Object java.lang.Object ↳ com.gaa.sdk.iap.PurchaseClient library和用户应用软件代码之间通信的基本接口。 所有method均以异步处理, UI thread 需要调用, 所有回调都将返回 UI thread 。 如果想要在实例(instance)化此class之后进行连接设置,请调用startConnection(PurchaseClientStateListener) method,并在设置完成后通过listener接收通知。

class YourPurchaseManager implements PurchaseClientStateListener {
    private PurchaseClient mPurchaseClient;
 
    public YourPurchaseManager() {
        mPurchaseClient = PurchaseClient.newBuilder(activity)
            .setBase64PublicKey(/* your public key */)
            .setListener(this)
            .build();
    }
 ...
}

一般情况下,设定完成后,会调用购买订单查询和In-App商品的详细信息。请参考queryPurchasesAsync(String, QueryPurchasesListener)及queryProductDetailsAsync(ProductDetailsParams, ProductDetailsListener)。 使用该对象完成所有操作并关闭应用软件时,不要忘记调用endConnection()。必须解除与支付模块的连接和资源。建议为止为Activity.onDestroy()。 要查看library的详登录细日志,只需在Logger.setLogLevel(int) 中输入android.util.Log.VERBOSE调用即可。

注意! ! !

一定要在发布应用软件的发行版(release版本)之前!删除Logger.setLogLevel(int)

Summary

Nested classes

class

PurchaseClient.Builder 是易于创建PurchaseClient实例(instance)的builder。

Public methods

newBuilder

@AnyThread public static PurchaseClient.Builder newBuilder(Context context)

生成用于创建PurchaseClient实例(instance)的builder。

Parameters:

context

使用applicationContext来连接支付模块。

Returns:

isReady

@AnyThread public abstract boolean isReady()

检查客户端是否已连接到当前服务,从而确认对其他函数的请求是否成功 。

Returns:

boolean

getConnectionState

@AnyThread public abstract int getConnectionState()

返回当前PurchaseClient的连接状态。

Returns:

int

PurchaseClient.ConnectionState 相对应的状态值。

isFeatureSupported

@UiThread public abstract IapResult isFeatureSupported(String feature)

检查指定的功能是否在服务中支持 。

Parameters:

String

Returns:

IapResult

支持功能时, PurchaseClient.ResponseCode.RESULT_OK 不支持功能时,PurchaseClient.ResponseCode.ERROR_FEATURE_NOT_SUPPORTED

startConnection

@AnyThread public abstract void startConnection(PurchaseClientStateListener listener)

异步启动PurchaseClient设置进程。 完成后,通过PurchaseClientStateListener得到响应。

Parameters:

listener

PurchaseClient设置和支付模块连接完成时,接收响应。

endConnection

@AnyThread public abstract void endConnection()

断开与支付模块的连接,并解除PurchaseClient的保留资源。

launchUpdateOrInstallFlow

@UiThread public abstract void launchUpdateOrInstallFlow(Activity activity, IapResultListener listener)

IapResult.getResponseCode()值为PurchaseClient.ResponseCode.RESULT_NEED_UPDATE时,必须调用以更新或安装支付模块。

Parameters:

activity

Activity: 参照activity以了解结支付模块的更新和安装流程。

launchPurchaseFlow

@UiThread public abstract IapResult launchPurchaseFlow(Activity activity, PurchaseFlowParams params)

开始购买In-App商品。 显示购买界面,通过初始化PurchaseClient时指定的PurchasesUpdatedListener得到响应。

Parameters:

activity

Activity: 显示购买界面,请参考activity。

params

PurchaseFlowParams 显示购买界面的参数。

Returns:

IapResult

consumeAsync

@AnyThread public abstract void consumeAsync(ConsumeParams params, ConsumeListener listener)

消费购买的商品。 只能执行拥有的商品,已经进行消费的商品必须重新进行购买。 警告!从API v6开始,如果在购买后3天内不进行消费(consume)或确认(acknowledge),就会退款。

Parameters:

params

ConsumeParams 消费的参数。

listener

ConsumeListener 接收消费操作的结果。

acknowledgeAsync

@AnyThread public abstract void acknowledgeAsync(AcknowledgeParams acknowledgeParams, AcknowledgeListener listener)

确认购买的商品。 只能执行所拥有的商品,已经确认的商品如果不消费就不能重新购买。 管理型商品或包月型商品都均可适用。 特别是管理型商品,可以作为确认(acknowledge)并在一定时间后进行消费(consume)的固定期限商品。 警告!从API v6开始,如果在购买后3天内不进行消费(consume)或确认(acknowledge),就会退款。

Parameters:

acknowledgeParams

AcknowledgeParams 确认购买的参数。

listener

AcknowledgeListener 接收确认购买的操作结果。

queryPurchasesAsync

@AnyThread public abstract void queryPurchasesAsync(String productType, QueryPurchasesListener listener)

获取在应用软件中购买的所有商品的购买信息。

Parameters:

productType

PurchaseClient.ProductType 指定商品类型。

listener

QueryPurchasesListener 接收购买订单的结果。

queryProductDetailsAsync

@AnyThread public abstract void queryProductDetailsAsync(ProductDetailsParams params, ProductDetailsListener listener)

获取在开发者中心注册的In-App商品的详细信息。

Parameters:

params

ProductDetailsParams 获取商品详细信息的参数。

listener

ProductDetailsListener 接收商品详细信息的结果。

manageRecurringProductAsync

@AnyThread public abstract void manageRecurringProductAsync(RecurringProductParams recurringProductParams, RecurringProductListener listener)

变更包月型商品的状态。 每月取消自动支付或重新恢复取消的自动支付的操作。

Parameters:

recurringProductParams

RecurringProductParams 变更包月型商品状态的参数。

listener

RecurringProductListener 变更包月型商品状态的参数。

launchLoginFlowAsync

@UiThread public abstract void launchLoginFlowAsync(Activity activity, IapResultListener listener)

IapResult.getResponseCode值发生PurchaseClient.ResponseCode.RESULT_NEED_LOGIN时,进行store登录。

Parameters:

activity

Activity: 查看activity以了解store登录情况。

listener

IapResultListener 接收登录成功或失败的结果。

launchManageSubscription

@UiThread public abstract void launchManageSubscription(Activity activity, SubscriptionParams subscriptionParams)

구독 상품 관리 메뉴로 이동합니다.

Parameters:

activity

Activity: 查看activity以移动到订阅商品的管理菜单。

subscriptionParams

SubscriptionParams 为null时移动到管理菜单界面,有 PurchaseData时移动到详情界面。

getStoreInfoAsync

@AnyThread public abstract void getStoreInfoAsync(StoreInfoListener listener)

获取市场分类代码。 此值是使用server to server API所需的值。

Parameters:

listener

StoreInfoListener 接收市场分类代码。

Last updated