更新记录

1.0.0(2026-10-29)

  • 新增支付宝官方完整 SDK 授权登录与 App 支付统一接入,提供服务端签名参数调用和授权码交付。
  • 新增 SDK 成功、取消、业务失败及结果未知的统一结果与错误码,支付结果继续由服务端核验。
  • 新增原生互斥、等待超时及重复和迟到回执保护,success/fail/complete 至多触发一次。
  • 新增能力检测、SDK 配置版本及安装状态查询、有界脱敏诊断和原生阶段快照。
  • 新增 uni-app Vue2/Vue3 与 uni-app x 示例,包含完整日志复制、固定快照分段和手动复制回退。
  • 新增基础功能配置、高级用法、完整调用流程及分宿主、分平台的兼容性说明。
  • 新增 Android 固定 Maven 依赖、iOS 桥接源码及固定 CocoaPods 配置;iOS 原生编译与设备业务待验证。
  • 新增插件版本、更新日期和诊断标记一致性校验,区分插件源码标记与应用实际构建信息。

平台兼容性

uni-app(5.26)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
√ √ × × - × - - ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × × ×

uni-app x(5.26)

Chrome Safari Android iOS 鸿蒙 微信小程序
× × √ - × ×

其他

多语言 暗黑模式 宽屏模式 蒸汽模式
× × × √

lizhao-alipay-kit 支付宝授权登录与支付

介绍

为 uni-app 和 uni-app x 移动 App 提供支付宝官方完整 SDK 的授权登录、App 支付和脱敏诊断。Android 的 uni-app x 已完成无需账号和真实付款的真机验收;uni-app Android 完整宿主和 iOS 仍待验证,范围见“注意事项”。当前尚未发布到插件市场。

功能特色

能力 用途
授权登录 authorizeAlipay 接收服务端签名授权串,严格检查 SDK 状态、授权业务结果和非空授权码,仅向 success 交付 authCode。
App 支付 payWithAlipay 接收服务端订单串,区分 SDK 成功、取消、失败和结果未知;所有成功仍需服务端核验。
会话与超时 授权与支付共用原生互斥,拒绝并发,不自动排队或重复扣款。本地超时后原生仍忙碌时继续保护,迟到结果不重复触发页面终态。
能力和诊断 getAlipayCapabilitiesSync 检查 SDK、安装状态和原生忙碌;getAlipayDiagnosticsSync 取得有界脱敏快照,clearAlipayDiagnostics 仅清诊断。
完整日志复制 双宿主示例底部提供一键复制完整报告、固定快照分段和复制失败手动回退。授权串、订单串、授权码和签名不写入报告。

适合哪些场景

场景 推荐能力 使用边界
支付宝账号关联或登录 authorizeAlipay 后端提供签名授权串并换码建立业务会话
App 业务订单支付 payWithAlipay 后端签名订单、核验通知与查单,客户端回执不直接入账
授权或支付问题排查 getAlipayDiagnosticsSync 与示例完整报告 报告脱敏;未知结果由服务端核实

适用于自有 Android/iOS App 的支付宝账号关联、服务端换码登录、实物或允许外部支付的业务订单。客户端只负责调用 SDK,业务后端负责应用资格、签名、授权事务、用户会话、查单、通知验签与幂等入账。

不提供退款、代扣、扫码收款、发票、独立 Web 登录或小程序支付。Harmony、Web 和小程序返回明确不支持。iOS 的支付业务还须遵守其发行渠道规则,插件不会将外部支付改为苹果内购。

下载与导入

宿主 示例代码位置
uni-app uni_modules/lizhao-alipay-kit/example/uniapp/index.vue
uni-app x uni_modules/lizhao-alipay-kit/example/uniappx/index.uvue

从基础到进阶:按业务模块使用

基础功能配置示例

接入准备

登录与支付统一由本插件提供。authorizeAlipay 使用后端签名的 authInfo,payWithAlipay 使用后端签名的 orderString;两项功能共用同一个官方完整 SDK 和原生互斥会话。插件没有额外的初始化 API,完成原生集成后直接调用;应用私钥和签名逻辑保留在服务端。

准备项 填写或操作
开发环境 HBuilderX、uni-app / uni-app x 使用 5.33 或兼容的后续版本;实际平台验收范围见“注意事项”
支付宝应用 在开放平台登记自己的应用、Android 包名/签名及 iOS Bundle ID,开通需要的 App 授权或支付能力
授权参数 将服务端返回的完整 authInfo 原样填入“授权登录”,不要改为极简 OAuth URL
支付参数 将服务端返回的完整 orderString 原样填入“App 支付”;金额和业务订单由服务端确定
iOS 回跳 注册应用独占的 scheme,页面填同一值且不带 ://;Android 留空
原生基座 首次集成后原生联编或重打含本插件和官方 SDK 的自定义基座,再打开示例

导入并保留整个 uni_modules/lizhao-alipay-kit/,所有业务 API 从 @/uni_modules/lizhao-alipay-kit 根入口引入。当前尚未发布到插件市场。

文件 用途
uni_modules/lizhao-alipay-kit/example/uniapp/index.vue Vue2/Vue3 选项式 API 完整诊断示例
uni_modules/lizhao-alipay-kit/example/uniappx/index.uvue UTS 与原生 Flex 布局完整诊断示例
uni_modules/lizhao-alipay-kit/example/report.uts 报告身份、环境、脱敏与固定快照分段
uni_modules/lizhao-alipay-kit/static/report.js 从报告源码生成的 uni-app 页面辅助脚本

在自己的 pages.json 注册示例。以下是 uni-app x 单页示例配置;合入已有项目时保留其他路由:

{
  "pages": [{
    "path": "uni_modules/lizhao-alipay-kit/example/uniappx/index",
    "style": { "navigationBarTitleText": "支付宝登录与支付" }
  }]
}

uni-app 对应配置为:

{
  "pages": [{
    "path": "uni_modules/lizhao-alipay-kit/example/uniapp/index",
    "style": { "navigationBarTitleText": "支付宝登录与支付" }
  }]
}

原生依赖与应用配置

依赖已经随插件配置,通常不需要修改,也无需手动拷贝 SDK 二进制。Android 的 uni_modules/lizhao-alipay-kit/utssdk/app-android/config.json:

{
  "minSdkVersion": 21,
  "dependencies": ["com.alipay.sdk:alipaysdk-android:15.8.42"]
}

iOS 的 uni_modules/lizhao-alipay-kit/utssdk/app-ios/config.json:

{
  "deploymentTarget": "12.0",
  "dependencies-pods": [{ "name": "AlipaySDK-iOS", "version": "15.8.30" }],
  "dependencies-pod-resources": "app"
}

插件的 uni_modules/lizhao-alipay-kit/utssdk/app-ios/Info.plist 已声明支付宝查询 scheme。应用自己的回跳 scheme 需在项目根目录 Info.plist 中创建或合并配置;这个应用配置文件由接入者准备,不随插件预置。下面 merchantdemoali 是待替换的示例值,须换成应用独占的已注册值,并在调用中传入同一个值:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>CFBundleURLTypes</key>
    <array>
      <dict>
        <key>CFBundleTypeRole</key><string>Editor</string>
        <key>CFBundleURLName</key><string>scheme</string>
        <key>CFBundleURLSchemes</key>
        <array><string>merchantdemoali</string></array>
      </dict>
    </array>
  </dict>
</plist>

uni-app 也可在 manifest.json 可视化界面设置 iOS URL scheme,避免与上述原生配置重复或冲突。配置变更后重新原生构建,插件会检查实际注册值。首版采用 URL scheme 回跳,不提供 Universal Link 接入;回跳 Hook 在 UTS 层自动注册,无需修改 AppDelegate。

最小核心调用

下面两个函数可放入 uni-app x 页面的 script setup lang="uts",用于 Android;实参须来自自己的后端。省略 appScheme 时默认空串,省略 timeoutMs 时默认等待 180000 毫秒。iOS 必须使用下一节带 appScheme 的调用,uni-app 页面语法见完整示例。

import { authorizeAlipay, payWithAlipay } from '@/uni_modules/lizhao-alipay-kit'

function authorizeWithServerInfo(authInfo: string): void {
  authorizeAlipay({
    authInfo,
    success: result => {
      // 在自己的已鉴权业务请求中提交 result.authCode,不记录或复制该值。
      uni.showToast({ title: '取得授权码,等待后端确认', icon: 'none' })
    },
    fail: error => { uni.showToast({ title: error.errMsg, icon: 'none' }) },
    complete: result => { console.log('授权结束', result.requestId, result.errCode) }
  })
}

function payWithServerOrder(orderString: string): void {
  payWithAlipay({
    orderString,
    success: () => { uni.showToast({ title: 'SDK 返回成功,请后端查单', icon: 'none' }) },
    fail: error => { uni.showToast({ title: error.outcomeUnknown ? '结果未知,请先查单' : error.errMsg, icon: 'none' }) },
    complete: result => { console.log('支付结束', result.requestId, result.errCode) }
  })
}

高级示例

模块一:显式配置和 uni-app x 强类型调用

完整可运行页面位于 uni_modules/lizhao-alipay-kit/example/uniappx/index.uvue。以下函数展示全部可选回调与显式配置,参数来自后端签名串,不在客户端创建私钥或重新编码整个字符串。例中改用等待 30000 毫秒;这只缩短本地等待,不取消外部操作。调用 startAuthorization(authInfo, appScheme) 或 startPayment(orderString, appScheme) 时,Android 的 appScheme 传空串,iOS 传已注册的值,例如与前述 plist 匹配的 merchantdemoali。

import { authorizeAlipay, payWithAlipay, AlipayAuthorizeOptions, AlipayPayOptions } from '@/uni_modules/lizhao-alipay-kit'

function startAuthorization(authInfo: string, appScheme: string): void {
  const options: AlipayAuthorizeOptions = {
    authInfo, appScheme, timeoutMs: 30000,
    success: result => {
      // 将result.authCode交自己的后端换码和建立会话;不要写入诊断或本地持久化。
      uni.showToast({ title: '取得授权码,等待后端确认', icon: 'none' })
    },
    fail: error => { uni.showToast({ title: error.errMsg, icon: 'none' }) },
    complete: result => { console.log('授权结束', result.requestId, result.errCode) }
  }
  authorizeAlipay(options)
}
function startPayment(orderString: string, appScheme: string): void {
  const options: AlipayPayOptions = {
    orderString, appScheme, timeoutMs: 30000,
    success: () => { uni.showToast({ title: 'SDK 返回成功,请后端查单', icon: 'none' }) },
    fail: error => { uni.showToast({ title: error.outcomeUnknown ? '结果未知,请先查单' : error.errMsg, icon: 'none' }) },
    complete: result => { console.log('支付结束', result.requestId, result.errCode) }
  }
  payWithAlipay(options)
}

iOS 可在实际调用中固定使用已经注册的应用 scheme;下面的示例值仍须替换成自己的注册值:

import { authorizeAlipay, AlipayAuthorizeOptions } from '@/uni_modules/lizhao-alipay-kit'
function authorizeOnIOS(authInfo: string): void {
  const options: AlipayAuthorizeOptions = {
    authInfo, appScheme: 'merchantdemoali', timeoutMs: 30000,
    success: result => { uni.showToast({ title: '取得授权码,请后端确认', icon: 'none' }) },
    fail: error => { uni.showToast({ title: error.errMsg, icon: 'none' }) },
    complete: result => { console.log('授权结束', result.requestId, result.errCode) }
  }
  authorizeAlipay(options)
}

模块二:服务端、恢复与重试

authInfo 使用官方完整版 App 授权协议,orderString 使用 alipay.trade.app.pay 签名参数。两者均由后端生成并原样传递,不把极简 OAuth URL、支付二维码或未签名 JSON 交给本 API。

后端用 authCode 调用换码接口,校验应用与待登录事务后再建立业务会话。支付通知须验签并校验 app_id、商户、业务订单号、金额和交易状态,再幂等入账;SDK 返回值和客户端传来的“成功”不能直接作为入账依据。可参考支付宝官方服务端 SDK。

后端为授权尝试与订单保留可追溯的事务关联。回执中存在业务ID时插件会额外核对;部分官方授权回执不带target_id,不能强制要求它回传。未知或超时先查单,明确取消后也由后端决定是否创建新尝试,不直接重放旧订单串。

进程结束后旧页面回调无法恢复。本插件不持久化授权码或完整回跳;重启应用时由业务后端查单/恢复登录事务。返回前台本身不代表取消;本地等待超时也不代表外部操作已取消。清日志不会解锁仍在运行的 SDK。

模块三:获取和复制诊断

import { getAlipayCapabilitiesSync, getAlipayDiagnosticsSync, clearAlipayDiagnostics } from '@/uni_modules/lizhao-alipay-kit'
const capability = getAlipayCapabilitiesSync()
const snapshot = getAlipayDiagnosticsSync()
console.log('是否原生忙碌', capability.nativeBusy, '日志条数', snapshot.logs.length)
clearAlipayDiagnostics()

交付示例的一键复制包含白名单环境、插件/SDK快照及本次会话日志,不只复制屏幕上最后8行。分段基于固定报告,只有实际复制成功才前进;失败显示真实错误并提供手动选择文本。环境不可取得时报告 unknown,构建 HX 来自运行时提供的 uniCompileVersion,不用维护者电脑版本替代安装包的实际构建来源。

版本来自本次构建的插件配置,诊断标记由版本和更新日期生成;它们不等于应用实际编译时间。示例环境区分运行时读取和构建来源,无法取得的字段保持 unknown。

完整示例

两种宿主的完整诊断页如下,保留环境检查、真实授权/支付入口、底部日志、一键复制、固定快照分段及手动回退。先检查环境,再填写签名参数,发起一种操作,查看成功/失败/完成摘要,最后按需复制报告。

宿主 完整页面路径
uni-app Vue2/Vue3 uni_modules/lizhao-alipay-kit/example/uniapp/index.vue
uni-app x uni_modules/lizhao-alipay-kit/example/uniappx/index.uvue

下面是便于移入业务页的连贯核心流程;签名串由自己的后端提供。空值或无效签名只能验证失败路径。success 表示 SDK 回执成功,完成业务登录或入账仍需后端处理。页面卸载只清理输入和页面回调状态,不会撤销已发起的支付宝操作。需要完整诊断与复制时,直接使用上表交付页面。

uni-app:选项式页面

<template>
  <view>
    <input v-model="scheme" placeholder="iOS 注册的 Scheme" />
    <textarea :maxlength="262144" v-model="authInfo" placeholder="服务端签名 authInfo" />
    <button :disabled="busy" @click="authorize">支付宝授权</button>
    <textarea :maxlength="262144" v-model="orderString" placeholder="服务端签名 orderString" />
    <button :disabled="busy" @click="pay">打开支付宝收银台</button>
    <button @click="refreshBusy">检查原生状态</button>
    <text>{{ message }}</text>
  </view>
</template>
<script>
import { authorizeAlipay, payWithAlipay, getAlipayCapabilitiesSync } from '@/uni_modules/lizhao-alipay-kit'
export default {
  data() { return { scheme: '', authInfo: '', orderString: '', busy: false, disposed: false, message: '等待操作' } },
  methods: {
    refreshBusy() { if (!this.disposed) this.busy = getAlipayCapabilitiesSync().nativeBusy },
    authorize() {
      if (this.busy || this.disposed) return
      this.busy = true
      authorizeAlipay({ authInfo: this.authInfo, appScheme: this.scheme, timeoutMs: 180000,
        success: result => {
          if (this.disposed) return
          this.message = '已取得授权码,请交业务后端换码'
          // 在自己的已鉴权业务请求中交付result.authCode;不要console.log该字段。
        },
        fail: error => { if (this.disposed) return; this.message = error.errCode + ' ' + error.errMsg },
        complete: () => { if (this.disposed) return; this.busy = getAlipayCapabilitiesSync().nativeBusy }
      })
    },
    pay() {
      if (this.busy || this.disposed) return
      this.busy = true
      payWithAlipay({ orderString: this.orderString, appScheme: this.scheme, timeoutMs: 180000,
        success: () => { if (this.disposed) return; this.message = 'SDK 返回成功,请业务后端核实订单' },
        fail: error => { if (this.disposed) return; this.message = error.errMsg + (error.outcomeUnknown ? ';先查单勿重付' : '') },
        complete: () => { if (this.disposed) return; this.busy = getAlipayCapabilitiesSync().nativeBusy }
      })
    }
  },
  onShow() { this.busy = getAlipayCapabilitiesSync().nativeBusy },
  onUnload() { this.disposed = true; this.scheme = ''; this.authInfo = ''; this.orderString = '' }
}
</script>

uni-app x:强类型页面

<template>
  <scroll-view class="page" direction="vertical">
    <view class="content">
      <input v-model="scheme" placeholder="iOS 已注册的 Scheme;Android 留空" />
      <textarea v-model="authInfo" :maxlength="262144" placeholder="服务端签名 authInfo" />
      <button :disabled="busy" @click="authorize">支付宝授权</button>
      <textarea v-model="orderString" :maxlength="262144" placeholder="服务端签名 orderString" />
      <button :disabled="busy" @click="pay">打开支付宝收银台</button>
      <button @click="refreshBusy">检查原生状态</button>
      <text>{{ message }}</text>
    </view>
  </scroll-view>
</template>
<script setup lang="uts">
import { ref } from 'vue'
import { onShow, onUnload } from '@dcloudio/uni-app'
import { authorizeAlipay, payWithAlipay, getAlipayCapabilitiesSync,
  AlipayAuthorizeOptions, AlipayPayOptions, AlipaySuccess, AlipayFail, AlipayComplete
} from '@/uni_modules/lizhao-alipay-kit'

const scheme = ref('')
const authInfo = ref('')
const orderString = ref('')
const busy = ref(false)
const message = ref('等待操作')
const disposed = ref(false)

function refreshBusy(): void {
  if (!disposed.value) busy.value = getAlipayCapabilitiesSync().nativeBusy
}
function succeeded(result: AlipaySuccess): void {
  if (disposed.value) return
  message.value = result.operation == 'pay' ? 'SDK 返回成功,请后端核实订单' : '取得授权码,请交后端换码'
  // 授权时将 result.authCode 交自己的后端,不打印、显示或持久化授权码。
}
function failed(error: AlipayFail): void {
  if (disposed.value) return
  message.value = error.errCode.toString() + ' ' + error.errMsg + (error.outcomeUnknown ? ';先查单勿重付' : '')
}
function completed(result: AlipayComplete): void {
  if (disposed.value) return
  refreshBusy()
  console.log('操作完成', result.requestId, result.errCode)
}
function authorize(): void {
  if (busy.value || disposed.value) return
  busy.value = true
  const options: AlipayAuthorizeOptions = {
    authInfo: authInfo.value, appScheme: scheme.value, timeoutMs: 180000,
    success: succeeded, fail: failed, complete: completed
  }
  authorizeAlipay(options)
}
function pay(): void {
  if (busy.value || disposed.value) return
  busy.value = true
  const options: AlipayPayOptions = {
    orderString: orderString.value, appScheme: scheme.value, timeoutMs: 180000,
    success: succeeded, fail: failed, complete: completed
  }
  payWithAlipay(options)
}
onShow(() => { refreshBusy() })
onUnload(() => {
  disposed.value = true
  scheme.value = ''
  authInfo.value = ''
  orderString.value = ''
})
</script>
<style>
.page { flex: 1; }
.content { padding: 12px; }
</style>

API 用途速查

API 用途
authorizeAlipay(options) 发起一次授权,异步交付授权码或错误;返回 void。
payWithAlipay(options) 发起一次 App 支付,返回 void;不做退款或自动重试。
getAlipayCapabilitiesSync() 查询平台、插件/SDK版本、安装状态、原生忙碌与配置摘要。
getAlipayDiagnosticsSync() 查询脱敏诊断快照,取得副本不会清空日志。
clearAlipayDiagnostics() 清理本插件诊断缓存,保留活动原生操作。

参数

参数 类型 必填 说明 默认值 可选参数
authInfo string 授权必填 后端生成的完整版签名授权串,非极简URL 无 非空,最多262144个UTF16单元
orderString string 支付必填 后端生成的完整签名App订单串 无 非空,最多262144个UTF16单元
appScheme string iOS必填 App独占且已注册的scheme,不带://;Android不使用 空串 首字符字母,允许字母/数字/+/-/.
timeoutMs number 否 本地等待时限,单位毫秒,不是订单有效期 180000 10000–600000的有限整数
success function 否 SDK业务成功回调,至多一次 无 AlipaySuccess
fail function 否 失败、取消或结果未知回调,至多一次 无 AlipayFail
complete function 否 每次调用的唯一完成摘要,不携带authCode 无 AlipayComplete

返回与回调

AlipaySuccess 包含 requestId、operation(authorize/pay)、platform、resultStatus、resultCode、authCode、requiresServerVerification。支付的 authCode 为空,授权的 authCode 仅在真实成功时有值;两类 requiresServerVerification 都为 true。支付成功以 SDK 状态为依据,不套用授权业务 result_code=200。

AlipayFail 包含 errSubject、errCode、errMsg、requestId、operation、platform、resultStatus、resultCode、outcomeUnknown、nativeType、nativeCause、nativeStack。原生错误正文可能带有凭据,会在公共错误边界明确标注已脱敏;类型与可诊断阶段保留,不默认输出 SDK 原始 log。

AlipayComplete 包含 requestId、operation、succeeded、errCode、resultStatus、outcomeUnknown。success/fail互斥,complete至多一次;用户回调异常会被隔离,仍尝试complete。

AlipayCapabilities 包含 platform、supported、pluginVersion、sdkVersion、installed、nativeBusy、activeRequestId、configuration。installed为 installed/not-installed/unknown;未安装不代表SDK一定无法降级,最终以实际SDK回执为准。SDK版本若只取配置值会明确来源,不伪装运行时版本。

AlipayDiagnostics 包含 pluginId、pluginVersion、buildMark、platform、nativeSnapshot、activeRequestId、waiting、droppedLogs、logs。每条日志带 time/level/requestId/stage/detail,最多200条及120000正文字符;单条有界且截断明确。waiting=false、nativeBusy=true 表示页面等待已结束但原生事务尚未释放。

错误码说明

errSubject 固定为 lizhao-alipay-kit,SDK原始状态放在 resultStatus,不与插件错误码混用。

错误码 含义 处理建议
9381001 参数无效 检查非空签名串及有限整数毫秒;不要重新编码整串。
9381002 平台不支持 只在已集成本插件的Android/iOS App调用。
9381003 scheme或配置无效 核对原生注册、iOS唯一业务ID及实际SDK配置。
9381004 仍有原生操作 等SDK真实终态;超时后先查后端,不并发或反复点击支付。
9381005 SDK或活动宿主不可用 检查匹配基座和页面活动状态。
9381006 用户取消 保留业务订单,由后端决定新尝试;不代表退款。
9381007 授权或支付业务未成功 查看SDK状态与后端配置,不能只凭客户端重新扣款。
9381008 处理中、网络异常或结果未知 先查单或核对授权事务,不自动重试。
9381009 本地等待超时 外部结果未知;原生可能仍在进行,WGT/清日志不会撤销。
9381010 授权结果无效或缺码 检查完整版协议、应用能力和原始业务状态。
9381011 原生异常 保留脱敏报告,核对SDK、基座和宿主;支付按未知处理。
9381012 桥接回执无效 保留报告与基座身份;不将不明回执当作成功。

SDK的6001按取消处理;8000、6004、5000重复请求以及可能无法确认交易的6002按结果未知处理。其他业务错误保留原状态;所有最终到账仍以服务端为准。

注意事项

支持与验证范围

开发环境按 HBuilderX、uni-app 和 uni-app x 5.33 起配置,尚未验证更低版本。Android SDK 配置最低 API21,iOS SDK 配置最低 12;最终系统门槛取所用宿主、编译器及依赖要求的较高值。标记含义:√ 为已支持且有对应证据,- 为待确认,x 为不支持。语法或资源验证与设备业务验收分开记录。

宿主 / 平台 / 模式 标记 已验证范围与边界
uni-app x / Android √ Redmi K30 Pro、Android 12/API31 的完整 Vapor 宿主:能力、参数错误、真实 SDK 无效请求失败、单次回调、日志与系统剪贴板、分段和页面生命周期
uni-app x / Vapor √ 已验证 Vapor bytecode;VDOM 尚未单独真机验收
uni-app / Vue2、Vue3 语法 √ 两类示例资源编译与 Android Kotlin 联编已通过;不代表 uni-app 完整设备业务已通过
uni-app / Android vue 页面 - 完整 uni-app 真机调用链尚待验收
uni-app、uni-app x / iOS - 有 Swift 桥接实现、资源导出与生成物检查;Apple SwiftCompile、链接和设备业务待验
uni-app / nvue x 未提供 nvue 示例,不纳入支持范围
Harmony x 无业务实现,返回明确不支持
Web x Chrome、Safari 不提供独立 Web 授权或支付实现
小程序 x 微信、支付宝、抖音、百度、快手、京东、Harmony、QQ、飞书、小红书等均不提供本插件业务实现
快应用 x 华为、联盟快应用均不支持
云端 x 本插件不是 uniCloud 服务端插件;业务签名与验签由自己的后端负责

K30 证据来自前一轮匹配源码的自定义基座:已逐字核对真实系统剪贴板与分段重组。本轮整理版本资料和提示,未重新部署设备;不能据此宣称新的首版安装包已复测。

尚未验证:有效账号授权成功、真实支付成功、支付宝客户端真实取消/回跳、强制超时与迟到回执的设备组合、系统拒绝复制、完整 uni-app 真机链路、Apple 原生编译/设备及发行 R8。公共模型或资源导出只能证明各自层级,不能替代这些验收。

SDK、回跳和共存

Android官方SDK含网络及网络/WiFi状态普通权限和支付宝精确包可见性。iOS需要查询scheme、唯一回跳scheme和SDK bundle;不要申请无关危险权限。第三方SDK隐私处理以支付宝官方SDK说明及实际接入要求为准,不能把“插件不上传诊断”写成“SDK不采集数据”。

完整SDK与其他支付宝完整/极简SDK、DCloud支付模块可能发生依赖、类/符号、资源或回跳冲突;首版独立接入优先。未完成对应构建和运行验证前不承诺“任意插件同时安装均不冲突”,不要混入第二份本地SDK。

iOS回跳只在有活动事务、精确匹配当前scheme/safepay时交给SDK对应处理方法;不另建可绑定新请求的匿名standby回调。SDK原始闭包捕获当前事务,已结束闭包或重复回调不能交给后来请求;存在业务ID时额外核对。SDK未回传可验证请求nonce时,插件无法独立证明任意URL的请求来源,仍依赖官方SDK处理和后端换码/查单,不宣称客户端能防伪回跳或确认交易真实性。

生命周期、隐私和基座

本地超时只结束页面等待,SDK操作槽保留到真实结束;若SDK一直无回执,应先查后端,重启应用后恢复业务,不通过清日志强制解锁。示例卸载会清页面敏感输入,原生业务不因此被伪取消。

日志缓存、展示和复制前均脱敏;完整业务回执仅用于受控解析。深层异常正文可能带订单/授权凭据时明确省略,不默认开启SDK原始日志。日志失败不得改变支付回执语义;报告不会自动上传。

新增或修改SDK、Kotlin、Swift、入口或原生配置后必须重新联编或重打Android/iOS对应自定义基座。页面/文档小改通常无需重打;WGT不能替换已编进基座的SDK。请在真实授权或收银台由用户确认,不用开发夹具伪装实际成功。

作者系列 UTS 插件

系列表由项目已核实的统一清单生成,当前插件尚未发布,不在已核实清单中。

插件 能力方向 插件市场
lizhao-app-keepalive 应用保活、唤醒、自愈与报告 查看插件
lizhao-bg-audio 背景音频播放、队列、倍速与事件 查看插件
lizhao-ble BLE 扫描、连接、读写、通知与自动重连 查看插件
lizhao-call-kit 电话、短信、通讯录原生能力 查看插件
lizhao-camera-pro 原生相机、拍照录像、水印与媒体保存 查看插件
lizhao-cast-screen DLNA 投屏、AirPlay 路由入口 查看插件
lizhao-choose-file 原生文件选择、上传、进度与取消 查看插件
lizhao-device-id 设备标识、隐私策略与诊断 查看插件
lizhao-doc-corrector 文档扫描、矫正、增强与识别 查看插件
lizhao-emu-detect 模拟器环境检测、风险评分与证据 查看插件
lizhao-float-window 悬浮窗、画中画、权限与诊断 查看插件
lizhao-gallery-pro 相册媒体分页、筛选、缩略图与导出 查看插件
lizhao-hce-card NFC 虚拟卡、APDU 交互与 NDEF 标签模拟 查看插件
lizhao-health 健康数据授权、查询、统计与写入 查看插件
lizhao-http-server 本地 HTTP 服务、文件传输与实时通信 查看插件
lizhao-icon-pro SVG 图标组件、多主题与缓存 查看插件
lizhao-id-photo 证件照制作、尺寸换算、换底色与模板换装 查看插件
lizhao-img-eraser 图片去水印、局部修复与原生编辑器 查看插件
lizhao-live-activity 实时活动、系统胶囊与普通通知降级 查看插件
lizhao-nfc-pro NFC 标签读写、NDEF、IsoDep 与诊断 查看插件
lizhao-notify-pro 本地通知、点击动作、进度与定时提醒 查看插件
lizhao-novel-reader 原生小说阅读、仿真翻页与段落评论 查看插件
lizhao-office-view Office 与 PDF 文件预览、进度与缓存管理 查看插件
lizhao-pdf-pro PDF 阅读、签批、真实写回与页面处理 查看插件
lizhao-scan-pro 原生扫码、连续扫码、相册识别 查看插件
lizhao-serial-port 路径串口、USB 串口、多会话收发与诊断 查看插件
lizhao-share-plus 系统分享、远程文件下载后分享 查看插件
lizhao-smart-tts 系统 TTS、云端合成、听书方案 查看插件
lizhao-sqlite-pro 原生 SQLite、迁移、备份与诊断 查看插件
lizhao-sse-pro SSE、Line、JSONL 与 Raw 流式请求 查看插件
lizhao-tcp-pro TCP 客户端、服务端、多连接与诊断 查看插件
lizhao-usb-storage U 盘、移动硬盘文件浏览、读写与批量复制 查看插件
lizhao-video-editor 视频裁剪、压缩、取帧与 FFmpeg/FFprobe 查看插件
lizhao-video-feed 短视频上下滑、短剧选集与分页加载 查看插件
lizhao-video-player 原生视频播放器、清晰度与播放交互 查看插件
lizhao-video-thumb 视频封面、批量取帧与 Base64 返回 查看插件
lizhao-vpn-pro 企业 VPN、IKEv2、安全接入与脱敏诊断 查看插件
lizhao-wechat-kit 微信登录、分享、支付、小程序与客服 查看插件

隐私、权限声明

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

Android官方SDK声明INTERNET、ACCESS_NETWORK_STATE、ACCESS_WIFI_STATE及支付宝精确包查询;iOS需应用回跳scheme和支付宝查询scheme。无需申请通讯录、位置、存储或电话危险权限。

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

用户主动授权或支付时调用支付宝官方SDK。授权码仅交调用方,签名和最终核验在业务服务端。插件不保存授权码、订单串、Token或私钥,不默认上传诊断;第三方SDK数据处理以支付宝SDK隐私说明为准。

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

无