TYPESDK手游聚合SDK客户端远程开关:渠道支付黑名单
渠道支付要做开关干嘛用呢?为什么要做这种东西呢?
这个教训来分享一下,我们的游戏上线公测了,59个渠道首发,其中包括了应用宝,UC,360等的大渠道,也包含有一些工会渠道和小渠道,上线后一切正常,但是到了下午就开始出现问题了,大渠道联系了我们的渠道商务说我们在做充值返利要立刻停止这种行为,限我们3小时内处理,要不然就下架我们的游戏。公司沟通了一圈后,一头雾水,因为运营和市场并没有做这种返利活动。后来询问大渠道后获得了一些相关的信息和截图,发现小渠道和一些二三级分包渠道在做4-6折不等的充值返利,我们下载了相关的apk发现多次打包和分销渠道号等。然后就是联系这些渠道关闭返利,给大渠道解释,多要一些时间等等,处理到了第二天,为什么会这么久呢?因为渠道商务人员要一家一家联系,联系对方后对方还要在去联系那些二三级分包渠道或者是合作渠道,这么一级一级的关系处理的很慢,随着时间过去渠道那里也下班了,最终导致游戏被大渠道下架了,而这些做返利的渠道也没量了。说到这里大家明白了这个需求的原因,那么总结一下是这样
1、 上线渠道多,有些渠道为了业绩会做充值返利
2、 大渠道的控制力很强,他们的多级渠道能力也很强,他们会比我们先发现这类问题
3、 即使和渠道说了不要做充值返利,但是他们的沟通可能会出现误差,不能保证一定不会出现
4、 这类事处理起来费事费力牵扯众多,短时间如果处理不好还有被大渠道下架的危险,这就得不偿失了
吃一堑长一智,为了解决这种混乱的情况,想出了这个渠道支付开关的功能,实现思路为在用户进行支付的时候从CDN的HTTP上下载一个配置文件,根据配置文件判断这个渠道是否能顺利支付
以下是接入游戏渠道的支付代码的实现代码
public String CallPayItem(final String _in_data)
{
TypeSDKLogger.i("CallPayItem:" + _in_data);
new Thread() {
@Override
public void run() {
String payMessage;
try {
payMessage = HttpUtil.http_get(TypeSDKBonjour_vivo
.Instance().platform
.GetData(AttName.SWITCHCONFIG_URL));
if (((payMessage.equals("") || payMessage.isEmpty()) && openPay)
|| TypeSDKTool.openPay(TypeSDKBonjour_vivo
.Instance().platform
.GetData(AttName.SDK_NAME), payMessage)) {
Handler mHandler = new Handler(Looper.getMainLooper());
mHandler.post(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
TypeSDKBonjour_vivo.Instance().PayItem(_in_context, _in_data);
}
});
} else {
TypeSDKNotify_vivo notify = new TypeSDKNotify_vivo();
TypeSDKData.PayInfoData payResult = new TypeSDKData.PayInfoData();
payResult.SetData(AttName.PAY_RESULT, "0");
notify.Pay(payResult.DataToString());
Handler dialogHandler = new Handler(Looper.getMainLooper());
dialogHandler.post(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
TypeSDKTool.showDialog("暂未开放充值!!!", _in_context);
}});
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }.start();
return "client pay function finished";
}
这个项目已开源,大家有兴趣可以自己研究或者参照项目编写自己的聚合SDK
项目地址:https://code.csdn.net/typesdk_code
项目地址:https://github.com/typesdk
TYPESDK手游聚合SDK客户端远程开关:渠道支付黑名单的更多相关文章
- TYPESDK手游聚合SDK服务端设计思路与架构之一:应用场景分析
TYPESDK 服务端设计思路与架构之一:应用场景分析 作为一个渠道SDK统一接入框架,TYPESDK从一开始,所面对的需求场景就是多款游戏,通过一个统一的SDK服务端,能够同时接入几十个甚至几百个各 ...
- TYPESDK手游聚合SDK服务端设计思路与架构之四:流程优化之信息安全与订单校验
有了前文几个步骤的分析和设计,TYPESDK的信息交互流程已经可以正常工作了,但是,这个流程还没有考虑到支付这样的过程中,至关重要的信息安全问题. 在整个交互过程中,游戏服务端,SDK服务端,渠道服务 ...
- TYPESDK手游聚合SDK服务端设计思路与架构之三:流程优化之订单保存与通知
经过前两篇文字的分析与设计,我们已经可以搭建出一个能够支持多游戏多渠道的聚合SDK服务端,但这只是理想化状态下的一个简化模型.如果接入渠道的逻辑都是按照理想化的简化过程来构建,那么对于支付的请求,我们 ...
- TYPESDK手游聚合SDK服务端设计思路与架构之二:服务端设计
在前一篇文中,我们对一个聚合SDK服务端所需要实现的功能作了简单的分析.通过两个主要场景的功能流程图,我们可以看到,作为多款游戏要适配多个渠道的统一请求转发中心,TYPESDK服务端主要需要实现的功能 ...
- 手游聚合SDK开发之远程开关---渠道登入白名单
白名单有啥好说的呢?无非就是筛选登入,大家第一眼看到就是这个印象,白名单也是有文章的,弄的时机不同会给你带来很不错的收益,注意是收益.还是举例来说,游戏上线前渠道都会做一个预下载,一般提前1-2天,这 ...
- 手游开发者大会交流OGEngine新版本发布
由OGEngine第二个手游开发者交流会举办的圆桌会议在深圳市高新技术园区举行.发布会不仅吸引了手游开发商,供应商也纷纷在国外支付,在国内手游和国外出版商参加. 围绕三个主题会议讨论和交流.每个主题: ...
- unity手游之聊天SDK集成与使用一
手游中都有聊天功能,比如公会,私聊,世界聊天,那么找一个好用,功能强大的SDK的可以节省很多精力,帮助我们提高开发速度与游戏质量. 写本篇博文是为了方便使用这个SDK做聊天模块的程序,避免许多坑,我在 ...
- 手游服务器端接入facebook的SDK
手游如果支持facebook登录,就要接入facebook的登录SDK.刚好工作中自己做了这一块的接入功能现在记录分享下来提供一个参考. 当前只是接入了登录这个功能,先简单的说说接入facebook登 ...
- 手游录屏直播技术详解 | 直播 SDK 性能优化实践
在上期<直播推流端弱网优化策略 >中,我们介绍了直播推流端是如何优化的.本期,将介绍手游直播中录屏的实现方式. 直播经过一年左右的快速发展,衍生出越来越丰富的业务形式,也覆盖越来越广的应用 ...
随机推荐
- python 数据类型---文件二
1.打印进度条 import sys,time for i in range(20): sys.stdout.write("#") sys.stdout.flush() #不等缓冲 ...
- SAP CRM 用户界面对象类型和设计对象
在CRM中的用户界面对象类型的帮助下,我们可以做这些工作: 进行不同的视图配置 创建动态导航 从设计层控制字段标签.值帮助 控制BOL对象的属性的可视性 从导航栏访问自定义组件 一个用户界面对象类型之 ...
- MongoDB常用操作--集合1
1.创建集合有两种方式,显示创建和隐式创建 显示创建可以使用命令 db.createCollection("集合名称") 隐式创建可以使用命令 db.集合名称.insert({}) ...
- 绿色版的Linux.NET——“Jws.Mono”
Linux.NET环境的搭建,不仅是一项比较耗时的事情,同时也是一项略显复杂繁琐的事情.特别是对于近期的几个Mono版本,由于官方所提供的源码包中出现代码文件的缺失,这总让我们的付出变得徒劳.另外一方 ...
- 用命令行工具创建 NuGet 程序包
NuGet.exe 下载地址 本文翻译自: https://docs.nuget.org/Create/Creating-and-Publishing-a-Package https://docs.n ...
- C#分布式消息队列 EQueue 2.0 发布啦
前言 最近花了我几个月的业余时间,对EQueue做了一个重大的改造,消息持久化采用本地写文件的方式.到现在为止,总算完成了,所以第一时间写文章分享给大家这段时间我所积累的一些成果. EQueue开源地 ...
- UITableView(二)
#import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ...
- 重学hadoop技术
最近因为做了些和hadoop相关的项目(虽然主要是运维),但是这段经历让我对hadoop的实际运用有了更加深入的理解. 相比以前自学hadoop,因为没有实战场景以及良好的大数据学习氛围,现在回顾下的 ...
- 2000条你应知的WPF小姿势 基础篇<28-33 WPF启动故事>
在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师.最为出色的是他维护了两个博客:2,000Things You Should Know About C# 和 2,0 ...
- Entity Framework 6 Recipes 2nd Edition(10-2)译 -> 返回输出参数
10-2. 返回输出参数 问题 想获取存储过程里的一个或多个输出参数的值 解决方案 假设我们有一个像Figure 10-1所示的,出租车辆与租金收入的模型 Figure 10-1.出租车辆与租金收入的 ...