哪有可以专门做外包项目的网站,wordpress目录导航主题,网站建设与维护兼职,o2o模式的电商平台网站有哪些鸿蒙Next-拉起支付宝的三种方式——教程
鸿蒙Next系统即将上线#xff0c;应用市场逐渐丰富、很多APP都准备接入支付宝做支付功能#xff0c;目前来说有三种方式拉起支付宝#xff1a;通过支付宝SDK拉起、使用OpenLink拉起、传入支付宝包名使用startAbility拉起。以上的三种…鸿蒙Next-拉起支付宝的三种方式——教程
鸿蒙Next系统即将上线应用市场逐渐丰富、很多APP都准备接入支付宝做支付功能目前来说有三种方式拉起支付宝通过支付宝SDK拉起、使用OpenLink拉起、传入支付宝包名使用startAbility拉起。以上的三种拉起方式都是指的Next应用不包含元服务元服务有自己的生态限制暂时不支持拉起第三方应用。
一、使用支付宝SDK拉起
OpenHarmony第三方仓库包有支付宝的SDK
仓库地址https://ohpm.openharmony.cn/#/cn/detail/cashier_alipay%2Fcashiersdk
官方Demo地址
https://alidocs.dingtalk.com/i/nodes/qnYMoO1rWxrkmoj2IOpZR6yaJ47Z3je9?iframeQueryutm_source%3Dportal%26utm_medium%3Dportal_recentrnd0.2928087218087806 官方的Demo需要登录钉钉去请求授权一般都能进
代码实现
onAlipay() {///这个支付信息对象的所有值都应该服务器返回let obj new PayInfo(); //支付信息obj.appId 1111111111111;obj.orderId 1111111111obj.productName 1年VIPobj.amount 10obj.notifyUrl https://www.huawei.comobj.rsaPrivate MIICXQIBAAKBgQCL0rfjLl3neHleNMOsYTW8r0QXZ5RVb2p/vvY3fJNNugvJ7lo4fdBzLN4mDxTz4MTOhi5e2yeAqxv3nKpNmPzC5LmDjhHZURhwbqFtIpZD51mOfno2c3MDwlrsVi6mTypbNu4uaQzw/TOpwufSLWF7k6p2pLoVmmqJzQiD0QIDAQABAoGAakB1risquv9D4zX7hCv9MTFwGyKSfpJOYhkIjwKAik7wrNeeqFEbisqv35FpjGq3Q1oJpGkem4pxaLVEyZOHONefZ9MGVChT/MNH5b0FJYWl392RZy8KCdq376Vt4gKVlABvaV1DkapLnLh7LMo/bENudARsxD55IGObMU19lkCQQDwHmzWPMHfc3kdY6AqiLrOssMVIAhQqZOHhDe0aW2gZtwiWeYK1wB/fRxJ5esk1sScOWgzvCN/oGJLhU3kipHAkEAysNoSdG2oWADxlIt4W9kUiiiqNgimHGMHPwp4JMxupHMTm7D9XtGUIiDijZxunHv3kvktNfWj3Yji0661zHVJwJBAM8TDf077F4NsVc9AXVs8N0sq3xzqwQD/HPFzfq6hdR8tVY5yRMb4X7SX4EDPORKKsgnYcur5lk8MUi7r072iUCQQC8xQvUnefcdpRyrR4StJlQvucogwjTKMbYRBDygXkIlTJOIorgudFlrKP/HwJDoY4uQNl8gQJb/1LdrKwIe7FAkBl0TNtfodGrDXBHwBgtN/t3pyisz7OpJdUklKE7zMSBuLd1E3O4JMzvWP9wEE7JDbbrjgK4/cxxUHUTkk592OrderInfoUtil.getOrderInfo(obj).then(orderInfo {// orderInfo 由服务端生成// 第二个参数 控制是否展示支付宝loadingnew Pay().pay(orderInfo, true).then((result) {let message resultStatus: ${result.get(resultStatus)} memo: ${result.get(memo)} result: ${result.get(result)};console.log(支付结果 message);if (result.get(resultStatus) 9000) { //支付成功console.log(支付成功);} else {console.log(支付失败);}}).catch((error: BusinessError) {LogUtil.e(aLiParSdk:, error)});})
}完整的代码可以参考后面的git仓库详细的描述在另外一位博主上也有详细的解释 博主链接鸿蒙Next-支付宝SDK接入教程_怎么唤起鸿蒙版支付宝-CSDN博客
完整代码仓库地址https://gitee.com/qq1963861722/AliPayDemo.git
效果图 二、使用OpenLink拉起支付宝
使用OpenLink可以实现应用之间的跳转具体的支付宝也可以参考拉起游览器的案例进行实现
使用API UIAbilityContext.openLink 链接UIAbilityContext-application-接口依赖的元素及定义-ArkTS API-Ability Kit程序框架服务-应用框架 - 华为HarmonyOS开发者 (huawei.com)
API官方参考用法链接 使用Deep Linking实现应用间跳转-指向性跳转-应用间跳转-Stage模型开发指导-Ability Kit程序框架服务-应用框架 - 华为HarmonyOS开发者 (huawei.com)
拉起支付宝代码参考
let context getContext(this) as common.UIAbilityContext;
let link: string alipays://platformapi/startapp //支付宝拉起的专属链接
let openLinkOptions: OpenLinkOptions {appLinkingOnly: false,parameters: { demo_key: demo_value }
};try {context.openLink(link,openLinkOptions,(err, result) {LogUtil.e(TAG, openLink callback error.code: ${JSON.stringify(err)});LogUtil.i(TAG, openLink callback result: ${JSON.stringify(result.resultCode)});LogUtil.i(TAG, openLink callback result data: ${JSON.stringify(result.want)});}).then(() {LogUtil.i(TAG, open link success.);}).catch((err: BusinessError) {LogUtil.e(TAG, open link failed, errCode ${JSON.stringify(err.code)});});
} catch (e) {LogUtil.e(TAG, exception occured, errCode ${JSON.stringify(e.code)});
}完整代码仓库地址 https://gitee.com/qq1963861722/AliPayDemo.git
实现效果参考
三、使用startAbility拉起支付宝
在鸿蒙Next系统中知道应用的包名就可以通过startAbility拉起另一个应用明确了拉起的应用使用显式Want传入包名进行拉起
使用API UIAbilityContext.startAbility
API官方参考用法链接 https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-inner-application-uiabilitycontext-V5#uiabilitycontextstartability
支付宝的包名获取方式
1.通过hdc命令进行获取(使用命令行进行获取)
hdc shell aa dump -lhdc命令的使用链接hdc-调试工具-开发 - 华为HarmonyOS开发者 (huawei.com)
2.通过连接真机在编译器中的Device File Browser获取包名
路径/data/app/el2/100/database/com.alipay.mobile.client
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
代码实现
const context: common.UIAbilityContext getContext(this) as common.UIAbilityContext;
let want: Want {deviceId: ,bundleName: com.alipay.mobile.client,abilityName: EntryAbility,flags: wantConstant.Flags.FLAG_INSTALL_ON_DEMAND, //如果未安装指定的功能请安装该功能parameters: {//自定义参数传递页面信息}
}
context.startAbility(want)完整代码仓库地址 https://gitee.com/qq1963861722/AliPayDemo.git
效果实现 以上是支付宝在鸿蒙Next中常见的三种拉起方式希望对其他开发人员有所帮助、若文中有不足之处望读者谅解并指出。