当前位置: 首页 > 科技观察

HarmonyOS集成支付宝支付sdk

时间:2023-03-14 08:18:41 科技观察

更多信息请访问:与华为官方共建的Harmonyos技术社区https://harmonyos.51cto.com简介随着HarmonyOS的快速发展,支付宝也推出了对HarmonyOS版本SDK的支持,具体操作可以参考支付宝官方文档,地址是https://opendocs.alipay.com/open/01ysmx集成第三方SDK是程序员基本必备的能力,尤其像支付宝这样的官方文档介绍的很清楚。看sdk文档是程序员的基本能力。本篇博客还是会大致介绍一下基本的集成过程,然后着重整理问题。首先访问支付宝官方平台蚂蚁金服开放平台,网址为https://open.alipay.com/platform/home.htm。然后使用自己的支付宝登录并验证为开发者。进行身份验证时,您必须输入自己的相关个人信息。我不会在这里谈论如何进行身份验证。这是一个简单的“下一步”傻瓜式操作。然后在平台首页点击“文档中心”访问相关Android集成开发文档,然后下载支付宝集成SDK和demo。接入支付宝需要企业用户(即需要营业执照、统一社会信用代码等信息进行注册),所以个人开发爱好者无法做支付宝官方开发接入。不过后来支付宝推出了沙盒模式,一来可以方便项目开发时的测试,二来个人用户也可以熟练掌握支付宝继承的操作。可惜发现鸿蒙版的SDK不支持沙箱模式(我还没确认是我自己的问题还是官方的问题,官方也没有找到是否支持沙盒模式的说明沙盒)。我还在想办法反馈给阿里和华为。以下是基于沙盒环境开发的案例讲解1、登录开发者平台进入沙盒页面(前提是已经完成开发者认证):https://open.alipay.com/platform/manageHome.htm点击红色区域标注的“Sandbox”,进入后界面如下,这里有时会报数据错误,沙箱环境不是很稳定,多刷新几次,阿里会定期维护的,就是过段时间确实无法操作,此时可以获取到对应的APPID,商户ID等信息,此时只需要在沙箱环境中配置一个RSA密钥即可。2、RSA2(SHA256)密钥生成方法工具下载:https://doc.open.alipay.com/docs/doc.htm?treeId=291&articleId=106097&docType=1①解压后双击文件“RSA签名验证WINDOWS版中“tool.bat”运行工具,Mac版中双击“RSASignatureVerificationTool.command”文件运行工具。②生成密钥:快速生成RSA私钥和公钥选择密钥格式,非Java开发语言选择PKCS1格式生成私钥;Java开发语言选择PKCS8格式生成私钥,选择密钥长度,生成2048位RSA私钥。③设置RSA2点击后,将之前生成的公钥复制如下,然后点击保存注意:不要经常使用工具生成公钥和私钥,每次生成都会不一样,请重新进入此页面修改公钥重新生成后的公钥和私钥是一对,必须一致。私钥稍后将在服务器和应用程序中使用。3、下载沙盒版钱包APP,支付宝会提供一个测试账户,里面有余额。扫码下载。手机安装沙盒版支付宝后,使用上图中的账号密码登录。4.下载官方demo下载官方demo。官方demo下载的官方demo的代码结构如下导入DevEcoStudio,然后配置app签名、key等参数。五、代码说明我没有直接使用官方demo,而是自己重新创建了一个项目,然后在官方demo中引入了相关的核心代码。我的项目源码可以在附件中下载(1)导入sdk并添加依赖implementationfiles('libs/alipaysdk-harmony-15.8.01-9adcf86.har')注意:这里虽然介绍了libs下的所有har库,但是如果不单独引入支付宝sdk依赖,写代码时api会被标红,不会有api关联,虽然最后编译运行不会报错。(2)在真机上运行调试并配置签名信息如果要在鸿蒙真机上运行demo,需要在Project和Module的build.gradle中配置调试签名:也可以使用IDE自带的signaturesettings接口配置,请参考HarmonyOS文档-真机调试。调试签名的获取过程请参考应用市场文档-HarmonyOS应用调试。(3)修改PayDemoActivityC中的APPID和RSA2_PRIVATE。这个APPID就是之前沙盒环境下的APPID(如果是正式的业务环境就是自己创建的应用APP的APPID),RSA2_PRIVATE就是自己用工具生成的私钥。在正式环境下,私钥一定不能放在app中,而是由服务器生成。(4)根据沙盒环境下安卓版支付宝sdk的操作方法,需要添加如下代码(商业环境不要添加)开启沙盒环境,否则无法激活支付宝沙盒版钱包.这时候,问题就来了。目前如果在鸿蒙版sdk中加入此代码,则无法调用支付宝沙盒版钱包,也无法调用支付宝app正式版。而是直接提示报错。报错截图如下。下图是我在鸿蒙真机上安装的各种APP。快捷支付是我开发的demo,然后安装了支付宝app正式版和沙盒版app。如果把EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX)这行代码去掉,那么就可以调整支付宝正式版了,那么这时候就需要正式版的APPID和key,需要营业执照来认证。由于我没有申请商业版的key,所以没有通过后续的测试。更多信息请访问:Harmonyos.51cto.com,与华为官方合作打造的鸿蒙技术社区