更新记录

1.0.0(2026-03-30)

Apple Pay支付(支付内购,重复下单,订阅支付)


平台兼容性

leven-applePay — 苹果内购支付组件

Apple AppStore 内购插件,支持普通内购、重复购买同一订单、订阅支付。

符合 easycom 规范,引入后自动注册,无需手动 import。

如有问题可联系微信:luwenpng


使用方法

基础用法

<template>
  <leven-apple-pay
    :product-id="plan.apple_pid"
    :bundle-id="bundleId"
    :payment-form="paymentForm"
    :pay-api="paymentPayApi"
    :verify-api="paymentAppleVerifyApi"
    :abort-api="appleAbortApi"
    @success="onPaySuccess"
    @fail="onPayFail"
    @cancel="onPayCancel"
  />
</template>

<script setup>
const onPaySuccess = ({ verifyResult }) => {
  console.log('支付成功', verifyResult);
};
const onPayFail = (err) => {
  console.error('支付失败', err);
};
const onPayCancel = (err) => {
  console.log('用户取消支付', err);
};
</script>

自定义按钮样式(slot)

<leven-apple-pay
  :product-id="plan.apple_pid"
  :bundle-id="bundleId"
  :payment-form="paymentForm"
  :pay-api="paymentPayApi"
  :verify-api="paymentAppleVerifyApi"
  :abort-api="appleAbortApi"
  @success="onPaySuccess"
>
  <button class="my-btn">立即购买 ¥{{ plan.price }}</button>
</leven-apple-pay>

Props

名称 类型 必填 默认值 说明
productId String Apple 商品 ID(apple_pid)
bundleId String App Bundle ID
paymentForm Object 创建订单所需的业务参数
payApi Function 创建服务器预订单的接口函数
verifyApi Function 验证苹果收据的接口函数
abortApi Function 取消/中断订单的接口函数
videoId String '' 可选业务参数
extInfo Object {} 透传给 verifyApi 的扩展参数
loadingText String 'Loading...' loading 提示文案

Events

事件 Payload 说明
success { verifyResult } 支付 + 后端验证均成功
fail error 支付失败或后端验证失败
cancel error 用户主动取消(errCode: -2)

接口函数规范

三个必传的接口函数须返回 Promise:

// payApi:创建预订单,须返回包含 order_id 和 apple_user_token 的对象
async function paymentPayApi(params) {
  // params = { ...paymentForm, video_id }
  return { order_id: 'xxx', apple_user_token: 'xxx' };
}

// verifyApi:验证苹果票据
async function paymentAppleVerifyApi(params) {
  // params = { order_id, transaction_id, bundle_id, app_data }
  return { /* 业务返回数据 */ };
}

// abortApi:取消/中断订单
async function appleAbortApi(params) {
  // params = { order_id, code }
}

注意事项

  • 仅支持 iOS App 真机运行,模拟器不支持 Apple IAP
  • 组件初始化时会自动清理历史未完成订单(漏单补偿)
  • manualFinishTransaction: true 模式下,组件在后端验证成功后才关闭交易

隐私、权限声明

1. 本插件需要申请的系统权限列表:

无1

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率: