合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
本模块提供直接通过依赖包拉起第三方支付方式收银台能力。
模型约束: 此接口仅可在Stage模型下使用。
元服务API: 从版本6.0.0(20)开始,该接口支持在元服务中使用。
系统能力: SystemCapability.Payment.ThirdPaymentService
起始版本: 6.0.0(20)
import { thirdPaymentService } from '@kit.PaymentKit'; 三方支付方式。
模型约束: 此接口仅可在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' | 拉起微信小程序。 |
支付请求客户端。
模型约束: 此接口仅可在Stage模型下使用。
元服务API: 从版本6.0.0(20)开始,该接口支持在元服务中使用。
系统能力: SystemCapability.Payment.ThirdPaymentService
起始版本: 6.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。 |
示例:
import { thirdPaymentService } from '@kit.PaymentKit';
import { common } from '@kit.AbilityKit';
@Entry
@Component
struct Index {
@State private thirdPayClient: thirdPaymentService.ThirdPayClient | null = null;
aboutToAppear() {
try {
const thirdAppid ='third_appid_123456'
// 初始化第三方支付客户端
this.thirdPayClient = new thirdPaymentService.ThirdPayClient(
this.getUIContext().getHostContext() as common.UIAbilityContext,
thirdPaymentService.PayMethod.WECHAT_PAY,
thirdAppid
);
} catch (error) {
console.error('支付客户端初始化失败:', error);
// 可在此处提示用户或跳转错误页面
}
}
payButtonClicked() {
if (!this.thirdPayClient) {
console.error('支付客户端未初始化');
return;
}
// 调用支付接口,传递订单信息
this.thirdPayClient.pay('{"xxx1":"***", "xxx2":"***", "token":"***"}');
}
build() {
Column() {
Button('立即支付')
.onClick(() => {
this.payButtonClicked();
})
}
.width('100%')
.height('100%')
.justifyContent(FlexAlign.Center)
}
} 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的上下文信息
import { thirdPaymentService } from '@kit.PaymentKit';
import { common } from '@kit.AbilityKit';
export let thirdPayClient: thirdPaymentService.ThirdPayClient | undefined = undefined;
@Entry
@Component
struct Index {
context: common.UIAbilityContext = this.getUIContext().getHostContext() as common.UIAbilityContext;
thirdPaymentServicePayPromise() {
thirdPayClient = new thirdPaymentService.ThirdPayClient(this.context, thirdPaymentService.PayMethod.WECHAT_PAY, 'appid_123456');
// 不同支付方式参数构建参考示例如下:
// PayMethod.WECHAT_PAY:'{"appId":"***","partnerId":"***","prepayId":"***","packageValue":"***","nonceStr":"***","timeStamp":"***","sign":"***","extData":"***","token":"***"}'
// PayMethod.ALI_PAY:'{"orderInfo":"***", "token":"***"}'
// PayMethod.WECHAT_MINI_PROGRAM:'{"userName":"原始id", "path":"小程序启动路径", "miniProgramType":"小程序的类型,0-正式版 1-开发版 2-体验版 默认0", "extData":"***", "token":"***"}'
const payInfo = '{"xxx1":"***", "xxx2":"***", "token":"***"}';
thirdPayClient.pay(payInfo).then(() => {
// 支付成功
console.info('succeeded in paying.');
});
}
build() {
Column() {
Button('thirdPaymentServicePayPromise')
.type(ButtonType.Capsule)
.width('50%')
.margin(20)
.onClick(() => {
this.thirdPaymentServicePayPromise();
})
}
.width('100%')
.height('100%')
}
} 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. |
示例:
import { UIAbility, Want } from '@kit.AbilityKit';
// 需要从thirdPayClient对象定义文档中导入三方支付客户端对象,以下为示例,具体以应用定义路径为准。
import { thirdPayClient } from '../pages/thirdPaymentServicetest';
// 如果已有Ability实现类,可直接添加onNewWant生命周期方法处理即可。
export default class EntryAbility extends UIAbility {
onNewWant(want: Want): void {
// 需要和拉起支付收银台的三方支付客户端对象为同一个
if (thirdPayClient) {
console.info('clientForThirdPayment handlePayCallback');
let handlePayCallback = thirdPayClient.handlePayCallback(want);
console.info(`clientForThirdPayment handlePayCallback result: ${handlePayCallback}`);
}
}
}