接入前,需要由掌趣项目负责人完成渠道申报并在掌趣后台进行配置,从而获取到该游戏的渠道参数、掌趣配置文件。
掌趣 IOS SDK支持 iPhone、iPad、iPod Touch设备,要求armv7、armv7s或arm64架构,操作系统要求Mac要求Lion以上,Xcode要求7以上,iOS SDK要求8.0以上。
掌趣iOS SDK主要由以下几部分构成,如下图:
[1] Ourpalmlib掌趣封装静态库
只支持armv7、armv7s和arm64架构,固件要求iOS8.0以上
[2] Thirdilb第三方静态库.a或Framework
掌趣静态库封装调用的第三方静态库或Framework
[3] OpenSource第三方开源库
掌趣SDK所使用的第三方开源库或源文件,避免SDK与游戏产生冲突
[4] Splash掌趣SDK提供的闪屏支持
闪屏为xcode自带闪屏显示后的闪屏,最多支持3张。使用请在info.plist中设置Ourpalm_Splash字段,类型Number,数量即闪屏数量(不包括xcode自带闪屏), 分辨率以及命名方式请参照demo。若需改变闪屏显示时间请在info.plist中设置Ourpalm_SplashInterval字段,类型string,建议设置范围2-5秒,闪屏默认间隔2秒。
若需要添加视频闪屏请在info.plist中设置Ourpalm_SplashVideo字段,类型bool,YES为显示视频闪屏。掌趣资源文件ourpalm_res.bundle中有一个默认视频logoMovie.mp4。若需替换请自行将其替换或使用打包工具,文件名不可修改、格式必须为mp4!视频闪屏的出现的时间点永远在xcode默认闪屏之后,并且支持视频闪屏+图片闪屏的模式。图片闪屏在视频闪屏结束后自动插播!
Xcode->Project->Build Settings工程配置
[1] 添加库的连接参数
请在工程文件Build Settings处,找到Other Linker Flags,并添加以下内容
[2] 请将Apple LLVM 5.0 – Language – C++中C++ Standard Library项修改为以下内容
注意:
(1)Compiler Default的默认值在xcode5中为libstdc++,但在xcode6中的默认值为libc++。
(2)如果游戏需要支持C++11的新特性,C++ Standard Library需要设置为libc++,如下图,并且需要使用llvm文件中的静态库
[3] 其他编译设置
请将OurpalmSDK文件夹拖到你的工程Groups&Files面板中,截图如下
添加Framework后,请注意Optional的库,如下图:
需添加2个URL Schemes 如下图:
1.为游戏的bundleId
2.为jdpauth2d143b3351cbdf8bb8a12353e0e6dc37
具体方法:选中工程中的Target,选中Info标签页,找到底下的URL Types,展开,点击加号,创建URL Scheme
[1] 支持HTTP设置
ios9 下苹果要求 App 内访问网络必须使用 HTTPS ,现阶段不能马上改成 https。
请在 Info.plist 中添加 NSAppTransportSecurity 类型 Dictionary.在 NSAppTransportSecurity 下添加 NSAllowsArbitraryLoads 类型 Boolean,值设为 YES。如下图
[2] 白名单设置
单独接入appstore包时不能添加alipay的白名单,有可能被拒审!
(请保留weixin、weixinULAPI白名单配置)*
<key>LSApplicationQueriesSchemes</key>
<array>
<string>weixin</string>
<string>weixinULAPI</string>
</array>
[3] 相册、日历、拍照权限设置
使用Xcode8打包时,中访问相册和日历功能需要设置权限使用描述,如下图
<key>NSCalendarsUsageDescription</key>
<string>需要使用日历</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>需要使用相册</string>
<key>NSCameraUsageDescription</key>
<string>需要使用相机</string>
[4] 崩溃、卡顿监控
若游戏不使用该功能,请将OPCrashMonitor.a从工程中去除。
[5] 去除系统冗余日志输出(非必须)
使用Xcode8调试时请做以下设置,防止无用的系统日志在控制台输出,如下图
[6] entitlements设置
由于需要在keychain中记录设备唯一标识,需要在Capabilities中设置keychain sharing的权限,具体如下图:
[1] dSYM文件
在XCODE编译项目之后,会在app旁看见一个同名的dSYM文件。dSYM文件是iOS编译后保存16进制函数地址映射信息的文件,每次应用程序build后,都会生成对应的xxx.app, xxx.app.dSYM文件。通过此文件可以将16进制地址转换成可读的函数地址,精确定位crash位置,如下图所示:
[2] 工程配置
参数名称 | 必要性 | 类型 | 默认值 | 功能 |
---|---|---|---|---|
Ourpalm_InitOrientation | 必须 | String | UIInterface Orientation Landscape Right | 游戏初始化方向 竖屏: UIInterfaceOrientationPortrait 右横屏: UIInterfaceOrientationLandscapeRight 左横屏: UIInterfaceOrientationLandscapeLeft |
Ourpalm_GameResVersion | 必须 | String | 1.0 | 游戏资源版本号 |
Ourpalm_Debugmodel | 必须 | Boolean | YES | 出包前请将其设置成NO。 主要用于查看控制台日志。 YES:调试模式 NO:出包模式 |
Ourpalm_GameOnline | 必须 | Boolean | YES | 游戏类型 YES: 网游 NO:单机 |
Ourpalm_AutoOrientation | 非必须 | Boolean | YES | 设置SDK界面是否支持旋转 YES:支持 NO:关闭 |
Ourpalm_Splash | 非必须 | Number | 0 | SDK闪频数量 (不包括xcode自带闪屏) |
Ourpalm_SplashVideo | 非必须 | Boolean | NO | 掌趣提供的视频闪屏, xcode自带闪屏结束后出现, 若有添加Ourpalm_Splash, 图片闪频在视频结束后出现。 该视频保存在ourpalm_res.bundle中, 开发者可自行替换logoMovie.mp4, 格式命名不可修改。 |
Ourpalm_SplashInterval | 非必须 | String | 2 | 掌趣每张图片闪屏显示时长 (1.0-5.0秒之间) |
Ourpalm_FSInterval | 非必须 | String | 0 | Xcode自带闪屏延长显示时长 (1.0-5.0秒之间) |
Ourpalm_FVLocation | 非必须 | Number | 1 | 首次安装悬浮球显示的位置。 1:左上 2:左中 3:左下 4:右上 5:右中 6:右下 |
Ourpalm_Push | 非必须 | Boolean | YES | 掌趣远程推送开关 YES:允许推送 NO:关闭推送 |
Ourpalm_ShowInitLoading | 非必须 | Boolean | NO | 是否显示登录前的Loading框 YES:显示 NO:关闭 |
Ourpalm_BlockInterval | 非必须 | String | 0 | 游戏卡顿监测间隔(>=5.0秒)、 如果主线程阻塞超过 该时长会发送1条卡顿日志, 去除该字段或设置为0即取消监控 |
Ourpalm_DefferingSG | 非必须 | String | UIRectEdgeAll | 阻塞对应区域的第一次系统手势 UIRectEdgeAll, UIRectEdgeNone, UIRectEdgeTop, UIRectEdgeLeft, UIRectEdgeBottom, UIRectEdgeRight |
Ourpalm_HI_AutoHidden | 非必须 | Boolean | NO | 是否自动隐藏 iPhoneX的HomeIndicator YES:隐藏 NO:显示 |
Ourpalm_FVLocationX | 非必须 | Number | 0 | 自定义设置 首次安装app时悬浮球坐标 坐标X |
Ourpalm_FVLocationY | 非必须 | Number | 0 | 自定义设置 首次安装app时悬浮球坐标 坐标Y |
Ourpalm_SandBox | 非必须 | Boolean | NO | 是否开启页面沙盒状态 YES: 提审时登录页面走线上地址、防止被卡 NO 关闭此功能 |
Ourpalm_EnableATTracking | 非必须 | Boolean | NO | 是否开启iOS14限制广告追踪提示(苹果2021.4月政策) YES: 开启 NO 关闭此功能 |
<key>Ourpalm_AutoOrientation</key>
<true/>
<key>Ourpalm_BlockInterval</key>
<string>10</string>
<key>Ourpalm_Debugmodel</key>
<true/>
<key>Ourpalm_FSInterval</key>
<string>0</string>
<key>Ourpalm_FVLocation</key>
<integer>2</integer>
<key>Ourpalm_GameOnline</key>
<true/>
<key>Ourpalm_GameResVersion</key>
<string>1.0</string>
<key>Ourpalm_InitOrientation</key>
<string>UIInterfaceOrientationLandscapeRight</string>
<key>Ourpalm_Push</key>
<true/>
<key>Ourpalm_ShowInitLoading</key>
<false/>
<key>Ourpalm_Splash</key>
<integer>3</integer>
<key>Ourpalm_SplashInterval</key>
<string>1.5</string>
<key>Ourpalm_SplashVideo</key>
<true/>
<key>Ourpalm_DefferingSG</key>
<string>UIRectEdgeAll</string>
<key>Ourpalm_HI_AutoHidden</key>
<false/>
服务端配置:请参考 通用接入文档—> 《SDK服务端接入说明文档》
功能说明
应用启动时,初始化SDK,并添加奔溃、阻塞监控
接口定义
bool ApplicationDidFinishLaunchingWithOptions(void *application,void *launchOptions);
接口示例
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//注意这里不可添加其他代码
OPGameSDK::GetInstance().ApplicationDidFinishLaunchingWithOptions(application, launchOptions);
//…
}
功能说明
1、初始化第三方SDK,同时获取SDK所需要的初始化数据
2、检查版本更新,初始化内部封装了第三方的更新接口
接口定义
void Init(void* controller,OPInitParam opInfo);
注意:
1.初始化接口在不同游戏引擎添加的位置不同,具体参看代码示例
2.游戏本身的初始化最好在SDK的初始化结束并成功后开始,因为部分渠道的SDK有自动展示LOGO的功能,如果游戏的初始化先于SDK的初始化或两者并行可能会造成渠道的LOGO展示部出来或显示时间很短的BUG
3.由于SDK已集成收集奔溃日志的功能,如果游戏使用的是U3D引擎,需要将UnityAppController.mm中的部分代码进行注释,如下图:
参数说明
参数名称 | 重要性 | 类型 | 说明 |
---|---|---|---|
controller | 必填 | UIViewController* | 游戏rootViewcontroller |
接口示例
//初始化回调函数
void initCallBack(bool result,constchar* jsonStr)
{
//返回初始化结果
}
(1)对于coco2d-x引擎:
初始化接口必须放在cocos2d::CCApplication::sharedApplication()->run();之后,且需要添加代码self.window.rootViewController = viewController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//。。。
self.window.rootViewController = viewController;
[windowmakeKeyAndVisible];
cout<<"OPGameSDK LOG:游戏开始初始化!"<<endl;
cocos2d::CCApplication::sharedApplication()→run();
cout<<"OPGameSDK LOG:OurplamSDK开始初始化!"<<endl;
OPSDK::GetInstance().init(self.viewController);
}
(2)对于unity3d引擎:
初始化接口必须放在OnUnityReady();之后。
- (void)startUnity:(UIApplication*)application
{
//。。。。。。
OnUnityReady();
//掌趣SDK初始化
cout<<"OPGameSDK LOG:OurplamSDK开始初始化!"<<endl;
OPSDK::GetInstance().init(self.viewController);
}
void OPSDK::init(void* rootViewController)
{
// 初始化回调设置
OPGameSDK::GetInstance().InitCallBack(initCallBack);
// 登录注册回调设置
OPGameSDK::GetInstance().RegisterLoginCallBack(loginCallBack);
// 登出回调设置
OPGameSDK::GetInstance().RegisterLogoutCallBack(logoutCallBack);
//设置购买回调
OPGameSDK::GetInstance().SetListener(this);
//初始化接口
OPGameSDK::GetInstance().Init(self.viewController);
}
功能说明
获取SDK接口是否可用
接口示例
OPGameSDK::GetInstance().GetEnableInterface();
返回数据如下,JSON格式
{
“SwitchAccount” : 1,
“Logout” : 1,
“ShowPausePage” : 0,
“EnterAppCenter” : 0,
“ShowToolBar” : 1,
“HideToolBar” : 1,
“UserFeedback” : 1,
“RegisterLogin” : 1,
“EnterUserSetting” : 0,
“EnterAppBBS” : 0,
“IsLogin” : 1,
“EnterPlatform” : 1
}
1: 表示接口可用
0: 表示接口不可用
返回数据说明:
切换账号接口 可用
注销账号接口 可用
暂停页接口 不可用
游戏大厅接口 不可用
显示悬浮球接口 可用
关闭悬浮球接口 可用
客服反馈接口 可用
注册登录接口 可用
用户设置接口 不可用
进入论坛接口 不可用
登录状态接口 可用
用户中心接口 可用
功能说明
获取当前SDK渠道信息
接口定义
const char* GetChannelInfo();
接口示例
OPGameSDK::GetInstance().GetChannelInfo();
返回数据如下,JSON格式
{“channelId”:”3101430031014300”,”channelName”:”appstore”,”deviceGroupId”:”0002”,”localeId”:”01”,”serviceId”:”1000053831014300000”}
说明:
serviceId 业务ID
channelId 渠道ID
deviceGroupId 机型组ID
localeId 语言ID
为了方便游戏接入,提供以下接口获取:
(1)获取业务ID
OPGameSDK::GetInstance().GetServiceId ();
(2)获取渠道ID
OPGameSDK::GetInstance().GetChannelId();
(3)获取渠道名称
OPGameSDK::GetInstance().GetChannelName();
(4)获取机型组ID
OPGameSDK::GetInstance().GetDeviceGroupId();
(5)获取语言ID
OPGameSDK::GetInstance().GetLocaleId();
功能说明
在调用第三方app进行支付时,设置该接口,在支付完成后回调游戏。
接口定义
bool HandleOpenURL(void* url);
void HandleOpenURL(void* url, void* application);
bool HandleOpenURL(void* application,void* url,void* sourceApplication,void* annotation);
接口示例 (以下三个方法必须都添加)
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
if (OPGameSDK::GetInstance().HandleOpenURL(url)) {
returnYES;
}
returnNO;
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
if(OPGameSDK::GetInstance().HandleOpenURL(application,url,sourceApplication,annotation)) {
returnYES;
}
returnNO;
}
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{
if(OPGameSDK::GetInstance().HandleOpenURL(app, url,
[options valueForKey:@"UIApplicationOpenURLOptionsSourceApplicationKey"],
[options valueForKey:@"UIApplicationOpenURLOptionsAnnotationKey"])) {
return YES;
}
return NO;
}
功能说明
通过从Info.plist文件中获取的Ourpalm_AutoOrientation参数来设置游戏是否支持自动旋转。但还需要在appDelegate.mm中设置以下方法
接口定义
unsigned int ApplicationSupportedInterfaceOrientationsForWindow(void *application,void *window);
接口示例
- (NSUInteger)application:(UIApplication *)application
supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
if (OPGameSDK::GetInstance().ApplicationSupportedInterfaceOrientationsForWindow()) {
returnOPGameSDK::GetInstance().
ApplicationSupportedInterfaceOrientationsForWindow(application, window);
}
returnUIInterfaceOrientationMaskAll;
}
功能说明
用于控制界面旋转,请添加至rootViewController中
接口示例
Objective-C
- (BOOL)shouldAutorotate
{
return OPGameSDK::GetInstance().ShouldAutoRotate();
}
Unity3D
BOOL ShouldAutorotate_DefaultImpl(id self_, SEL _cmd)
{
return OPGameSDK::GetInstance().ShouldAutoRotate();
}
功能说明
在游戏进入前台时候调用,暂停页已封装入此接口,请添加至AppDelegate.mm中,U3D游戏为AppController.mm中
接口示例
- (void)applicationWillEnterForeground:(UIApplication*)application
{
OPGameSDK::GetInstance().ApplicationWillEnterForeground(application);
}
1.手机游戏客户端会调用掌趣sdk进行sdk初始化操作
2.掌趣sdk向掌趣用户中心服务器发起登录/注册的请求
3.掌趣用户中心服务器向掌趣sdk返回token、用户信息等等
4.掌趣sdk向返回游戏客户端登录结果和用户信息
5.游戏客户端上传用户信息到游戏服务器
6.服务器根据token向掌趣用户中心服务器获取用户信息
7.掌趣用户中心服务器向游戏服务器返回用户信息
8.游戏服务器向游戏客户端返回登录结果
功能说明
登录掌趣用户中心。游戏客户端调用登录接口(RegisterLogin)前,需要通过设置登录回调接口(RegisterLoginCallBack)将回调函数指针传给SDK,登录成功后,掌趣SDK会通过回调函数通知游戏客户端。
接口定义
//设置登录回调接口
void RegisterLoginCallBack(void (* pf)(bool result,constchar* jsonStr));
//登录接口
void RegisterLogin(OPUserType sdkType=kNoneType);
参数说明
参数名称 | 重要性 | 类型 | 说明 |
---|---|---|---|
OPUserType | 必填 | enum | 掌趣官网登录类型 |
接口示例
//回调函数
void loginCallBack(bool result,constchar* jsonStr)
{
//返回登录结果
}
//设置登录回调接口
OPGameSDK::GetInstance().RegisterLoginCallBack(loginCallBack);
//登录接口
OPGameSDK::GetInstance().RegisterLogin();
其中对应的OPUserType类型
kRegister=1, //注册
kNormalLogin, //常规登陆
kPhoneLogin, //手机登陆
kEmailLogin, //邮箱登陆
kQuickLogin, //快速登陆
返回的JSON数据格式说明
登录成功时 {“userId”:”掌趣平台分配的用户唯一id,区分大小写”,
“returnJson”:{第三方SDK平台返回的数据,一般情况下游戏无需关心},
“tokenId”:”掌趣分配的tokenId”,
“currentUserType”:”当前用户类型 speedy=快登用户、common=普通用户名密码用户、phone=手机号注册用户、thirdHidden=第三方隐性用户”,
“userName”:”掌趣平台中的用户名”}
登录失败时 {“desc”:”失败描述”,
“reset”:”状态码”,”status”:”1”}
实名相关:
“status”: “1” 认证中, “2”认证成功, “-1” 认证失败
“isAdult”: “0” 未成年, “1” 成年
注意:
功能说明
用于支持PC端的游戏,使用手机进行扫码登录,该接口需要在账号登录成功后调用。
接口定义
void CodeScanner();
接口示例
OPGameSDK::GetInstance().CodeScanner();
功能说明
当游戏角色注册(登录)成功时设置游戏角色注册(登录)信息。
注:
1、游戏角色注册成功后,调用该接口设置角色注册信息。
2、游戏角色登录成功后,调用该接口设置角色登录信息,否则无法计费。
3、此类型是用于兼容第三方SDK中,角色升级的一种类型。
接口定义
void SetGameLoginInfo(OPGameInfo opGameInfo,OPGameType opGameType);
参数说明
参数名称 | 重要性 | 类型 | 说明 |
---|---|---|---|
opGameInfo | 必须 | OPGameInfo | 设置游戏账号信息 |
opGameType | 必须 | OPGameType | 用户标识游戏角色注册登录状态注册:kGameRegister 登录:kGameLogin 角色升级:kGameRoleUpgrade |
OPParam参数说明
参数名称 | 重要性 | 类型 | 说明 | |
---|---|---|---|---|
mGame_RoleName | 必须 | std::string | 游戏角色名称(不支持富文本) | |
mGame_RoleId | 必须 | std::string | 游戏角色 id | |
mGame_ServerId | 必须 | std::string | 游戏服务器id | |
mGame_ServerName | 必须 | std::string | 游戏服务器名称 | |
mGame_RoleLevel | 非必须 | std::string | 游戏角色等级 | |
mGame_RoleVipLevel | 非必须 | std::string | 游戏角色vip等级 |
接口示例
OPGameInfogameInfo;
gameInfo.mGame_RoleId = "123456"; //游戏角色id
gameInfo.mGame_RoleName = "Jack"; //游戏角色名称
gameInfo.mGame_ServerId = "123"; //游戏服务器id
gameInfo.mGame_ServerName = "test"; //游戏服务器名称
gameInfo.mGame_RoleLevel = "1"; //游戏角色等级
gameInfo.mGame_RoleVipLevel = "1"; //游戏角色vip等级
//游戏角色注册成功时调用
OPGameSDK::GetInstance().SetGameLoginInfo(gameInfo,kGameRegister);
//游戏角色登录成功时调用
OPGameSDK::GetInstance().SetGameLoginInfo(gameInfo,kGameLogin);
功能说明
注销当前登陆账号。游戏客户端调用注销接口(LogOut)前,需要通过设置注销回调接口(RegisterLogoutCallBack)将回调函数指针传给SDK,注销成功后,掌趣SDK会通过回调函数通知游戏客户端。
接口定义
void LogOut();
接口示例
//回调函数
void logoutCallBack(bool result,constchar* jsonStr)
{
//返回的JSON数据格式说明
调用登出接口,登出成功时
{"Type":"Logout"} //如果jsonStr == NULL,默认为调用登出接口,登出成功
调用切换账号,登出成功时
{"Type":"SwitchAccount"}
}
//设置注销回调接口
OPGameSDK::GetInstance().RegisterLogoutCallBack (logoutCallBack);
//注销接口
OPGameSDK::GetInstance().LogOut();
功能说明
注销当前登录账号,切换成功后会调用注销回调函数通知游戏客户端。
接口定义
void SwitchAccount();
接口示例
//回调函数
void logoutCallBack(bool result,constchar* jsonStr)
{
//返回的JSON数据格式说明
调用登出接口,登出成功时
{"Type":"Logout"} //如果jsonStr == NULL,默认为调用登出接口,登出成功
调用切换账号,登出成功时
{"Type":"SwitchAccount"}
}
//设置注销回调接口
OPGameSDK::GetInstance().RegisterLoginCallBack (logoutCallBack);
//切换账号接口
OPGameSDK::GetInstance().SwitchAccount();
1.掌趣sdk向掌趣计费服务器发起支付请求
2.掌趣计费服务器生成订单号,并向sdk返回支付结果
3.掌趣计费服务器通知游戏服务器发货
4.游戏服务器发送虚拟物品至玩家手机游戏客户端
5.游戏服务器向计费服务器返回发货结果
功能说明
游戏客户端通过调用计费接口,实现游戏中的道具购买。游戏客户端调用计费接口(Purchase)前,需要继承PurchaseListener,通过设置接口(SetListener)将对象指针传给SDK,计费成功后,掌趣SDK会通过OnPurchaseResult通知游戏客户端。
接口定义
void SetListener(PurchaseListener* listener);
//计费接口
void Purchase(OPPurchaseParam params);
参数说明
参数名称 | 重要性 | 类型 | 说明 |
---|---|---|---|
mPrice | 必填 | std::string | 商品价格,单位详见3.4货币类型及对应ID |
mCurrencyType | 必填 | std::string | 货币类型,详见3.4货币类型及对应ID |
mPropName | 必填 | std::string | 商品名称,不含数字 |
mPropId | 必填 | std::string | 游戏自定义的商品ID,必传。 |
mPropNum | 必填 | std::string | 商品数量,只能是数字 |
mPropDescribe | 非必填 | std::string | 商品描述 |
mDeleverUrl | 必填 | std::string | 发货地址 |
mExtendParams | 非必填 | std::string | 游戏自定义扩展参数 |
mGameRoleLevel | 非必填 | std::string | 游戏角色等级 |
mGameRoleVipLeve | 非必填 | std::string | 游戏角色VIP等级 |
接口示例
class OPTest : public PurchaseListener
{ //通知计费结果
void OnIAPResult(bool result, const char* jsonStr);
}
void OPTest::OPPurchase
{
OPIAPParam params;
params.mPrice = "100"; //商品价格
params.mCurrencyType = "1"; //货币类型,人民币为1
params.mPropName = "宝石"; //商品名称,不含数字
params.mPropId = "4261299"; //游戏自定义商品id
params.mPropNum = "100"; //商品数量,只能是数字
params.mPropDescribe = ""; //商品描述
params.mDeleverUrl = ""; //发货地址(必填)
params.mExtendParams = ""; //自定义参数
params.mGameRoleLevel = ""; //游戏角色等级(可选)
params.mGameRoleVipLevel = ""; //游戏VIP等级(可选)
OPGameSDK::GetInstance().SetListener(this);
OPGameSDK::GetInstance().IAP(params); //购买接口
}
注:1、Android端和iOS端返回错误码不一致。2、Android返回参数key为小写{String ssid, String pbid},iOS端返回json中的key为小驼峰{ “desc”:成功描述,”propId”:”道具ID”,”reset”:”120”,”ssId”:”订单号}
功能说明
兑换礼包码
接口定义
void ExchangeGameCode(const char *gamecode,const char *deleverUrl,const char *extendParams);
参数说明
参数名称 | 重要性 | 类型 | 说明 |
---|---|---|---|
gamecode | 必填 | const char * | 礼包码 |
deleverUrl | 必填 | const char * | 礼包码发货地址 |
extendParams | 非必填 | const char * | 游戏自定义参数 |
接口示例
void OPSDK::OnGamecodeResult(bool result, const char* jsonStr)
{
// 返回礼包码兑换结果
}
void OPSDK:: ExchangeGameCode()
{
const char* gamecode = “”;
const char* deleverUrl = “http://wwww”;
const char* extendParams = “”;
OPGameSDK::GetInstance().ExchangeGameCode(gamecode,deleverUrl,extendParams);
}
功能说明
在登录游戏后,调用此接口打开用户反馈界面
接口示例
OPGameSDK::GetInstance().UserFeedback();
功能说明
掌趣APNS推送所必须添加的接口,请在appdelegate.mm中添加以下方法
接口示例
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
OPGameSDK::GetInstance().DidRegisterForRemoteNotificationsWithDeviceToken(application, deviceToken);
}
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
OPGameSDK::GetInstance().DidFailToRegisterForRemoteNotificationsWithError(application, error);
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
OPGameSDK::GetInstance().DidReceiveRemoteNotification(application, userInfo);
}
注意事项:
使用Xcode8以上IDE出包,需要将Push Notifications的权限打开,否则无法过审appstore.
功能说明
获取掌趣服务器推送所需的推送唯一标识,详情请参考服务器推送文档接口示例
OPGameSDK::GetInstance().GetPushIdentity();
功能说明
此接口主要用于游戏定时通知用户相关活动,具体推送规则如下:
1.调用一次接口创建一条推送
2.所有本地推送会在下次重启游戏时清除
3.推送时间以客户端本机时间为准
4.创建相同的推送会触发相应的次数
参数说明
参数名称 | 重要性 | 类型 | 说明 |
---|---|---|---|
intervalType | 非必填 | NSString * | 推送间隔(日、周、月)默认为每日 |
date | 必填 | NSString * | 推送日期,例: 20180701 |
hour | 必填 | NSString * | 推送小时(24小时制),例: 18 |
min | 必填 | NSString * | 推送分钟,例: 59 |
content | 必填 | NSString * | 推送内容 |
title | 非必填 | NSString * | 推送标题(iOS8以上系统才显示) |
NSMutableDictionary *notify = [[[NSMutableDictionary alloc] init] autorelease];
// 每日 day 每周 week 每月 month
[notify setObject:@"day" forKey:@"intervalType"];
[notify setObject:@"20170703" forKey:@"date"];
[notify setObject:@"15" forKey:@"hour"];
[notify setObject:@"44" forKey:@"min"];
[notify setObject:@"我是内容" forKey:@"content"];
[notify setObject:@"我是标题" forKey:@"title"];
OPGameSDK::GetInstance().CreatNewLocalNotification(notify);
功能说明
获取ServiceCode用于服务端日志统计
1.将OPGameKit.framework添加至工程中
2.在调用SDK初始化接口后调用以下方法即可,详情可参见demo
接口示例
const char* gameResVersion = "1.0"; //游戏资源版本号
OPGameKit::GetInstance().GetServiceCode(gameResVersion);
功能说明
显示和关闭悬浮球。根据接口GetEnableInterface()来判断当前渠道是否支持该接口
接口示例
OPGameSDK::GetInstance().ShowToolBar(OPToolBarAtTopLeft);
OPGameSDK::GetInstance().HideToolBar();
功能说明
进入用户中心界面。根据接口GetEnableInterface()来判断当前渠道是否支持该接口。
接口示例
OPGameSDK::GetInstance().EnterPlatform();
功能说明
调用该接口重新获取sessionId,主要应用于支持长时间后台挂起后返回游戏不需要重新登录的游戏能够正常使用需要sessionId进行的各种业务。
请先设置监听接口
// 设置刷新TokenId回调
OPGameSDK::GetInstance().RefreshTokenIdCallBack(refreshTokenIdCallBack);
在需要重新获取TokenId的时候调用
OPGameSDK::GetInstance(). RefreshTokenId();
最后在回调中拿到最新的TokenId
void refreshTokenIdCallBack(bool result, const char* jsonStr)
{
if (result) {
cout<<"refreshSessionIdCallBack:已获取最新SessionId"<<endl;
cout<<jsonStr<<endl;
} else {
cout<<"刷新TokenId失败"<<endl;
}
}
功能说明
调用native的webview显示页面,带有刷新、前进、后退、关闭的功能
调用时传入URL即可
OPGameSDK::GetInstance().OpenWebviewWithNavbar(url);
功能说明
判断当前玩家是否绑定过手机号
参数说明
参数名称 | 重要性 | 类型 | 说明 |
---|---|---|---|
pfunc | 必填 | block | 回调函数 |
OPGameSDK::GetInstance().QueryPhoneCellectStatus(GetQueryPhoneCollectStatusCallBack);
void GetQueryPhoneCollectStatusCallBack(const char* returnJson)
{
NSLog(@"GetQueryPhoneCollectStatusCallBack=%@", [NSString stringWithUTF8String:returnJson]);
}
查询返回数据:GetQueryPhoneCollectStatusCallBack == {“data”:{“phoneNum”:”1581124XXXX”,”isCollected”:”1”},”errorCode”:”01020001”,”errorDesc”:”成功”,”status”:”1”}
注意:游戏只需要判断isCollected,isCollected=1代表绑定过,isCollected=其他数值代表未绑定过
功能说明
发送验证码到指定手机
参数说明
参数名称 | 重要性 | 类型 | 说明 |
---|---|---|---|
phoneNum | 必填 | NSString * | 当前手机号 |
pfunc | 必填 | block | 回调函数 |
OPGameSDK::GetInstance().GetVerifyCode(@"15101154324", GetVerifyCodeCallBack);
void GetVerifyCodeCallBack(const char* returnJson)
{
NSLog(@"GetVerifyCodeCallBack=%@", [NSString stringWithUTF8String:returnJson]);
}
查询返回数据:GetVerifyCodeCallBack == {“data”:{},”errorCode”:”01010025”,”errorDesc”:”发送未绑定手机验证码成功”,”status”:”1”}
注意:游戏只需要判断status,status=1代表发送成功,status=其他数值代表发送失败
功能说明
收集当前玩家的手机号
参数说明
参数名称 | 重要性 | 类型 | 说明 |
---|---|---|---|
phoneNum | 必填 | NSString * | 当前手机号 |
verifyCode | 必填 | NSString * | 当前手机收到的验证码 |
pfunc | 必填 | block | 回调函数 |
OPGameSDK::GetInstance().GetPhoneNumber(@"15101154324", @"123123", GetPhoneNumberCallBack);
void GetPhoneNumberCallBack(const char* returnJson)
{
NSLog(@"GetPhoneNumberCallBack=%@", [NSString stringWithUTF8String:returnJson]);
}
查询返回数据:GetPhoneNumberCallBack == {“data”:{},”errorCode”:”01020001”,”errorDesc”:”成功”,”status”:”1”}
注意:游戏只需要判断status,status=1收集成功,status=其他数值代表收集失败
功能说明
用于玩家在appstore兑换促销码后,领取相关道具时使用的接口,需要在角色登录后才可进行调用
参数说明
参数名称 | 重要性 | 类型 | 说明 |
---|---|---|---|
deliverUrl | 必填 | string * | 游戏发货地址 |
OPGameSDK::GetInstance().GetPromotionCode("https://global-1000112300.gamebean.net/index.php?mod=http&act=Account.ouCallBack&ver=current");
功能说明
用于恢复购买非消耗型、订阅型商品,重新上传相关收据
参数说明
OPGameSDK::GetInstance().RestorePayments();
功能说明
用于universalLink使用时回调函数的接入,请在AppDelegate.mm中添加
参数说明
OPGameSDK::GetInstance().ContinueUserActivity(application, userActivity, restorationHandler);
接入说明
将Thirdlib文件夹下ThinkingSDK拖入工程中即可
获取distinctId请使用以下接口
OPGameSDK::GetInstance().GetDistinctId();
如果需要使用数数SDK里的打点请自行调用数数SDK中的接口
参考文档:https://docs.thinkingdata.cn/ta-manual/latest/installation/installation_menu/client_sdk/ios_sdk_installation/ios_sdk_installation.html
接入说明
1.将Thirdlib文件夹下QYSDK目录中所有库拖入工程中
2.并且所有动态库需要设置为embed framework
3.需要在GSC平台上配置使用七鱼客服
状态码 | 说明 |
---|---|
101 | 连接超时 |
102 | 网络异常,请检查网络 |
103 | 数据异常 |
104 | SDK初始化参数错误 |
105 | SDK语言配置文件错误 |
106 | Ourpalm.cfg配置文件错误 |
107 | SDK未初始化成功 |
108 | SDK未设置登录回调 |
109 | 未设置服务器id |
110 | 未设置价格 |
111 | 未设置货币类型 |
112 | 未设置商品名称 |
113 | 未设置商品id |
114 | 未设置虚拟货币单位 |
115 | 未设置虚拟货币数量 |
116 | 未设置发货地址 |
117 | 未设虚拟货币单位 |
118 | 未设商品数量 |
119 | 用户取消支付 |
120 | 支付失败 |
121 | 支付页面加载失败 |
200 | 支付成功 |
201 | 下单成功 |
用户中心错误码 | 信息 |
---|---|
01010001 | 成功 |
01010002 | 次数已经达到上限,请12小时后再发送 |
01010003 | 该用户没有绑定手机 |
01010004 | 原密码不正确 |
01010005 | 没有找到该用户信息 |
01010006 | 令牌验证错误 |
01010007 | 验证码不正确 |
01010008 | 验证码超时 |
01010009 | 该用户已经绑定手机 |
01010010 | 用户昵称不存在 |
01010011 | 昵称已存在,请重新输入 |
01010012 | 该账号已存在 |
01010013 | Email不存在,请重新输入Email |
01010014 | 发送验证码失败 |
01010014 | 繁体-发送验证码失败 |
01010015 | 失败 |
01010016 | 邮箱验证失败 |
01010017 | 邮箱验证成功 |
01010018 | 密码修改失败 |
01010019 | 密码修改成功 |
01010020 | 昵称修改失败 |
01010021 | 昵称修改成功 |
01010022 | 手机验证码发送失败 |
01010023 | 手机验证码发送成功 |
01010024 | 发送未绑定手机验证码失败 |
01010025 | 发送未绑定手机验证码成功 |
01010026 | 用户绑定失败 |
01010027 | 用户绑定成功 |
01010028 | 手机绑定失败 |
01010029 | 手机绑定成功 |
01010030 | 邮箱绑定失败 |
01010031 | 邮箱绑定成功 |
01010032 | 手机验证码验证失败 |
01010033 | 手机验证码验证成功 |
01010034 | 重置密码失败 |
01010035 | 重置密码成功 |
01010036 | 获取用户信息失败 |
01010037 | 获取用户信息成功 |
01010038 | 该用户暂未绑定手机 |
01010039 | 该手机号已被绑定,请更换手机号 |
01010040 | 用户名不能是手机号 |
01010041 | 用户名不能是邮箱 |
01010043 | 邮箱绑定失败 |
01010044 | 密码修改失败,新密码与原密码相同 |
01010045 | 用户密码为空 |
01010046 | 登录密码不正确 |
01010047 | 手机解绑失败 |
01010048 | 第三方用户已绑定 |
01010049 | 账号为6-18位,数字、字母、”_” |
01010050 | 密码为6-14位,数字、字母组合 |
01010051 | 该账号不存在 |
01010052 | 昵称不合法 |
01010053 | 接口参数不正确,请确认 |
01010054 | 输入的身份证号码格式有误 |
01010055 | 当前用户已做过验证 |
01010056 | 真实姓名格式有误 |
01010057 | 角色信息参数有误 |
01010058 | 参数不全或不完整 |
01010059 | 用户名未作更改 |
01010060 | 未获取到用户信息 |
01010061 | 游戏服Id不得为空 |
01010062 | 用户Id不能为空 |
01010063 | 产品接口未配置 |
01010064 | 调用查询角色接口出错 |
01010065 | 未查询到角色 |
01020001 | 成功 |
01020002 | 密码错误,请重试 |
01020003 | 密码错误,请重试 |
01020004 | 注册失败 |
01020005 | 失败 |
01020006 | 该账号已存在 |
01020007 | 账号为6-18位,数字、字母、”_” |
01020008 | 限制登录 |
01020009 | 限制首登 |
01020010 | 限制初始化 |
01020011 | 当前玩家的手持设备的IP地址已经被游戏封停 |
01020012 | 玩家的手持设备已经被游戏封停 |
01020013 | 当前玩家账号已经被游戏封停 |
01020014 | 没有找到该用户信息 |
01020015 | 查询激活信息失败 |
01020016 | 激活的tokenId不正确 |
01020017 | 用户激活失败 |
01020018 | 激活码无效 |
01020019 | 密码为6-14位,数字、字母组合 |
01020020 | 请使用已激活的账号登录 |
01020021 | 激活码已经被使用 |
01020022 | 您已经激活过其他设备,不能在多台设备上激活 |
01020023 | 用户密码不能为空 |
01020024 | 该账号不存在 |
01020025 | 内测阶段,暂不支持第三方登录 |
01020026 | 您的账号存在安全隐患,请联系客服:4000688900 |
01020027 | 没有该用户信息 |
01020028 | 设备信息获取失败 |
01020029 | 验证码有误 |
01020030 | 验证码已过期 |
01020031 | 注册手机号不能为空 |
01020032 | 验证码不能为空 |
01020033 | 该手机号已被绑定,请更换手机号 |
01020034 | 登录失败,请使用账号密码重试! |
01030000 | 心跳处理成功 |
01030001 | 心跳处理失败 |
01030002 | sessionId为空 |
01030003 | session已过期 |
01040000 | 成功 |
03010000 | 已经被激活 |
03010001 | 角色查询参数不全 |
03010002 | 参数不全 |
03010003 | 角色已注册 |
03010004 | 注册发生错误 |
计费 错误码 | 信息 |
---|---|
21000 | 成功 |
21001 | 请求的json串格式不正确 |
21002 | json对象格式不正确 |
21003 | json字符串转换为对象错误 |
21004 | 道具格式不正确 |
21005 | 返回bean格式不正确 |
21006 | 没有筛出计费点 |
21007 | 驱动格式不正确 |
21099 | 全局异常错误 |
21100 | common节点格式不正确 |
21101 | options节点格式不正确 |
21102 | common中interfaceId不能为空 |
21103 | tokenId格式不正确 |
21104 | serviceId格式不正确 |
21105 | deviceGroupId格式不正确 |
21106 | localeId格式不正确 |
21107 | pCode格式不正确 |
21108 | netSource格式不正确 |
21120 | device格式不正确 |
21121 | mac格式不正确 |
21122 | 手机号码错误 |
21123 | 发货地址格式不正确 |
21130 | 批价ID格式不正确 |
21131 | 道具ID格式不正确 |
21132 | sdkVersion格式不正确 |
21133 | userId格式不正确 |
21134 | roleId格式不正确 |
21135 | roleName格式不正确 |
21136 | gameType格式不正确 |
21137 | gameServerId格式不正确 |
21138 | gameClientVersion格式不正确 |
21139 | 当前业务下没有该道具 |
21140 | 计费点ID格式不正确 |
21141 | 充值金额格式不正确 |
21142 | 货币类型格式不正确 |
21143 | gameServerId在平台没有启用,需要在平台上配置游戏服ID |
21144 | 游戏产品不存在 |
21145 | 平台操作失败. |
21146 | 请求报文头格式不正确 |
21147 | 手机平台ID格式不正确 |
21148 | 设备名称格式不正确 |
21149 | 设备系统版本号格式不正确 |
21150 | 设备分辨率格式不正确 |
21151 | 设备UDID格式不正确 |
21152 | 运营商格式不正确 |
21153 | 设备厂商格式不正确 |
21154 | 手机号格式不正确 |
21155 | 用户ID格式不正确 |
21156 | 代计费功能同步渠道异常 |
21157 | 超过用户日最大计费金额 |
21158 | 超过用户月最大计费金额 |
21159 | 黑名单用户 |
21160 | 充值失败 |
21161 | 超过计费点日最大计费金额 |
21162 | 超过计费点月最大计费金额 |
21163 | 道具名称不能为空 |
21164 | 通知发货成功 |
21165 | 计费失败 |
21166 | 等待支付结果 |
21167 | 指令错误 |
21168 | 已经订购,无需重复订购(包月) |
21169 | 黑名单用户 |
21170 | 虚拟货币单位格式不正确 |
21171 | 虚拟货币数量格式不正确 |
21172 | 虚拟货币单位非法 |
21173 | 虚拟货币数量非法 |
21174 | 货币格式非法 |
21175 | 发货地址在mis上没有配置 |
21176 | SDK同步_验签失败 |
21177 | SDK同步_订单缓存不存在 |
21178 | SDK同步_签名信息格式不正确 |
21179 | 官网_订单号格式不正确 |
21180 | 官网_订单缓存不存在 |
21181 | 官网_充值卡号格式不正确 |
21182 | 官网_充值卡类型格式不正确 |
21183 | 官网_充值卡密码格式不正确 |
21184 | 官网_银行类型格式不正确 |
21185 | 官网_计费点ID格式不正确 |
21185 | 礼包码不得为空 |
21186 | 发货失败 |
21187 | 礼包码不存在或不可用 |
21188 | 礼包码已过期 |
21189 | 礼包码未领取 |
21190 | 礼包码已使用 |
21191 | 该用户已兑换过礼包码 |
21192 | 该设备已兑换过礼包码 |
21193 | 礼包活动暂停中 |
21194 | 礼包码已经用完 |
21195 | 网络异常 |
21196 | 服务内部错误 |
21197 | 传入的礼包码有错误 |
21198 | 传入的礼包ID有错误 |
21199 | 用户未登录 |
21200 | 兑换超过用户最大限制 |
21201 | 游戏产品有误 |
21202 | 策略关系不存在 |
21203 | 联运渠道或推广渠道有误 |
21204 | 推广渠道有误 |
21205 | 机型组有误 |
21206 | 语言有误 |
21207 | 逻辑服策略不存在 |
21208 | 逻辑服有误 |
21209 | 已配置回调地址,sdk同步数据不予处理 |
21210 | 官网充值支付类型格式不正确 |
21211 | 官网充值支付校验类型格式不正确 |
21212 | 官网充值支付校验码格式不正确 |
21213 | 官网充值支付角色不存在 |
21214 | 官网_用户ID格式不正确 |
21215 | 官网_查询起始时间格式不正确 |
21216 | 官网_查询起结束时间式不正确 |
21217 | 官网_分页信息格式不正确 |
21218 | 官网_分页信息每页数量信息格式不正确 |
21219 | 官网_分页信息当前页参数格式不正确 |
21220 | 官网_分页信息当前日期范围不正确 |
21221 | 手机同步订单号和计费点ID不能同时为空 |
21222 | 游戏奖励活动不存在 |
21223 | 游戏奖励活动状态未开启 |
21224 | 不在游戏活动有效期 |
21225 | 用户已领取活动奖励 |
21226 | 未查询到玩家活动充值记录 |
21227 | 用户天兑换次数超出上限 |
21228 | 用户周兑换次数超出上限 |
21229 | 用户月兑换次数超出上限 |
23153 | 官网_第三方订单号不能为空 |
23152 | 官网_实际支付金额不能为空 |
23154 | 签名不能为空 |
23155 | 该笔订单已发货 |
23156 | 离线计费缓存为空 |
23157 | 礼包码未到生效时间 |
22000 | app_product_id格式不正确 |
22050 | cmcc_pay_code格式不正确 |
22100 | googlePlay_pay_code格式不正确 |
22150 | mmpaycode格式不正确 |
22200 | 世纪佳缘接口game_partner_id游戏合作ID格式不正确 |
22201 | 世纪佳缘接口game_jf_id游戏计费点编号格式不正确 |
22202 | 世纪佳缘接口game_id游戏id格式不正确 |
22203 | 世纪佳缘接口game_cost金额格式不正确 |
22204 | 世纪佳缘接口mobile充值手机号格式不正确 |
22205 | 世纪佳缘接口game_pay_type支付类型格式不正确 |
22206 | 世纪佳缘接口param短信上行自定义内容格式不正确 |
22207 | 世纪佳缘接口sign加密格式不正确 |
22208 | 世纪佳缘接口签名数据不符 |
22209 | 世纪佳缘接口game_partner_id与计费点上参数不符 |
22210 | 世纪佳缘接口game_jf_id与计费点上参数不符 |
22211 | 世纪佳缘接口game_id与计费点上参数不符 |
22212 | 世纪佳缘接口根据指令没有相关代计费配置 |
22250 | 根据指令没有相关代计费配置 |
22251 | itemId_短信上行自定义内容格式不正确 |
22252 | transactionId_内容格式不正确 |
22253 | serviceId_内容格式不正确 |
22254 | spId_内容格式不正确 |
22255 | serviceType_内容格式不正确 |
22256 | feeType_内容格式不正确 |
22257 | serviceId与计费点上参数不符 |
22258 | spId与计费点上参数不符 |
22259 | serviceType与计费点上参数不符 |
22260 | feeType与计费点上参数不符 |
22262 | success_内容格式不正确 |
22263 | checkcode_内容不正确 |
22304 | 联通时科外放接口Mobile充值手机号格式不正确 |
22305 | 联通时科外放接口sms_msg外放代码格式不正确 |
22306 | 联通时科外放接口ret计费结果格式不正确 |
22307 | 联通时科外放接口message计费错误信息格式不正确 |
22308 | 联通时科外放接口sec |
22309 | 联通时科外放接口签名数据不符 |
22310 | 联通时科外放接口没有相关代计费配置 |
22311 | 联通时科外放接口传入订单号格式不正确 |
22354 | 微米外放接口mobile充值手机号格式不正确 |
22355 | 微米外放接口Price金额格式不正确 |
22356 | 微米外放接口ExData上行自定义内容格式不正确 |
22357 | 微米外放接口paramWIMIPOST上传的参数无效 |
22358 | 微米外放接口没有相关代计费配置 |
22359 | 微米外放接口【POST】-回传的XML报文未成功获取 |
22400 | 联动优势外放接口mobileId充值手机号码格式不正确 |
22401 | 联动优势外放接口goodsId短信上行商品号指令格式不正确 |
22402 | 联动优势外放接口没有相关代计费配置 |
22403 | 联动优势外放接口merId商户号格式不正确 |
22404 | 联动优势外放接口amtType货币类型格式不正确 |
22405 | 联动优势外放接口bankType货币类型格式不正确 |
22406 | 联动优势外放接口version版本号格式不正确 |
22407 | 联动优势外放接口sign签名格式不正确 |
22408 | 联动优势外放接口orderId商户订单号格式不正确 |
22409 | 联动优势外放接口merDate商户日期格式不正确 |
22410 | 联动优势外放接口payDate平台支付日期格式不正确 |
22411 | 联动优势外放接口amount商品金额格式不正确 |
22412 | 联动优势外放接口transType交易类型格式不正确 |
22413 | 联动优势外放接口settleDate账务清算日期格式不正确 |
22414 | 联动优势外放接口merPriv商户私有信息格式不正确 |
22415 | 联动优势外放接口retCode返回码格式不正确 |
22416 | 联动优势外放接口平台向用户下订单时签名验证不成功 |
22417 | 联动优势外放接口平台向用户同步信息时签名验证不成功 |
22418 | 联动优势外放接口平台向商户下订单金额超过当前计费点的实际金额 |
22419 | 联动优势外放接口当前计费点不满足计费限额,订单状态更新为异常。 |
22450 | IVR外放接口没有相关代计费配置 |
22451 | IVR外放接口开始计费时间格式不正确 |
22452 | IVR外放接口结束计费时间格式不正确 |
22453 | IVR外放接口呼叫号码格式不正确 |
22454 | IVR外放接口被叫号码格式不正确 |
22455 | IVR外放接口没有找到相关计费点配置 |
22500 | Official官网SMS计费回调接口sign签名验证不通过 |
22501 | Official官网SMS计费回调接口订单不存在 |
22550 | downloadjoySDK计费回调接口result返回结果验证不通过 |
22551 | downloadjoySDK计费回调接口money返回结果验证不通过 |
22512 | downloadjoySDK计费回调接口mid返回结果验证不通过 |
22513 | downloadjoySDK计费回调接口time返回结果验证不通过 |
22514 | downloadjoySDK计费回调接口signature返回结果验证不通过 |
22515 | downloadjoySDK计费回调接口ext返回结果验证不通过 |
22516 | downloadjoySDK计费回调接口签名验证不通过 |
22600 | duokuSDK计费回调接口amount返回结果验证不通过 |
22601 | duokuSDK计费回调接口cardtype返回结果验证不通过 |
22602 | duokuSDK计费回调接口orderId返回结果验证不通过 |
22603 | duokuSDK计费回调接口result返回结果验证不通过 |
22604 | duokuSDK计费回调接口timetamp返回结果验证不通过 |
22605 | duokuSDK计费回调接口client_secret返回结果验证不通过 |
22606 | duokuSDK计费回调接口签名验证不通过 |
22650 | I4SDK计费回调接口amount返回结果验证不通过 |
22651 | I4SDK计费回调接口order_id返回结果验证不通过 |
22652 | I4SDK计费回调接口billno返回结果验证不通过 |
22653 | I4SDK计费回调接口account返回结果验证不通过 |
22654 | I4SDK计费回调接口status返回结果验证不通过 |
22655 | I4SDK计费回调接口app_id返回结果验证不通过 |
22656 | I4SDK计费回调接口role返回结果验证不通过 |
22657 | I4SDK计费回调接口zone返回结果验证不通过 |
22658 | I4SDK计费回调接口sign返回结果验证不通过 |
22659 | I4SDK计费回调接口签名验证不通过 |
22700 | 本月已订购 |
22701 | 用户未登录 |
22702 | 手机号有误 |
22703 | token不能为空 |
22704 | 计费点不能为空 |
22705 | 跳转地址不能为空 |
22706 | 该协议只支持短订单号指令,请检查配置是否正确 |
22750 | 安智回调接口第三方订单ID不存在 |
22751 | 安智回调接口订单金额不存在 |
22752 | 安智回调接口回调信息用户自定义参数不存在 |
22753 | 安智回调接口回传状态不存在 |
22754 | 安智回调接口实际支付金额不存在 |
22800 | 步步高下单失败 |
22801 | 步步高回调验签失败 |
22802 | 步步高回调支付失败 |
22850 | 获取access_token值返回错误 |
22851 | 下单失败 |
22900 | 签名错误 |
22901 | 支付状态错误 |
22902 | 支付状态错误 |
22950 | 上行内容格式不正确 |
22951 | 代计费配置错误 |
22952 | 手机号码格式不正确 |
22953 | 处理结果格式不正确 |
22954 | 流水号格式不正确 |
22955 | 上行号码格式不正确 |
23000 | 上行内容格式不正确 |
23001 | 产品内容格式不正确 |
23002 | 手机号码格式不正确 |
23003 | 流水号格式不正确 |
23004 | 签名格式不正确 |
23005 | 签名错误 |
23050 | 编码异常 |
23051 | 订单提交失败 |
23100 | 签名格式不正确 |
23101 | 签名错误 |
23102 | 交易状态格式不正确 |
23150 | 向盛付通下单失败 |
23151 | 字符编码异常 |
23201 | facId格式不正确 |
23202 | facMerId格式不正确 |
23203 | cardId格式不正确 |
23204 | oProjNo格式不正确 |
23205 | cardKind格式不正确 |
23206 | cardPoint格式不正确 |
23207 | returnMsgNo格式不正确 |
23208 | hash格式不正确 |
23209 | hash验证错误 |
23210 | facTradeSeq格式不正确 |
23211 | tradeSeq格式不正确 |
23212 | 差异报表查询参数格式不正确 |
23213 | FactorySeq格式不正确 |
23214 | OTP格式不正确 |
23251 | ERPC验证错误 |
26000 | 展示的错误信息 |
26001 | orderId为空 |
24000 | 请求缺少相关参数 |
24001 | userSign不能为空 |
24002 | 要添加的userSign个数超过设定容量 |
24003 | userSign个数已超过设定容量 |
24004 | userSign剩余容量不足以添加要添加数据 |
24005 | userSign格式有误 |
货币ID | 货币名称 | 货币单位 |
---|---|---|
1 | 人民币 | 分 |
2 | 美元 | 美分 |
3 | 日元 | 円 |
4 | 港币 | 分 |
5 | 英镑 | 便士 |
6 | 新加坡币 | 分 |
7 | 越南盾 | 盾 |
8 | 台币 | 元 |
9 | 韩元 | 分 |
10 | 泰铢 | 萨当 |