原地址:http://www.j2megame.com/html/xwzx/ty/2916.html

中国移动MM Android/OPhone付费SDK--MMBillingSDK,集成问题总结

近日在将MM Android/OPhone付费SDK集成到游戏中的事情,以下是我在集成过程中遇到的一些问题和解

决办法:

一.登陆MM系统后台,没出现应用内计费的信息的解决办法。

1、安装MM电子签名证书,这东西必须安装,要不无法正常进入后台。

2、进入自服务区,输入http://dev.10086.cn/oms/newflow/ChargeAppAction.action?act=apply ,进

入“应用内计费”配置界面。

应用内界面里面几个有用的东西分别为:应用编码 对应程序里的 APPID、查看 APP KEY 对应程序里的

APPKEY、配置应用内商品payCode 对应程序里的 ITEMS_PAYCODE, 记得要点保存哦。

配置应用内商品:最高限价15RMB,如果道具要重复购买要勾选“可重复购买”项。重复购买道具时候,

会出现一段时间的保护期,就是说用户在短时间内无法重复购买同种道具,这个在设计游戏时候要小心

配置自测试环境:填写自己的手机号吧,不填写的话,自己买单 。

二、计费程序移植请参考:MMBillingSDK_RELEASE(v1.0.6)。1.0.6是proguard.cfg是可以正确混淆的脚

本,1.0.5的混淆有问题。

代码移植很简单,基本上拷过去就能用,记得在程序初始化时候加入 purchase 必须初始化:

//初始化,MM第三方信息
 initMsgs();
 // 初始化SDK
 purchase = new Purchase(this, APPID, APPKEY, cacheLicense);

订购业务不成功有2种情况:1种是授权不通过,一种是支付失败。这2个要分别捕捉。

OnLicenseListener licListener =new OnLicenseListener() {

@Override
  public void onLicenseFinish(OnLicenseListener.StatusCode code) {
   // 无法获取有效的授权信息,建议应用终止运行
   Log.d(TAG, "license finish, status code = " + code.name());
   if (MainMIDlet4.MID.isFinishing()) {
    return;
   }
   if (code.equals(OnLicenseListener.StatusCode.SUCCEED)) {
    showDialog(MainMIDlet4.MID, "授权验证通过(业务已订购)");
    if ( currentReq == 1 ) {
     handler.obtainMessage(MSG_EVENT_ENABLE_UNSUBSCRIBE).sendToTarget();
     return;
    }    
   } else {    
    //订购不成功,捕捉因授权等引起的支付不成功
    showDialog(MainMIDlet4.MID, msgMap.get(code));
   }
   
   handler.obtainMessage(MSG_EVENT_CHECK_FINISHED).sendToTarget();
  }
  
  public void onBeforeApply() {
   handler.obtainMessage(MSG_EVENT_BEFORE_APPLY).sendToTarget();
  }
  
  public void onAfterApply() {
   handler.obtainMessage(MSG_EVENT_AFTER_APPLY).sendToTarget();
  }

};

订购业务成功仅有1种情况:

@Override
  public void onBillingFinish(OnBillingListener.StatusCode code) {
   // 付费失败,建议重试,视失败的次数决定是否继续运行
   Log.d(TAG, "billing finish, status code = " + code.name());
   System.out.println("bill finish " + code.name());
   if (MainMIDlet4.MID.isFinishing()) {
    return;
   }
   if (code.equals(OnBillingListener.StatusCode.SUCCEED)) {
    showDialog(MainMIDlet4.MID, "订购成功 ");
    //成功订购,此处仅有1中情况,只需在这捕捉是否成功订购    
      if ( currentReq == 1 ) {
     handler.obtainMessage(MSG_EVENT_ENABLE_UNSUBSCRIBE).sendToTarget();
     return;
    }
   } else {
      //订购不成功,捕捉因支付失败等引起的订购不成功
        showDialog(MainMIDlet4.MID, msgMap.get(code));
   }
   
   handler.obtainMessage(MSG_EVENT_CHECK_FINISHED).sendToTarget();
  }
  
 };

三、给APK程序进行签名,生成MM后台用的版权文件.signed

1、运行 自签名工具.exe ,导入APK程序,MM电子证书、私钥,生成.signed版权文件

2、将该版权文件上传至该应用的后台,并点击保存,注意不要点提交哦。系统后台会自动生成版权信息

,该版权信息,用来验证当手机端接入时候版权是否通过验证。这步必须保存,要不手机端会报无效的

版权信息,无法正常支付。

四、测试是否成功接入。

1、测试时候必须保证手机网络是开通的,手机号码一定要是移动号。

2、授权检测会比较慢,要耐心等待。授权检测后会进行身份检测,通过后,系统会弹出个验证框,让用

户输入里面的验证信息。用户发送验证信息后,系统会返回订购成功信息或其他导致支付失败的原因,然后程序要做相应处理。

由 www.J2meGame.com 原创,转载请说明。

中国移动MM Android/OPhone付费SDK--MMBillingSDK,集成问题总结的更多相关文章

  1. 大叔也说Xamarin~Android篇~支付宝SDK的集成

    回到目录 首先做为支付宝SDK它提供了多种平台,网页版,wap版,IOS版,android版等等,今天主要说一下在xamarin里使用android平台的sdk的方法,在网上介绍这块的文章不多,大叔本 ...

  2. Android 百度地图 SDK v3.0.0 (四) 引入离线地图功能

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37758097 一直觉得地图应用支持离线地图很重要啊,我等移动2G屌丝,流量不易, ...

  3. Android 视频直播 SDK

    Android 视频直播 SDK接入说明 一.名词解释 分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率.常见视频分辨率的有1080P即1920x1080,720P即1 ...

  4. Android 视频编辑 SDK

    Android 视频编辑 SDK接入说明 一.名词解释 分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率.常见视频分辨率的有1080P即1920x1080,720P即1 ...

  5. Android最新版支付宝支付集成

    上次集成支付宝支付已经很久了,今天写东西用到了支付宝支付,就大致写一下流程: 去蚂蚁金服下载最新版的Android&IOS端SDK 全部文档 -- 资源下载 -- App支付客户端 下载后解压 ...

  6. [原] unity3d调用android版 人人sdk

    开发过程 遇到天坑:纯android工程没问题,集成到unity3d中 就老提示 没登陆 .最后跟到底 发现是Util.java 中 openUrl 函数出的bug.unity3d 中调android ...

  7. 百度Android在线语音识别SDK用法

    百度Android语音识别SDK分在线与离线两种,这篇文章介绍在线SDK的用法. 在线SDK是以JAR包和动态链接库形式公布和使用,能够从百度开放云平台站点中下载SDK及使用说明文档. title=d ...

  8. Android 百度地图 SDK v3.0.0 (四) 离线地图功能介绍

    转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/37758097 一直认为地图应用支持离线地图非常重要啊.我等移动2G屌丝,流量不易 ...

  9. Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37737213 上篇博客已经实现了地图的定位以及结合了方向传感器用户路痴定位方向, ...

随机推荐

  1. AMQ学习笔记 - 17. 事务的测试

    概述 对事务机制进行测试. 测试实例 测试实例 结果预测 发送正常 3条消息入队 发送异常 0条消息入队 接收正常 3条消息出队 接收异常 0条消息出队 demo设计 设计图 测试分工 测试类 测试方 ...

  2. 对象-关系Metadata映射模式

    MetaData Mapping元数据映射 在MetaData中保存object-relation映射的详细信息. 以表格形式定义映射,并可由通用代码来处理映射. 运行机制 MetaData中的信息如 ...

  3. JS获取非行间样式及兼容问题

    获取非行间样式: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  4. Android实现Http协议案例

    在Android开发中,使用Http协议实现网络之间的通信是随处可见的,使用http方式主要采用2中请求方式即get和post两种方式. 一.使用get方式: HttpGet httpGet = ne ...

  5. 济南学习 Day 2 T3 am

    [问题描述]m× m的方阵上有n棵葱,你要修一些栅栏把它们围起来.一个栅栏是一段沿着网格建造的封闭图形(即要围成一圈) .各个栅栏之间应该不相交.不重叠且互相不包含.如果你最多修k个栅栏,那么所有栅栏 ...

  6. linux中的namespace

         本文将就namespace这个知识点,进行简单的归纳总结,力求通俗易通.在资料汇总的过程中,参考了许多网上的博客资料,在文章尾部给出相关链接.      namespace,命名空间,从名字 ...

  7. JVM基础知识总结

    因为没深入搞底层研究,所以也就没做很细致的笔记.相关笔记内容是直接从度娘那儿来的,重新删减.整理和加了点自己的东西. 1.JVM(Java Virtual Machine)是什么:JVM是一种用于计算 ...

  8. jquery获取html元素的绝对位置和相对位置

    jquery获取html元素的绝对位置坐标和相对父元素的位置坐标方法:绝对位置坐标:$("#elem").offset().top$("#elem").offs ...

  9. 配置普通用户可以运行saltstack的模块

    client_acl 配置使用 1.概述:开启对系统上非root的系统用户在master上可以执行特殊的模块.这些模块名可以使用正则表达式来表示,不能指定对哪些minion执行命令.执行命令只需要切换 ...

  10. UBUNTU12.4 安装磊科无线网卡驱动

    UBUNTU12.4 安装磊科无线网卡驱动 在淘宝低价买了一个网卡,回来发现不能用 ,擦 无语了. 无赖只能在网上各种找驱动,编译 安装 .今天在终于安装好了WIFI驱动了: 下载地址:https:/ ...