HarmonyOS鸿蒙Next中应用内有H5唤起支付宝app支付的场景解决方案

HarmonyOS鸿蒙Next中应用内有H5唤起支付宝app支付的场景解决方案 应用内有H5唤起支付宝app,支付的场景。支付宝没有给出对应的方法,需要一个解决方案。这是支付宝的文档。

https://opendocs.alipay.com/open/203/107091?pathHash=45006f4f

3 回复

你可以使用 want 启动指定的应用和页面,并携带所需的参数。

Want 介绍:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/want-overview-V13

显示和隐式 Want 匹配规则:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/explicit-implicit-want-mappings-V13

启动应用内组件:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/uiability-intra-device-interaction-V13#启动应用内的uiability

打开网址:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/explicit-implicit-want-mappings-V13#隐式want匹配原理

在通过 startAbility 拉起另一个应用时,如果您已经知道目标应用的 Bundle 名称和 Ability 名称,可以直接在 Want 参数中设置该应用的 bundleName 和 abilityName。如果不确定 bundleName 和 abilityName,通常使用隐式 Want 启动方式,可以在调用方的 Want 参数中的 entities 和 actions 字段中配置相关信息,系统会根据这些信息匹配到符合要求的 Ability。

通过 startAbility 去进行拉起支付宝应用,如果不确定 bundleName 和 abilityName,就用隐式 Want 启动方式,在调用方的 Want 参数中的 entities 和 actions 字段中配置相关信息,系统会根据这些信息匹配到符合要求的 Ability。

h5 拉起并进行支付,先获取 context

参考下:

let context = getContext(this) as common.UIAbilityContext;
Button("startability")
  .fontSize(36)
  .fontWeight(FontWeight.Bold)
  .onClick(() => {
    let want2: Want = {
      action: 'ohos.want.action.viewData',
      entities: ['entity.system.browsable'],
      abilityName: 'MainAbility',
      uri: 'https://www.kugou.com/about/userpwdrule.html',
    }
    context.startAbility(want2)
  })
import { Pay } from '@cashier_alipay/cashiersdk/src/main/ets/api/Pay';

...

Button(`支付${this.amount.toFixed(2)}元${this.extraText}`)
  .width('100%')
  .fontColor(Color.Black)
  .backgroundColor($r('app.color.deepYellow_background'))
  .margin({ bottom: 15 })
  .onClick(() => {
    OrderInfoUtil.getOrderInfo().then((orderInfo) => {
      new Pay().payWithNav(orderInfo, true, (name: string, params: Object) => {
        this.pageInfos.pushPathByName(name, params);
      }, this.pageInfos).then((result) => {
        let message =
          `resultStatus: ${result.get('resultStatus')} memo: ${result.get('memo')} result: ${result.get('result')}`;
        console.log(message);
        promptAction.showToast({
          message: message,
          duration: 2000,
          bottom: 360,
        })
      }).catch((error: BusinessError) => {
        console.log(error.message);
        promptAction.showToast({
          message: error.message,
          duration: 2000,
          bottom: 360,
        })
      });
    });
  })

参数设置:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/explicit-implicit-want-mappings-V13#want

这边和解决方案沟通,您的参数设置有问题,将选参移除就可以了

更多关于HarmonyOS鸿蒙Next中应用内有H5唤起支付宝app支付的场景解决方案的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,应用内通过H5页面唤起支付宝App支付的场景,可以通过以下步骤实现:

  1. 集成支付宝SDK:首先,确保在鸿蒙应用中集成了支付宝的SDK。支付宝SDK提供了与支付宝App进行交互的接口,包括支付、授权等功能。

  2. 配置URL Scheme:在鸿蒙应用中配置URL Scheme,以便支付宝App可以通过该Scheme唤起应用。在config.json文件中添加如下配置:

{
  "app": {
    "bundleName": "com.example.app",
    "vendor": "example",
    "version": {
      "code": 1,
      "name": "1.0"
    }
  },
  "abilities": [
    {
      "name": ".MainAbility",
      "icon": "$media:icon",
      "label": "$string:mainAbility_label",
      "launchType": "standard",
      "metaData": {
        "customizeData": [
          {
            "name": "urlScheme",
            "value": "exampleapp"
          }
        ]
      }
    }
  ]
}
  1. H5页面调用支付宝支付:在H5页面中,通过JavaScript调用支付宝的支付接口。可以使用window.location.href或window.open方法,将支付信息传递给支付宝App。例如:
window.location.href = 'alipay://platformapi/startapp?appId=20000067&url=encoded_payment_url';
  1. 处理支付结果回调:在鸿蒙应用中,通过Ability的生命周期方法处理支付宝支付结果的回调。在onAbilityResult方法中,可以获取支付结果并进行相应的处理。

  2. 调试与测试:在实际开发过程中,确保在鸿蒙模拟器或真机上进行充分的测试,确保支付流程的顺畅。

通过以上步骤,可以在HarmonyOS鸿蒙Next应用中实现通过H5页面唤起支付宝App支付的功能。

在HarmonyOS鸿蒙Next中,实现应用内H5页面唤起支付宝App支付的解决方案如下:

  1. 配置支付宝SDK:在鸿蒙应用项目中集成支付宝SDK,确保支付功能能够正常调用。

  2. H5页面调用支付:在H5页面中,通过JavaScript调用支付宝的支付接口,生成支付订单信息。

  3. 唤起支付宝App:使用鸿蒙的系统能力,通过startAbility方法唤起支付宝App,传递支付订单信息。

  4. 处理支付结果:在支付宝App完成支付后,通过回调或重定向返回应用,处理支付结果并更新页面状态。

确保在开发过程中,遵循支付宝和鸿蒙的官方文档,进行正确的配置和调试。

回到顶部