文档管理中心

thirdPaymentService(三方支付服务)

Phone6.0.0(20)+PC/2in16.0.0(20)+Tablet6.0.0(20)+

本模块提供直接通过依赖包拉起第三方支付方式收银台能力。

模型约束: 此接口仅可在Stage模型下使用。

元服务API: 从版本6.0.0(20)开始,该接口支持在元服务中使用。

系统能力: SystemCapability.Payment.ThirdPaymentService

起始版本: 6.0.0(20)

导入模块

收起
自动换行
深色代码主题
复制
  1. import { thirdPaymentService } from '@kit.PaymentKit';

PayMethod

Phone6.0.0(20)+PC/2in16.0.0(20)+Tablet6.0.0(20)+

三方支付方式。

模型约束: 此接口仅可在Stage模型下使用。

元服务API: 从版本6.0.0(20)开始,该接口支持在元服务中使用。

系统能力: SystemCapability.Payment.ThirdPaymentService

起始版本: 6.0.0(20)

展开
名称 说明
WECHAT_PAY 'wechat_pay' 微信支付。
ALI_PAY 'ali_pay' 支付宝支付。
WECHAT_MINI_PROGRAM 'wechat_mini_program' 拉起微信小程序。

ThirdPayClient

Phone6.0.0(20)+PC/2in16.0.0(20)+Tablet6.0.0(20)+

支付请求客户端。

模型约束: 此接口仅可在Stage模型下使用。

元服务API: 从版本6.0.0(20)开始,该接口支持在元服务中使用。

系统能力: SystemCapability.Payment.ThirdPaymentService

起始版本: 6.0.0(20)

constructor

Phone6.0.0(20)+PC/2in16.0.0(20)+Tablet6.0.0(20)+

constructor(context: common.UIAbilityContext, payMethod: PayMethod, thirdAppId: string);

构造器,构造三方支付等请求客户端ThirdPayClient实例。

模型约束: 此接口仅可在Stage模型下使用。

元服务API: 从版本6.0.0(20)开始,该接口支持在元服务中使用。

系统能力: SystemCapability.Payment.ThirdPaymentService

起始版本: 6.0.0(20)

参数

展开
参数名 类型 必填 说明
context common.UIAbilityContext UIAbility上下文。
payMethod PayMethod 支付方式。
thirdAppId string 三方支付应用appID。

示例

收起
自动换行
深色代码主题
复制
  1. import { thirdPaymentService } from '@kit.PaymentKit';
  2. import { common } from '@kit.AbilityKit';
  3. @Entry
  4. @Component
  5. struct Index {
  6. @State private thirdPayClient: thirdPaymentService.ThirdPayClient | null = null;
  7. aboutToAppear() {
  8. try {
  9. const thirdAppid ='third_appid_123456'
  10. // 初始化第三方支付客户端
  11. this.thirdPayClient = new thirdPaymentService.ThirdPayClient(
  12. this.getUIContext().getHostContext() as common.UIAbilityContext,
  13. thirdPaymentService.PayMethod.WECHAT_PAY,
  14. thirdAppid
  15. );
  16. } catch (error) {
  17. console.error('支付客户端初始化失败:', error);
  18. // 可在此处提示用户或跳转错误页面
  19. }
  20. }
  21. payButtonClicked() {
  22. if (!this.thirdPayClient) {
  23. console.error('支付客户端未初始化');
  24. return;
  25. }
  26. // 调用支付接口,传递订单信息
  27. this.thirdPayClient.pay('{"xxx1":"***", "xxx2":"***", "token":"***"}');
  28. }
  29. build() {
  30. Column() {
  31. Button('立即支付')
  32. .onClick(() => {
  33. this.payButtonClicked();
  34. })
  35. }
  36. .width('100%')
  37. .height('100%')
  38. .justifyContent(FlexAlign.Center)
  39. }
  40. }

pay

Phone6.0.0(20)+PC/2in16.0.0(20)+Tablet6.0.0(20)+

pay(payInfo: string): Promise<void>;

该方法提供拉起三方支付方式收银台等功能,调用方法前请确保网络已连接,调用该方法后会拉起三方支付收银台,完成后使用Promise异步回调。

模型约束: 此接口仅可在Stage模型下使用。

元服务API: 从版本6.0.0(20)开始,该接口支持在元服务中使用。

系统能力: SystemCapability.Payment.ThirdPaymentService

起始版本: 6.0.0(20)

参数

展开
参数名 类型 必填 说明
payInfo string 拉起收银台传入的订单信息,payInfo是json字符串的格式(具体参数根据三方支付方式拉起收银台要求传递,参考payInfo)。示例为{"xxx1":"", "xxx2":"", "token":"***"}

返回值

展开
类型 说明
Promise<void> Promise对象,无返回结果。

错误码

以下错误码的详细介绍请参见ArkTS API错误码

展开
错误码ID 错误信息
801 Capability not supported. Failed to call the API due to limited device capabilities.
1022830000 The operation was canceled by the user.
1022830001 Pay failed.
1022830002 The payInfo invalid. Possible causes: 1.Data format is not json string; 2.Mandatory parameters are left unspecified.

示例

示例中的context的获取方式请参见获取UIAbility的上下文信息

收起
自动换行
深色代码主题
复制
  1. import { thirdPaymentService } from '@kit.PaymentKit';
  2. import { common } from '@kit.AbilityKit';
  3. export let thirdPayClient: thirdPaymentService.ThirdPayClient | undefined = undefined;
  4. @Entry
  5. @Component
  6. struct Index {
  7. context: common.UIAbilityContext = this.getUIContext().getHostContext() as common.UIAbilityContext;
  8. thirdPaymentServicePayPromise() {
  9. thirdPayClient = new thirdPaymentService.ThirdPayClient(this.context, thirdPaymentService.PayMethod.WECHAT_PAY, 'appid_123456');
  10. // 不同支付方式参数构建参考示例如下:
  11. // PayMethod.WECHAT_PAY:'{"appId":"***","partnerId":"***","prepayId":"***","packageValue":"***","nonceStr":"***","timeStamp":"***","sign":"***","extData":"***","token":"***"}'
  12. // PayMethod.ALI_PAY:'{"orderInfo":"***", "token":"***"}'
  13. // PayMethod.WECHAT_MINI_PROGRAM:'{"userName":"原始id", "path":"小程序启动路径", "miniProgramType":"小程序的类型,0-正式版 1-开发版 2-体验版 默认0", "extData":"***", "token":"***"}'
  14. const payInfo = '{"xxx1":"***", "xxx2":"***", "token":"***"}';
  15. thirdPayClient.pay(payInfo).then(() => {
  16. // 支付成功
  17. console.info('succeeded in paying.');
  18. });
  19. }
  20. build() {
  21. Column() {
  22. Button('thirdPaymentServicePayPromise')
  23. .type(ButtonType.Capsule)
  24. .width('50%')
  25. .margin(20)
  26. .onClick(() => {
  27. this.thirdPaymentServicePayPromise();
  28. })
  29. }
  30. .width('100%')
  31. .height('100%')
  32. }
  33. }

handlePayCallback

Phone6.0.0(20)+PC/2in16.0.0(20)+Tablet6.0.0(20)+

handlePayCallback(want: Want): boolean;

该方法提供处理支付处理结果回调功能,调用方法前请确保网络已连接,请求处理完成后使用返回布尔类型结果。

模型约束: 此接口仅可在Stage模型下使用。

元服务API: 从版本6.0.0(20)开始,该接口支持在元服务中使用。

系统能力: SystemCapability.Payment.ThirdPaymentService

起始版本: 6.0.0(20)

参数

展开
参数名 类型 必填 说明
want Want 应用组件间的信息传递的载体。

返回值

展开
类型 说明
boolean

回调处理结果(该结果为用户支付操作处理结果,非实际支付结果,实际支付结果以三方支付结果为准)。

- true:用户支付操作成功

- false:用户支付操作失败

错误码

以下错误码的详细介绍请参见ArkTS API错误码

展开
错误码ID 错误信息
801 Capability not supported. Failed to call the API due to limited device capabilities.

示例

收起
自动换行
深色代码主题
复制
  1. import { UIAbility, Want } from '@kit.AbilityKit';
  2. // 需要从thirdPayClient对象定义文档中导入三方支付客户端对象,以下为示例,具体以应用定义路径为准。
  3. import { thirdPayClient } from '../pages/thirdPaymentServicetest';
  4. // 如果已有Ability实现类,可直接添加onNewWant生命周期方法处理即可。
  5. export default class EntryAbility extends UIAbility {
  6. onNewWant(want: Want): void {
  7. // 需要和拉起支付收银台的三方支付客户端对象为同一个
  8. if (thirdPayClient) {
  9. console.info('clientForThirdPayment handlePayCallback');
  10. let handlePayCallback = thirdPayClient.handlePayCallback(want);
  11. console.info(`clientForThirdPayment handlePayCallback result: ${handlePayCallback}`);
  12. }
  13. }
  14. }