com.huawei.android,Android 集成、接入华为登陆和华为支付

在客户端接入华为登陆和华为支付

一、 集成 SDK

下载SDK

包括两个:HMS Agent(下载 .zip 文件,后面需要进行自定义处理)和 HMS SDK(提供:Gradle 依赖或下载 .jar 文件)。

注意:使用的HMS SDK Agent的主版本号必须与HMS SDK相同。例如HMS SDK Agent 2.6.3.301,2.6.3即为主版本号。

下载 SDK

HMS SDK 使用 Gradle 依赖方式

配置仓库,在工程的 build.gradle 文件如下位置添加:

allprojects {

repositories {

jcenter()

maven {url 'http://developer.huawei.com/repo/'}

}

}

在模块 build.gradle 文件中添加如下依赖:

String HMSSDKVer = '2.6.3.301'

implementation 'com.huawei.android.hms:hwid:'+ HMSSDKVer // 登陆

implementation 'com.huawei.android.hms:iap:' + HMSSDKVer // 支付

注意:版本号要同 Agent 保持一致

集成 Agent

在1.1中下载的 Agent 包,解压缩,根据实际情况运行其中的脚本。执行下面操作的前提是 appid 已经申请下来。

首先进入 HMSAgent_2.6.3.301/ 目录,在命令行运行脚本:

// 在Mac下执行,为了避免换行符的问题需要先执行下

cat GetHMSAgent_cn.sh | tr "^M" "\n" > GetHMSAgent_cn_new.sh

// 注意 ^M是通过:Ctrl+v 、Ctrl+M 输入得到的,复制或输入^M无效

// 接着修改下文件权限

chmod 777 GetHMSAgent_cn_new.sh

// 执行文件

./GetHMSAgent_cn_new.sh

接下来就按提示根据实际情况进行输入和选择。

看到输出提示“按回车键结束”后,可以看到在脚本所在目录中看到目录copysrc,将AppManifestConfig.xml中的内容添加到工程的 AndroidManifest.xml文件中,将 java/目录中的 com/ 目录整体拷贝到工程中。

到此添加集成 SDK 完成。

二、接入

调用 init 接口,在 Application 的 onCreate 方法中初始化 HMSAgent。

HMSAgent.init(this);

调用 connect 接口

HMSAgent.connect(this, new ConnectHandler() {

@Override

public void onConnect(int rst) {

LogUtil.d("huawei connect:" + rst);

}

});

注意:必须在应用启动后就调用该接口

调用checkUpdate接口

调用该接口,当华为市场上传了新版本,那么将出现升级新版本的提示框,用户确认后,将自动下载安装新版本。

HMSAgent.checkUpdate(this, new CheckUpdateHandler() {

@Override

public void onResult(int rst) {

LogUtil.d("huawei checkUpdate:" + rst);

}

});

注意:该方法也必须在应用启动时调用,否则会影响审核。

调用登录方法

HMSAgent.Hwid.signIn(true, new SignInHandler() {

@Override

public void onResult(int rst, SignInHuaweiId result) {

// 打印返回码

LogUtil.d("huawei sign resutlCode: " + rst);

if (rst == HMSAgent.AgentResultCode.HMSAGENT_SUCCESS && null != result) {

// 打印用户信息

LogUtil.d("userInfo = " + result.toString());

} else {

// 提示登录失败码

ToastUtil.show(LoginActivity.this, rst);

}

}

});

调用支付方法

// payReq 支付请求类实例,最好是服务器端给到这些数据

HMSAgent.Pay.pay(payReq, new PayHandler() {

@Override

public void onResult(int retCode, PayResultInfo payInfo) {

if (retCode == HMSAgent.AgentResultCode.HMSAGENT_SUCCESS && payInfo != null) {

// 此处如果是本地处理逻辑的话需要校验签名是否正确,如果是服务器处理的话就是成功支付后的逻辑

} else if (retCode == HMSAgent.AgentResultCode.ON_ACTIVITY_RESULT_ERROR

|| retCode == PayStatusCodes.PAY_STATE_TIME_OUT

|| retCode == PayStatusCodes.PAY_STATE_NET_ERROR) {

// 需要重新获取订单状态

} else {

ToastUtil.show(context, "支付失败, code = " + retCode);

}

}

});

三、集成、接入中遇到的问题

脚本执行的时候遇到问题:

a) 执行脚本后无反应

b) 提示:exec format error

c) 提示:parse error near 'elif'

解决办法:上面集成 Agent 中已给出解决办法。

一开始 HMS Agent 同 HMS SDK 版本不一致,导致初始化失败,提示-1000。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值