支付宝SDK适配鸿蒙系统!
随着 HarmonyOS 的快速发展,支付宝也推出了支持 HarmonyOS 版本的 SDK。
具体的操作可以看支付宝官方文档,地址为:
https://opendocs.alipay.com/open/01ysmx
集成第三方 SDK 是程序员的一个基本必备能力,特别是像支付宝这样的官方文档介绍都很明确,看 SDK 文档是程序员的基本能力,本篇博客还是会概述下集成基本流程,然后重点梳理其中的问题。
首先访问支付宝的官方平台蚂蚁金服开放平台,网址为:
https://open.alipay.com/platform/home.htm
然后用自己的支付宝登录并认证为开发者,认证的时候要录入自己的相关个人信息,这里不多说如何认证,简单的“下一步”傻瓜式操作。
接着在平台首页依次点击“文档中心”进入查阅相关的 Android 集成的开发文档,接着下载集成支付宝的 SDK 和 demo。
在进行支付宝接入的时候,需要企业用户(也就是说需要营业执照,统一社会信用代码等信息去进行注册),那么个人开发爱好者就没法做正式支付宝的开发接入了。
但是支付宝后来推出了沙箱模式,一来可以方便项目开发期间进行测试,二来个人用户也可以熟练下支付宝继承的操作。
非常遗憾的是,目前我在开发的时候发现,鸿蒙版本的 SDK 并不支持沙箱模式(还不确认是我自己的问题还是官方的问题,官方没有找到是否支持沙箱的说明),该问题我还在想办法给阿里和华为进行反馈。
下面以沙箱环境开发进行案例讲解:
①登录开发者平台进入沙箱页面(前提是已经完成开发者认证):
https://open.alipay.com/platform/manageHome.htm
点击红色区域标注的“沙箱”,进入之后的界面如下:
这里有时会报个数据出错,沙箱环境不是很稳定,多刷新几次,阿里会定期进行维护,实在不行过段时间再操作
此时,就可以获得相应的 APPID,商户 ID 等信息,此时在沙箱环境下只用配置个 RSA 秘钥。
②RSA2(SHA256)密钥生成方法
工具下载:
https://doc.open.alipay.com/docs/doc.htm?treeId=291&articleId=106097&docType=1
解压后,WINDOWS 版本双击文件“RSA 签名验签工具 .bat”即可运行工具;Mac 版本双击文件 “RSA 签名验签工具 .command”即可运行工具。
生成密钥:快速生成 RSA 私钥公钥。
选择密钥格式,选 PKCS1 格式生成的私钥为非 Java 开发语言使用;选 PKCS8 格式生成的私钥为 Java 开发语言使选择密钥长度,生成 2048 位的 RSA 私钥。
设置 RSA2:
点击之后,如下:
将之前生成的公钥复制进来,然后点击保存即可。
注意:公钥私钥不要频繁用工具生成,每次生成都会不一样,那么重新生成后请重新进此页面修改公钥。公钥和私钥是一对,一定要保持一致,后面会在服务端和 App 中使用到私钥。
③下载沙箱版钱包 App,支付宝会提供测试账号,里面有余额
如下图:
扫码下载即可。
在手机上安装好沙箱版支付宝之后,用上图中的账号密码进行登录。
④官方 demo 下载
下载官方的 demo:
https://gw.alipayobjects.com/os/bmw-prod/2d42c098-ce3a-4819-9d83-1bfaa6c0
下载的官方 demo 代码结构如下:
导入到 DevEco Studio 中,然后配置 app 签名和密钥等参数。
⑤代码说明
我并没有直接使用官方 demo,而是自己重新创建了一个工程,然后引入官方 demo 中的相关核心代码。我的工程源码可以在附件中进行下载。
导入 SDK:
添加依赖:
implementation files('libs/alipaysdk-harmony-15.8.01-9adcf86.har')
注意:虽然这里已经引入了 libs 下的所有 har 库,但是如果不单独再引入支付宝 sdk 的依赖的话,在编写代码的时候会出现 api 的标红,并且没有 api 的联想,尽管最后编译运行不会报错。
在真机上运行调试,配置签名信息,如果您希望在鸿蒙真机上运行 Demo,则需要先在 Project 以及 Module 的 build.gradle 中配置调试签名:
您也可以使用 IDE 自带的签名设置界面完成配置,请参考 HarmonyOS 文档 - 使用真机进行调试 :
调试签名的获取流程,请参考 AppGallery 文档 - 调试 HarmonyOS 应用:
https://developer.huawei.com/consumer/cn/doc/distribution/app/agc-harmonyapp-debugharmonyapp
修改 PayDemoActivityC 中的 APPID 和 RSA2_PRIVATE:这个 APPID 就是之前沙箱环境中的那个 APPID(如果是正式的商业环境是自己创建的应用 APP 的 APPID),RSA2_PRIVATE 就是自己之前用工具生成的私钥。
正式环境中该私钥一定不要放到app里面,而是通过服务器生成。
按照 Android 版本支付宝 SDK 在沙箱环境下的运行做法,还需要添加如下代码(商业环境千万不要加)启用沙箱环境,否则无法调起支付宝沙箱版本钱包。
此时问题来了,目前鸿蒙版本 sdk,如果加了这句代码,那么无法调用起来支付宝沙箱版本钱包,也无法调用起来正式版本的支付宝 app。
而是直接提示报错,报错截图如下:
下图是我在鸿蒙真机上安装的各个 app,快捷支付这个就是我开发的 demo,然后安装了个正式版支付宝 app 和沙箱版 app。
如果去除掉 EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX)这行代码,那么是可以调起来正式版本的支付宝的。
那么此时就需要正式版的 APPID 和密钥,这个是需要营业执照去认证的,由于本人没有申请商用版本的密钥,就没有经过后续测试了。
来源:鸿蒙技术社区
- 分享
- 举报
-
浏览量:2633次2017-12-14 10:12:40
-
浏览量:2489次2018-02-03 15:43:34
-
浏览量:1766次2019-07-13 09:44:47
-
浏览量:3376次2022-03-25 09:00:13
-
2022-03-29 09:00:13
-
浏览量:1487次2019-07-12 14:09:09
-
浏览量:5899次2022-04-02 09:00:30
-
浏览量:1509次2018-05-07 12:33:04
-
浏览量:2263次2019-12-16 15:29:01
-
浏览量:2142次2018-01-03 23:14:36
-
浏览量:2619次2020-03-26 10:21:51
-
浏览量:1793次2018-11-06 21:25:05
-
浏览量:2070次2017-12-26 21:32:34
-
浏览量:1960次2017-11-05 19:13:11
-
浏览量:1975次2020-03-25 10:02:51
-
浏览量:5169次2021-06-03 16:46:43
-
浏览量:1950次2018-01-08 17:59:31
-
浏览量:4227次2021-07-02 14:23:07
-
浏览量:3480次2021-07-08 15:30:22
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
烈日灼心
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明