跳到主要内容

错误码

使用场景

  • SDK 回调失败, 获取 SDK 错误信息

OmniSDKError

API列表

接口名称接口功能
getCode():Int获取SDK错误码
getMessage():String错误描述, 可用于弹出 toast
getDescription():String包含SDK以及渠道的详细异常信息, 可用于输出日志定位错误

代码示例

    public static void onLogin(OmniSDKResult<OmniSDKLoginResult> result) {
if (result.isSuccess()) {
OmniSDKLoginInfo info = result.get().getLoginInfo();
DemoLogger.i(tag, "onLoginSuccess : " + info);

callback.onLoginSucceeded(info);
} else {
OmniSDKError error = result.error();

if (error.getCode() == OmniSDKErrorCode.USER_CANCELLED.getValue()) {
// user cancel
} else {
// fail
Log.e(TAG, "onLogin fail msg: " + error.getDescription());
Toast.makeText(activity, error.getMessage(), Toast.LENGTH_SHORT).show();
}
}
}

错误码说明

错误码枚举值描述备注
1000OmniSDKErrorCode.UNKNOWN_ERROR未知错误
1001OmniSDKErrorCode.USER_CANCELLED用户操作(登录、登出、支付等等)被取消
1002OmniSDKErrorCode.NETWORK_ERROR网络错误
1003OmniSDKErrorCode.INVALID_ARGUMENT业务参数不合法
1004OmniSDKErrorCode.FUNCTION_NOT_SUPPORTED功能不支持
1005OmniSDKErrorCode.SERVER_ERROR服务器错误信息
1006OmniSDKErrorCode.CHANNEL_ERROR渠道侧 SDK 错误信息对应 小米 vivo opop uc 应用宝 等渠道游戏SDK具体错误信息
1007OmniSDKErrorCode.PERMISSION_MISSING_ERROR权限缺失错误比如调用图片分享时,需要文件读取权限
2000OmniSDKErrorCode.SDK_INIT_FAILSDK初始化失败
3000OmniSDKErrorCode.LOGIN_FAIL账号登录失败
3001OmniSDKErrorCode.LOGOUT_FAIL账号登出失败
4000OmniSDKErrorCode.PURCHASE_CREATE_ORDER_FAIL订单创建失败1. 检查SDK参数
2. 请运营配置正确的商品 Omni后台 与 渠道后台
3. CP根据支付文档传入正确的商品参数
4.其他情况联系SDK确认。
4001OmniSDKErrorCode.PURCHASE_NOTIFY_SERVICE_FAIL_ERROR付款成功,通知服务器失败1. 用户支付成功或商品消耗但通知服务器未成功
2. 后台机制会自动处理,处理成功后无通知,除非多次失败需要人工介入
3. 用户切换前台会触发未发货检查机制
4002OmniSDKErrorCode.PURCHASE_INIT_FAIL_ERROR支付服务初始化设置失败Google Play连接失败导致 重启游戏解决
4003OmniSDKErrorCode.PURCHASE_ITEM_SUBSCRIBED_ERROR商品已订阅无法重复订阅不需要向用户展示,用户只需看到GP 的提示就行;因为 GP 可能会在一段时间内重复发送这个 code 类型,但其实是同一个订单;游戏应该在用户订阅过一次后,隐藏对应的订阅商品
4004OmniSDKErrorCode.PURCHASE_ITEM_PENDING_ERROR商品 PENDING 状态,用户按Google提示完成付款订单挂起,当用户付款成功后,服务器后台收到 GP 通知,会主动通知发货。客户端 SDK 无法收到 GP 通知。
4005OmniSDKErrorCode.PURCHASE_UNKNOWN_STATE_ERROR商品状态未知异常1. GP 返回的异常,建议重新购买或检查网络环境
2. 查看 GP 错误信息,非购买失败的,可以不用理会
4006OmniSDKErrorCode.PURCHASE_ITEM_OWNED_ERROR购买失败,之前购买的产品未被消耗无法重新购买建议用户重启游戏,等待15分钟间隔,触发道具消耗机制
5000OmniSDKErrorCode.LOAD_AD_FAIL广告资源加载失败
5001OmniSDKErrorCode.SHOW_AD_FAIL广告展示失败

GooglePay 支付响应码

以 GP 文档为主

https://developer.android.com/reference/com/android/billingclient/api/BillingClient.BillingResponseCode

https://developer.android.com/google/play/billing/billing_reference

public @interface BillingResponseCode {
// The request has reached the maximum timeout before Google Play responds
int SERVICE_TIMEOUT = -3; // 正常失败处理

// Requested feature is not supported by Play Store on the current device
int FEATURE_NOT_SUPPORTED = -2; // 正常失败处理

// Play Store service is not connected now - potentially transient state.
int SERVICE_DISCONNECTED = -1; // 先正常失败处理;通过监听Play Store service 回调,正常时,弹出窗口:询问用户是否进行未支付订单处理,不支付则当无效订单处理

// Success.
int OK = 0; // 支付成功

// User pressed back or canceled a dialog.
int USER_CANCELED = 1; // 用户主动取消支付

// Network connection is down.
int SERVICE_UNAVAILABLE = 2; // 网络中断,弹窗:提示用户网络异常,是否重试,不重试则当无效订单处理

// Billing API version is not supported for the type requested.
int BILLING_UNAVAILABLE = 3; // 所请求的类型不支持 Google Play 结算服务 AIDL 版本:不支持所在国家(中国大陆)使用,解决方法,1. 清除GP商店、Service缓存数据,杀掉应用(可以清缓存);2. 切到可访问的VPN网络,打开GP商店(看到图书、电影标签说明正常)。3. 重新支付

// Requested product is not available for purchase.
int ITEM_UNAVAILABLE = 4; // 请求的商品已不再出售,正常失败处理,提示由游戏处理

// Invalid arguments provided to the API. This error can also indicate that the application was not correctly signed or properly set up for In-app Billing in Google Play, or does not have the necessary permissions in its manifest.
int DEVELOPER_ERROR = 5; // 提供给 API 的参数无效。此错误也可能说明应用未针对结算服务正确签名或设置,或者在其清单中缺少必要的权限。参数(游戏处理)、签名问题:这个通常在测试阶段就会爆出,游戏处理。同时更热时注意参数。

// Fatal error during the API action.
int ERROR = 6; // API 操作期间出现严重错误:正常失败,OmniSDK 先尝试一次,再次失败时,回调正常失败逻辑

// Failure to purchase since item is already owned.
int ITEM_ALREADY_OWNED = 7;// 未能购买,因为已经拥有此商品:Consumed 问题,有商品未消耗导致无法进行新商品购买,通过机制触发订单表内这种状态的订单,进行消耗处理

// Failure to consume since item is not owned.
int ITEM_NOT_OWNED = 8; // 未能消费,因为尚未拥有此商品: 目前遇到一种是GP service 断掉,gp 直接返回 code 8
}