应用宝SDK接入总结

应用宝SDK接入总结

应用宝sdk是众所周知的难接入,经过这次接入发现其接入难点主要在以下三个方面,其一,文档杂乱,部分地方语焉不。其二,微信与手Q部分参数缠连不清,部分出处不明。其三,腾讯技术客服支持不及时、工作应付。下面分别就登录接入、支付接入、易错总结三个方面稍作总结,以便他人参考。

1 登录接入


1.1登录客户端接入

登录接入流程图如下所示:

登录接入流程图

一般来说,按照登陆文档来一步一步进行操作,登陆相较于支付还是比较容易的。在接入登陆操作期间遇到的主要问题在于onNewIntent接口的调用,按照文档要求在launchActivity的onCreat()和onNewIntent()中必须调用WGPlatform.handleCallback(),否则会造成微信登录无回调。而tivicloudSDK并未实现onNewIntent接口,结果微信登陆收不到回调。解决此问题的补偿方案是需要在WXEntryActivity.java添加如下代码:

 @Override
public void onResp(BaseResp resp)
  {
    Intent intent = new Intent(this, LoginChoice.class);
      intent.setFlags(268435456);
      intent.addFlags(536870912);
      intent.putExtra("wx_callback", "onResp");
      intent.putExtra("wx_errCode", resp.errCode);
      intent.putExtra("wx_errStr", resp.errStr);
      intent.putExtra("wx_transaction", resp.transaction);
      intent.putExtra("wx_openId", resp.openId);
      intent.putExtra("platformId", platformIds);
      if ((resp instanceof SendAuth.Resp)) 

      {
        SendAuth.Resp res = (SendAuth.Resp)resp;
        Logger.d("code: " + res.code);
        intent.putExtra("wx_token", res.code);
      }

      if (!"msdkwebpage".equals(resp.transaction)) 

      {
        startActivity(intent);
      }
      finish();
  }

1.2登录服务端的接入

登录服务的编码按照文档一步一步接入即可。重要的是要细心,与前端商量确定好具体的参数。

2 支付接入


2.1支付客户端接入

支付接入流程如下图所示:

应用宝支付接入流程

登陆接入和支付接入是两个不同的部分,使用不同的文档以及SDK,可能是由于支付文档和登陆文档衔接的不是太顺畅,在支付过程中遇到较多的问题,下面一一列出。

参数问题

在支付过程中所需参数较多,并且手Q登陆和微信登陆状态下所需的参数部分不同,和需要特别注意。其中pay_token参数的获取文档中并未明确给出。

  • pay_token

文档中并未明确给出获取方法,pay_token的获取方式是在手Q的登陆回调中获得的。具体位置在回调中case TokenType.eToken_QQ_Pay接口下,tr.value值即是pay_token.

case TokenType.eToken_QQ_Pay:               
    token = ret.getAccessToken();
    pay_Token = tr.value;   //pay_token
    break;
  • rq.sessionId、rq.sessionType、rq.pay_token

手Q状态下与微信状态下需要传递不同的参数:

//手Q登录态与微信登录态分别传递不同的参数
if (手Q登录状态下){
    // 特别注意如果使用的是手Q登录态,这里填的是支付时专用的pay_token
    rq.openKey = pay_Token; 
    rq.sessionId = "openid";
    rq.sessionType = "kp_actoken";
    }
else if(微信登陆状态下){
    rq.openKey = wxAccessToken;
    rq.sessionId ="hy_gameid";
    rq.sessionType = "wc_actoken";
    }
支付界面调起

一般情况下,支付界面调不出来很大可能是参数问题,请仔细核对参数。

2.2支付服务端接入

服务端接入关键点在于签名sig的计算。一下几点需要注意:

  • 在进行sig的计算是appID ,appkey 都用手Q 的ID和key
  • 微信和手Q支付中pay_token,在sig的计算中,微信 pay_token不参与sig的计算中.
  • 就算sig 签名使用snsigcheck中的makesig来进行计算(ts时间戳要特别注意)
  • 在请求是session_id, session_type 不同

3 易错总结


除了以上写出几个关键问题之外,我们还遇到一些其他比较刁钻难解的问题,现一一列出,以便查阅。

3.1 非官方正版应用 100044

问题描述

如下图所示:

这里写图片描述

解决方案

出现该错误的原因是,应用所用包名以及出包所用签名为非腾讯后台申请到的包名及签名,请使用在腾讯后台创建应用时所使用的包名以及签名。

3.2 按照指定签名出包后程序崩溃

问题描述

在使用eclipse默认签名情况下程序可正常运行,但是一旦按照指定签名出包后程序一运行就崩溃。

解决方案

具体原因不明,猜测可能是代码混淆原因吧,解决方法是注销project.properties文件下的一句话:

#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

—— 2015年9月14日18:41:46
——写于公司

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
接入Unity SDK,首先需要理解Unity与安卓平台之间的交互方式。在安卓平台上,主体是Java,而Unity项目的主体则是封装的项目。 具体步骤如下: 1. 创建一个继承自SDKBase的类,例如SDKForAndroid。 2. 在SDKForAndroid类中,使用DllImport("__Internal")来引用Unity的函数。这些函数包括SDKInit()、SDKLogin()和SDKLogout()等等。 3. 在SDKForAndroid类中,重写Init()、Login()、Logout()、Pay()、LoginGame()和CreateRole()等方法,并在这些方法中调用对应的Unity函数。 4. 在SDKForAndroid类中,根据需要可以添加其他功能的实现。 5. 在Unity项目中,将SDKForAndroid类添加到需要接入SDK的场景中。 通过以上步骤,就可以实现Unity SDK接入了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Unity 接入SDK (Android)](https://blog.csdn.net/qq_52956140/article/details/121463308)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [[Unity]Unity接平台SDK(3种方式)](https://blog.csdn.net/zp288105109a/article/details/80244617)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值