渠道支付要做开关干嘛用呢?为什么要做这种东西呢?

这个教训来分享一下,我们的游戏上线公测了,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客户端远程开关:渠道支付黑名单的更多相关文章

  1. TYPESDK手游聚合SDK服务端设计思路与架构之一:应用场景分析

    TYPESDK 服务端设计思路与架构之一:应用场景分析 作为一个渠道SDK统一接入框架,TYPESDK从一开始,所面对的需求场景就是多款游戏,通过一个统一的SDK服务端,能够同时接入几十个甚至几百个各 ...

  2. TYPESDK手游聚合SDK服务端设计思路与架构之四:流程优化之信息安全与订单校验

    有了前文几个步骤的分析和设计,TYPESDK的信息交互流程已经可以正常工作了,但是,这个流程还没有考虑到支付这样的过程中,至关重要的信息安全问题. 在整个交互过程中,游戏服务端,SDK服务端,渠道服务 ...

  3. TYPESDK手游聚合SDK服务端设计思路与架构之三:流程优化之订单保存与通知

    经过前两篇文字的分析与设计,我们已经可以搭建出一个能够支持多游戏多渠道的聚合SDK服务端,但这只是理想化状态下的一个简化模型.如果接入渠道的逻辑都是按照理想化的简化过程来构建,那么对于支付的请求,我们 ...

  4. TYPESDK手游聚合SDK服务端设计思路与架构之二:服务端设计

    在前一篇文中,我们对一个聚合SDK服务端所需要实现的功能作了简单的分析.通过两个主要场景的功能流程图,我们可以看到,作为多款游戏要适配多个渠道的统一请求转发中心,TYPESDK服务端主要需要实现的功能 ...

  5. 手游聚合SDK开发之远程开关---渠道登入白名单

    白名单有啥好说的呢?无非就是筛选登入,大家第一眼看到就是这个印象,白名单也是有文章的,弄的时机不同会给你带来很不错的收益,注意是收益.还是举例来说,游戏上线前渠道都会做一个预下载,一般提前1-2天,这 ...

  6. 手游开发者大会交流OGEngine新版本发布

    由OGEngine第二个手游开发者交流会举办的圆桌会议在深圳市高新技术园区举行.发布会不仅吸引了手游开发商,供应商也纷纷在国外支付,在国内手游和国外出版商参加. 围绕三个主题会议讨论和交流.每个主题: ...

  7. unity手游之聊天SDK集成与使用一

    手游中都有聊天功能,比如公会,私聊,世界聊天,那么找一个好用,功能强大的SDK的可以节省很多精力,帮助我们提高开发速度与游戏质量. 写本篇博文是为了方便使用这个SDK做聊天模块的程序,避免许多坑,我在 ...

  8. 手游服务器端接入facebook的SDK

    手游如果支持facebook登录,就要接入facebook的登录SDK.刚好工作中自己做了这一块的接入功能现在记录分享下来提供一个参考. 当前只是接入了登录这个功能,先简单的说说接入facebook登 ...

  9. 手游录屏直播技术详解 | 直播 SDK 性能优化实践

    在上期<直播推流端弱网优化策略 >中,我们介绍了直播推流端是如何优化的.本期,将介绍手游直播中录屏的实现方式. 直播经过一年左右的快速发展,衍生出越来越丰富的业务形式,也覆盖越来越广的应用 ...

随机推荐

  1. 你所能用到的BMP格式介绍

    原理篇: 一.编码的意义. 让我们从一个简单的问题开始,-2&-255(中间的操作符表示and的意思)的结果是多少,这个很简单的问题,但是能够写出解答过程的人并不 多.这个看起来和图片格式没有 ...

  2. 微信公众号开发(一)--验证服务器地址的Java实现

    现在主流上都用php写微信公众号后台,其实作为后端语言之一的java也可以实现. 这篇文章将对验证服务器地址这一步做出实现. 参考资料:1.慕课网-<初识java微信公众号开发>,2.微信 ...

  3. 【夯实PHP基础】nginx php-fpm 输出php错误日志

    本文地址 原文地址 分享提纲: 1.概述 2.解决办法(解决nginx下php-fpm不记录php错误日志) 1. 概述 nginx是一个web服务器,因此nginx的access日志只有对访问页面的 ...

  4. Spring MVC注解开发入门

    注解式开发初步 常用的两个注解: @Controller:是SpringMVC中最常用的注解,它可以帮助定义当前类为一个Spring管理的bean,同时指定该类是一个控制器,可以用来接受请求.标识当前 ...

  5. web安全浅析

    就之前本人主持开发的金融产品所遇到的安全问题,设计部分请参见:http://www.cnblogs.com/shenliang123/p/3835072.html 这里就部分web安全防护就简单的交流 ...

  6. 无限分级和tree结构数据增删改【提供Demo下载】

    无限分级 很多时候我们不确定等级关系的层级,这个时候就需要用到无限分级了. 说到无限分级,又要扯到递归调用了.(据说频繁递归是很耗性能的),在此我们需要先设计好表机构,用来存储无限分级的数据.当然,以 ...

  7. GO基础(二)

    本例中梳理go语言中的协程和通道. package main import ( "fmt" "time" ) //func01.func02 为演示同步机制 f ...

  8. windows phone如何才能在中国翻身?

    最近的新闻告诉我们,Android和IOS的系统继续保持市场领先,并且Android的市场份额达到了历史最高点. 做为windows phone的消费者,作为微软粉丝,我感到十分的不爽. 前几天MIU ...

  9. JavaScript继承的模拟实现

    我们都知道,在JavaScript中只能模拟实现OO中的"类",也就意味着,在JavaScript中没有类的继承.我们也只能通过在原对象里添加或改写属性来模拟实现. 先定义一个父类 ...

  10. [转]Python中的str与unicode处理方法

    早上被python的编码搞得抓耳挠腮,在搜资料的时候感觉这篇博文很不错,所以收藏在此. python2.x中处理中文,是一件头疼的事情.网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自 ...