游戏SDK支付更新时间: 2025-02-24 14:19:00

一、前提条件

  1. 完成小米游戏SDK登录[点击直达]
  2. 完成计费点配置[点击直达]

二、功能说明

调用支付接口,支持购买消耗型商品、非消耗型商品及按金额购买商品。

  • 消耗型商品:使用一次后即消耗掉,随使用减少,需要再次购买的商品。例:游戏货币,游戏道具等。
  • 非消耗型商品:一次性购买,永久拥有,无需消耗。例:游戏中额外的游戏关卡、应用中无时限的高级会员等。
  • 按金额购买:自行设置购买金额,相比前两者更加灵活。

1、接口说明

/**
* 支付接口
* @param activity 游戏内activity
* @param buyInfo 订单信息
* @param listener 支付回调
* @return 接口调用结果
*/
public int miUniPay(final Activity activity, final MiBuyInfo buyInfo, final OnPayProcessListener listener)

2、支付回调

public interface OnPayProcessListener {
/**
* @param code 支付结果
*/
void finishPayProcess(int code);
}
复制

3、支付结果

结果说明
MI_XIAOMI_PAYMENT_SUCCESS0支付成功
MI_XIAOMI_PAYMENT_ERROR_PAY_FAILURE-18003支付失败
注:返回此code不一定是真正意义上的失败,还包含用户取消付款及多种其他场景,详询客服
MI_XIAOMI_PAYMENT_ERROR_PAY_CANCEL-18004支付取消
MI_XIAOMI_PAYMENT_ERROR_ACTION_EXECUTED-18006支付操作正在进行中
其它登录失败

4、订单信息MiBuyInfo

参数类型说明
cpOrderIdString游戏侧订单号
productCodeString计费点,按金额付费请勿设置
countint商品数量,按金额付费请勿设置
amountint金额,单位元,按计费点付费请勿设置
cpUserInfo计费点游戏信息
extraInfo计费点自定义信息

三、调用示例

1、按金额付费

MiBuyInfo miBuyInfo = new MiBuyInfo();
miBuyInfo.setCpOrderId(UUID.randomUUID().toString()); //订单号唯一(不为空)
miBuyInfo.setCpUserInfo("cpUserInfo"); //此参数在用户支付成功后会透传给CP的服务器
miBuyInfo.setAmount(10); //必须是大于1的整数,10代表10米币,即10元人民币(不为空)

MiCommplatform.getInstance().miUniPay(activity, miBuyInfo,
new OnPayProcessListener() {
@Override
public void finishPayProcess(int code) {
switch (code) {
case MiErrorCode.MI_XIAOMI_PAYMENT_SUCCESS: //购买成功
break;

case MiErrorCode.MI_XIAOMI_PAYMENT_ERROR_PAY_CANCEL: //取消购买
break;

case MiErrorCode.MI_XIAOMI_PAYMENT_ERROR_PAY_FAILURE: //购买失败
break;

case MiErrorCode.MI_XIAOMI_PAYMENT_ERROR_ACTION_EXECUTED: //操作正在进行中
break;

default: //购买失败

break;
}
}
});
复制

2、按计费点付费

MiBuyInfo miBuyInfo = new MiBuyInfo();
miBuyInfo.setCpOrderId( UUID.randomUUID().toString() );//订单号唯一(不为空)
miBuyInfo.setProductCode( "productCode");//商品代码,开发者申请获得(不为空)
miBuyInfo.setCount(3);//购买数量(商品数量最大9999,最小1)(不为空)

MiCommplatform.getInstance().miUniPay( activity, miBuyInfo,
new OnPayProcessListener()
{
@Override
public void finishPayProcess( int code ) {
switch( code ) {
case MiErrorCode.MI_XIAOMI_PAYMENT_SUCCESS://购买成功,请处理发货
break;
case MiErrorCode.MI_XIAOMI_PAYMENT_ERROR_PAY_CANCEL://取消购买
break;
case MiErrorCode.MI_XIAOMI_PAYMENT_ERROR_PAY_FAILURE://购买失败
break;
case MiErrorCode.MI_XIAOMI_PAYMENT_ERROR_ACTION_EXECUTED://操作正在执行
break;
default://购买失败
break;
}
}
});

上一篇:小米游戏SDK登录

下一篇:小米游戏SDK商品发货通知