【HarmonyOS】鸿蒙应用接入微信付出

火影  金牌会员 | 2024-12-19 06:45:47 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 801|帖子 801|积分 2403

【HarmonyOS】鸿蒙应用接入微信付出

前言

1.接入微信付出,除了鸿蒙应用接入的工作量,还有服务器开辟工作量。这里需要留意,如果你的应用,android ios版本没有接入过微信付出,那鸿蒙微信付出的工作量就不只是鸿蒙应用接入了。
2.微信付出接入,最麻烦的是需要在微信开放平台注册应用稽核。如果你的应用在Android和 IOS都没有稽核过,这里时间会比力长。微信开放平台地址
一、下载鸿蒙版微信开放SDK和示例DEMO

1.WeChat_Open_SDK:

点击跳转@tencent/wechat_open_sdk(V1.0.3)
2.官方示例DEMO下载

点击下载OpenSDK-1.0.0.zip
二、运行示例项目

微信的示例项目进行配置同步后,设置自动签名就可以直接运行成功,效果如下:

可以看到微信付出相关在,付出按钮,跳转到的页面中 Pay.ets

点击跳转付出,就会拉起微信,进入付出页。

但是付出参数如果不对,就会提示:
!查抄pay.ets类,配置的付出参数。并且需要在Constants.ets中进行配置:

微信开放平台需要注册你的鸿蒙应用,配置包名等信息。微信最麻烦的就是这个,没有提供一个测试id进行效果查察,只能先去注册你的应用。点击鸿蒙应用手册
三、copy付出相关代码进行接入

1.安装SDK依赖:
sdk版本以三方库的最新版本为准:

  1. "dependencies": {
  2.     "@tencent/wechat_open_sdk": "1.0.3"
  3.   }
复制代码

2.参考Pay.ets中的代码,copy【付出】相关代码:
  1. import { OnWXResp, WXApi, WXEventHandler } from '../model/WXApiWrap';
  2. import * as wxopensdk from '@tencent/wechat_open_sdk';
  3. import { common } from '@kit.AbilityKit';
  4. export const kRoute = "Pay"
  5. @Entry({ routeName: kRoute })
  6. @Component
  7. struct Pay {
  8.   private wxApi = WXApi
  9.   private wxEventHandler = WXEventHandler
  10.   @State payResultText: string = ''
  11.   // 回调处理
  12.   private onWXResp: OnWXResp = (resp) => {
  13.     this.payResultText = JSON.stringify(resp ?? {}, null, 2)
  14.   }
  15.   aboutToAppear(): void {
  16.           // 注册的支付回调
  17.     this.wxEventHandler.registerOnWXRespCallback(this.onWXResp)
  18.   }
  19.   aboutToDisappear(): void {
  20.     this.wxEventHandler.unregisterOnWXRespCallback(this.onWXResp)
  21.   }
  22.   build() {
  23.     Column({ space: 20 }) {
  24.       Text("跳转支付").fontSize(20).fontWeight("bold").width('100%').padding(16)
  25.       Button("跳转支付").onClick(async () => {
  26.                 // 组装支付订单参数,发送包裹给微信api,唤起微信。
  27.         let req = new wxopensdk.PayReq
  28.         req.partnerId = '2480306091'
  29.         req.appId = 'wx05b3e2e9fc730840'
  30.         req.packageValue = 'Sign=WXPay'
  31.         req.prepayId = 'wx26161523845794ecced251acf2b6860000'
  32.         req.nonceStr = 'vmall_240926161523_993_2774'
  33.         req.timeStamp = '1727338524'
  34.         req.sign = 'rAqsrx5yLfRNBGvlHYuLhUsNK0OPeOLQ5xlvhxFo9guPU4HeNtzRdPaGAXAzXvn7V5chVe8sj3BfvDgwXlCKctCcFIllOgheyZbZ7btFC++9bW0QTijhWo1hZ6LhvjcKQ1zf53RGX7zf7GBu9sheqWPKlWqJJzynBZo8UH5Wow9t/WK5fanNj6ST2U2zPQGxuCH+DBMOKJAhhaalrOXlqj+feEiz1bLAzEmhLzIREgcWJQyZmdI5VO0B8r11ND+o1iBYgoohDUuJc+bd9r6RvmZBSE+HqggWE4p3D0/NzY7mQH+51u0osfOfaTHVLqlUM3IMoXi1vH4a0Qrg1P6c0g=='
  35.         req.extData = 'extData'
  36.                 // 发送操作是否成功
  37.         let finished = await this.wxApi.sendReq(getContext(this) as common.UIAbilityContext, req)
  38.         console.log("send request finished: ", finished)
  39.       }).width('80%')
  40.       Text(this.payResultText)
  41.         .width('80%')
  42.         .fontSize(17)
  43.         .lineHeight(20)
  44.     }
  45.   }
  46. }
复制代码
微信付出业务流程图

付出回调信息code:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

火影

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表