渠道支付要做開關(guān)干嘛用呢?為什么要做這種東西呢?
這個(gè)教訓(xùn)來分享一下,我們的游戲上線公測了,59個(gè)渠道首發(fā),其中包括了應(yīng)用寶,UC,360等的大渠道,也包含有一些工會(huì)渠道和小渠道,上線后一切正常,但是到了下午就開始出現(xiàn)問題了,大渠道聯(lián)系了我們的渠道商務(wù)說我們在做充值返利要立刻停止這種行為,限我們3小時(shí)內(nèi)處理,要不然就下架我們的游戲。公司溝通了一圈后,一頭霧水,因?yàn)檫\(yùn)營和市場并沒有做這種返利活動(dòng)。后來詢問大渠道后獲得了一些相關(guān)的信息和截圖,發(fā)現(xiàn)小渠道和一些二三級(jí)分包渠道在做4-6折不等的充值返利,我們下載了相關(guān)的apk發(fā)現(xiàn)多次打包和分銷渠道號(hào)等。然后就是聯(lián)系這些渠道關(guān)閉返利,給大渠道解釋,多要一些時(shí)間等等,處理到了第二天,為什么會(huì)這么久呢?因?yàn)榍郎虅?wù)人員要一家一家聯(lián)系,聯(lián)系對方后對方還要在去聯(lián)系那些二三級(jí)分包渠道或者是合作渠道,這么一級(jí)一級(jí)的關(guān)系處理的很慢,隨著時(shí)間過去渠道那里也下班了,最終導(dǎo)致游戲被大渠道下架了,而這些做返利的渠道也沒量了。說到這里大家明白了這個(gè)需求的原因,那么總結(jié)一下是這樣
1、 上線渠道多,有些渠道為了業(yè)績會(huì)做充值返利
2、 大渠道的控制力很強(qiáng),他們的多級(jí)渠道能力也很強(qiáng),他們會(huì)比我們先發(fā)現(xiàn)這類問題
3、 即使和渠道說了不要做充值返利,但是他們的溝通可能會(huì)出現(xiàn)誤差,不能保證一定不會(huì)出現(xiàn)
4、 這類事處理起來費(fèi)事費(fèi)力牽扯眾多,短時(shí)間如果處理不好還有被大渠道下架的危險(xiǎn),這就得不償失了
吃一塹長一智,為了解決這種混亂的情況,想出了這個(gè)渠道支付開關(guān)的功能,實(shí)現(xiàn)思路為在用戶進(jìn)行支付的時(shí)候從CDN的HTTP上下載一個(gè)配置文件,根據(jù)配置文件判斷這個(gè)渠道是否能順利支付
以下是接入游戲渠道的支付代碼的實(shí)現(xiàn)代碼
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("暫未開放充值?。。?quot;, _in_context); }}); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }.start(); return "client pay function finished"; }
這個(gè)項(xiàng)目已開源,大家有興趣可以自己研究或者參照項(xiàng)目編寫自己的聚合SDK
項(xiàng)目地址:https://code.csdn.net/typesdk_code
項(xiàng)目地址:https://github.com/typesdk
更多建議: