1.登录商务合作管理平台,点击左侧 普通单产品-创建产品
2.按要求申报产品并上传截图、提交
注意事项
3.获取配置文件
审核通过后,点击左侧 普通单产品-产品管理(厂商),下载系统生成的配置文件,即“
feeInfo.dat<”。>
登录商务平台,点击左侧 产品发行(CP)-产品管理-创建产品;其他步骤及注意与本平台单机产品类似。
若没有“产品发行(CP)” 说明暂无发行产品权限,请联系渠道经理申请权限。获得到权限后进入产品发行(CP)- “申请发行”(注:第一次登陆产品发行(CP)中只操作一次)。 创建产品时,使用原游戏名即可,无需添加[爱游戏]后缀。审核通过后,可通过系统获取配置文件。可参见流程图。
外放产品包名特别注意事项
包名校验注意事项:如果申报时候包名为com.egame.zhijian那么在打渠道外放包的时候包名只要满足如下条件,计费SDK校验就可以通过:包名已com.egame.zhijian开头后面可以包含数字字母和一个点(.)。能通过的包名如下:com.egame.zhijian360,com.egame.zhijian91,com.egame.zhijianaz,com.egame.zhijian.az;
不能通过的包名:com.egame.zhijian.az.360
将从商务平台上获取到的“feeInfo.dat”文件放入Android项目中的assets文件夹内。
注意!本平台产品和渠道产品使用不同的feeinfo.dat将SDK包中res目录下的资源文件放到Android项目中的res文件夹内。
将SDK包中的lib目录下的so文件放到Android项目中的lib文件夹内。
在AndroidManifest.xml文件中增加以下两个权限的申明,并添加Activity申明。
<uses-permission android:name
="android.permission.READ_PHONE_STATE"
/>
<uses-permission android:name
="android.permission.SEND_SMS"
/>
<activity
android:name
="cn.egame.terminal.paysdk.EgamePayActivity"
android:theme
="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
>
</activity>
仅外放游戏使用,本平台游戏切勿添加任何渠道号,请在配置文件中注释或直接去掉以下代码。
<meta-data android:name
="EGAME_CHANNEL"
android:value
="8001001"
/>
如本平台需要添加二次确认,请添加“EGAME_CONFIRM”标签,并将值改为“true”。
如渠道包需要添加二次确认,请添加“CHANNEL_CONFIRM”标签,并将值改为“true”。
如分省产品需要添加二次确认,请添加“PROVINCE_CONFIRM”标签,并将值改为“true”。
SDK默认为一次确认。如无要求,配置文件中不需要写。
<meta-data android:name
="EGAME_CONFIRM"
android:value
="true"
/>
<meta-data android:name
="CHANNEL_CONFIRM"
android:value
="true"
/>
<meta-data android:name
="PROVINCE_CONFIRM"
android:value
="true"
/>
一次确认图例:
二次确认图例
Activity thisActivity;
Button payButton1, payButton2;
String payAlias = "";
@Override
protected void
onCreate
(Bundle savedInstanceState)}{
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
thisActivity = this
;
payButton1 = (Button) findViewById(R.id.button1);
payButton1.setOnClickListener(button1_OnClickListener);
payButton2 = (Button) findViewById(R.id.button2);
payButton2.setOnClickListener(button2_OnClickListener);
}
private
OnClickListener button1_OnClickListener = new
OnClickListener() {
@Override
public
void onClick
(View v) {
payAlias="108462"
;
//硬计费点,激活游戏,1元,试玩三分钟后弹出
EgamePay.pay(thisActivity, payAlias, new
EgamePayListener() {
@Override
public void paySuccess
(String alias) {
Toast.makeText(thisActivity, "道具("
+ alias + ")支付成功。"
,Toast.LENGTH_LONG).show();
}
@Override
public void payFailed
(String alias, int errorInt) {
Toast.makeText(thisActivity, "道具("
+ alias + ")支付失败:"
+ errorInt,
Toast.LENGTH_LONG).show();
}
@Override
public void payCancel
(String alias) {
Toast.makeText(thisActivity, "道具("
+ alias + ")支付操作被取消。"
,
Toast.LENGTH_LONG).show();
}
});
}
};
private OnClickListener button2_OnClickListener = new OnClickListener() {
@Override
public void onClick
(View v) {
payAlias="108463"
;
//软计费点,复活,2元,主角死亡后主动点击
EgamePay.pay(thisActivity, payAlias, new EgamePayListener() {
@Override
public void paySuccess
(String alias) {
Toast.makeText(thisActivity, "道具("
+ alias + ")支付成功。"
,Toast.LENGTH_LONG).show();
}
@Override
public void payFailed
(String alias, int errorInt) {
Toast.makeText(thisActivity, "道具("
+ alias + ")支付失败:"
+ errorInt,
Toast.LENGTH_LONG).show();
}
@Override
public void payCancel
(String alias) {
Toast.makeText(thisActivity, "道具("
+ alias + ")支付操作被取消。"
,
Toast.LENGTH_LONG).show();
}
});
}
};
PayAlias为计费点的道具别名,具体内容在登录平台-产品管理-消费信息中获取。
feeInfo.dat配置文件必须嵌入在指定包名的项目中,如Demo中提供了项目包名为cn.paly.SMSOnline,若CP将Dmo中的feeInfo.dat文件直接覆盖,依然不能运行,必须将Demo项目的包名改为CP在平台中申报的包名才能正确运行。
请确保在平台上申报的包名与实际包名一致。如你在平台上申报时,包名填写的是cn.play.abc,却把下载的配置文件feeInfo.dat放在了cn.play.xyz的项目中,在在支付时,SDK会报-103错误。
项目中的包名为AndroidManifest.xml文件中的package值。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android
="http://schemas.android.com/apk/res/android"
package
="cn.play.egamesmsoffline"
android:versionCode
="1"
android:versionName
="1.0"
>
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-ignorewarnings
-allowaccessmodification
-libraryjars libs/egame.terminal.szpay.jar
-dontwarn cn.egame.terminal.szpay.**
-keep class cn.egame.terminal.szpay.**{*;}
-libraryjars libs/smspayforonlinegame.jar
#-libraryjars libs/smspayforegame.jar
-dontwarn cn.egame.terminal.smspay.**
-keep class cn.egame.terminal.smspay.**{*;}
-keep class egame.terminal.jni.protocal.**{*;}
-libraryjars libs/egame.terminal.alipay.jar
-dontwarn cn.egame.terminal.alipay.**
-keep class cn.egame.terminal.alipay.**{*;}
-libraryjars libs/alipay_plugin.jar
-dontwarn com.alipay.android.app.**
-keep class com.alipay.android.app.**{*;}
-libraryjars libs/egameforonlinegame.jar
-dontwarn cn.egame.terminal.egameforonlinegame.**
-keep class cn.egame.terminal.egameforonlinegame.**{*;}
-keepclasseswithmembernames class * {
native <methods>;
}
安装SKD开发包中的渠道号查看插件。
运行后,按返回键退出前台。
运行外放游戏,弹出计费点。
渠道号查看插件会Toast弹出相关信息。
错误代码 | 错误描述 |
---|---|
-100 | Activity对象为空 |
-101 | feeInfo.dat计费文件未找到或者数据读取异常 |
-102 | 无法读取当前应用信息 |
-103 | 应用校验失败,申报信息和当前产品不一致 |
-104 | 非电信用户 |
-105 | 单击:道具别名错误 |
-200 | 初始化失败,无法进行计算 |
-201 | 计费回调对象为空 |
-202 | 计费道具别名错误 |
-203 | 渠道ID数据异常 |
-204 | SERVICE_CODE数据异常 |
-205 | 自定义参数格式异常 |
-206 | 计费方法调用过快 |
-207 | 计费短信发送失败 |