[HarmonyOS Next示例代码]华为支付服务

HarmonyOS next 示例代码全集

华为支付服务

介绍

本示例展示了使用华为支付服务提供的单次支付,签约代扣。

需要使用华为支付服务接口 @kit.PaymentKit

效果预览

示例应用主页面支付页面

img_2.png

img_3.png

Sample工程的配置与使用

在DevEco中配置Sample工程的步骤如下

  1. 创建项目应用
  2. 打开Sample应用,使用AppGallery Connect应用的包名替换app.json5文件中的bundleName属性值。
  3. 使用AppGallery Connect应用的配置更新module.json5文件相关配置,配置client_id及app_id属性值。
  4. 详细可参见指南开发准备

工程目录

entry
  └─src                     
    ├─main                
    │  ├─ets              
    │  │  ├─entryability      // 程序入口类
    │  │  └─pages             // 入口界面
    │  └─resources        
    │      ├─base         
    │      │  ├─element       // 颜色、字体、字符串等资源
    │      │  ├─media         // 图片等资源  
    │      │  └─profile       // 页面配置

具体实现

单次支付:

  • 商户服务器按照商户模型调用Payment Kit提供的直连商户预下单服务商/平台类商户预下单接口获取预下单号(prepayId),然后组建orderStr返回给客户端。
  • 商户客户端调用requestPayment接口调起Payment Kit客户端收银台。
  • 用户在Payment Kit客户端收银台完成支付操作后,Payment Kit客户端会收到支付结果信息。
  • Payment Kit客户端展示支付结果页,用户关闭支付结果页后Payment Kit客户端会返回支付状态给商户客户端。

签约代扣:

  • 商户服务器按照商户模型调用Payment Kit提供的预签约接口获取预下单号(preSignNo),然后返回给客户端。
  • 商户客户端构建contractStr参数,调用requestContract接口调起Payment Kit客户端签约收银台。
  • 用户在Payment Kit客户端签约收银台完成签约操作后,Payment Kit客户端会收到签约结果信息。
  • Payment Kit客户端展示签约结果页,用户关闭签约结果页后Payment Kit客户端会返回商户客户端。
  • 签约完成后,Payment Kit服务器会调用回调接口返回签约结果信息给商户服务器。
  • 商户服务器收到签约结果回调响应后,使用SM2验签方式对签约结果进行验签。
  • 签约完成后,商户服务器可以调用Payment Kit提供的申请免密代扣接口,完成扣款服务。

参考

  1. entry/src/main/ets/pages/Index.ets

依赖

  1. AppScope/app.json5下"bundleName"配置需要与您在AppGallery Connect创建应用时的包名保持一致。

  2. 您需要更新entry/src/main/module.json5文件中的[module -> metadata]配置项:

    • 其中app_id的“value”的值为开发者的APP ID(在AppGallery Connect网站点击“我的项目”,在项目列表中找到您的项目,在“项目设置 > 常规”页面的“应用”区域获取“APP ID”的值),详见下图的标号1处。
    • 其中client_id的“value”的值为开发者的OAuth 2.0客户端ID(在AppGallery Connect网站点击“我的项目”,在项目列表中找到您的项目,在“项目设置 > 常规”页面的“应用”区域获取“OAuth 2.0客户端ID(凭据):Client ID”的值),详见下图的标号2处。
    AppGallery Connect 应用页面

    agc_app.png

    配置内容为:

    {
        "module": {
            // ...
            "metadata": [
                {
                    "name": "app_id",
                    "value": "***"
                },
                {
                    "name": "client_id",
                    "value": "***"
                }
           ]
        }
    }
  3. Index组件中的orderStr需要替换成自己的订单数据,contractStr需要替换成自己的签约信息数据。

约束与限制

  1. HarmonyOS系统:HarmonyOS Next Developer Beta1及以上。
  2. DevEco Studio版本:DevEco Studio Next Developer Beta1及以上。
  3. HarmonyOS SDK版本:HarmonyOS Next Developer Beta1及以上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值