更新记录
1.0.0(2026-03-21)
正式版发布
平台兼容性
uni-app(3.7.1)
| Vue2 | Vue2插件版本 | Vue3 | Vue3插件版本 | Chrome | Safari | app-vue | app-vue插件版本 | app-nvue | app-nvue插件版本 | Android | iOS | iOS插件版本 | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | 1.0.0 | √ | 1.0.0 | × | × | √ | 1.0.0 | √ | 1.0.0 | × | 12 | 1.0.0 | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × | × |
uni-app x(3.7.1)
| Chrome | Safari | Android | iOS | iOS插件版本 | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|---|
| × | × | × | 12 | 1.0.0 | × | × |
jt-ios-iap
基于 UTS + Swift StoreKit1 的 iOS 内购插件,适合需要兼容低版本 iOS 的 App 内虚拟商品支付场景。
项目背景
1.为什么有官方的内购支付、市场也有其他内购插件还需要再发布一个?
一句话当你用其他方案不满意再用这个,比如丢单什么的。本插件是自己用于生产环境的,会持续跟进。同时本插件是使用原生Swift语言和uts混编的,也就是说和原生一样是直接走的原生sdk那套逻辑,底层不是plus api封装。
2.为什么底层还使用storeKit1而不用storeKit2?
为了兼容低版本。storeKit2最低兼容ios15,而真实情况是ios 10的平板满地都是,目前还不适合使用storeKit2。
提供能力
buyProduct(options, callback):拉取商品并发起购买,成功后回调receipt的 base64 字符串。completeTransactions(callback):补偿处理中断的未完成订单。restoreCompletedTransactions(callback):恢复非消耗型商品。
使用示例
import { buyProduct, completeTransactions } from '@/uni_modules/jt-ios-iap'
buyProduct({
productId: 'your.product.id',
//可以为空字符串
userId: 'user-1001',
quantity: 1
}, (res) => {
console.log('buyProduct', res)
if (res.code === 'success') {
// res.data 就是 receipt 的 base64,可直接发给服务端验单
}
})
//非消耗商品可以调用这个恢复购买。实际上本人实测,消耗型如果错误了调用这个可以重新返回票据。
//也就是说你可以在进入商品页面的时候调用一下这个方法,如果有返回票据就直接发给服务器,避免丢单。
completeTransactions((res) => {
if (res && res.code === 'success') {
//票据
let receipt = res.data
if (receipt) {
uni.showLoading({
title: '开始恢复上次未完成订单...'
})
setTimeout(() => {
//上传receipt给服务器
}, 1000);
}
}
//、失败,基本可以不用管
if (res && res.code === 'fail') {
console.log("恢复购买失败!");
}
});
返回结构
type IapResult = {
code: string
data: string
message: string
productId: string
transactionId: string
originalTransactionId: string
}
说明:
code === 'success'时,data为 App Store receipt 的 base64。paymentCancelled表示用户取消支付。productNotFound表示商品未在 App Store Connect 中命中。deferred表示交易处于待审批状态。

收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 0
赞赏 0
下载 11498669
赞赏 1882
赞赏
京公网安备:11010802035340号