更新记录

1.0.0(2025-09-11)

uts版本第一版,还在测试中。


平台兼容性

uni-app(4.07)

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

其他

多语言 暗黑模式 宽屏模式

船新版本苹果内购,uts版本,接口更简洁,使用更方便。本内购插件可以不用服务器

(还在测试一些场景中~)

如果你想使用原生语言插件,前往原生语言插件

特别注意,验证购买和订阅的sandBox参数上线一定要写成false 特别注意,验证购买和订阅的sandBox参数上线一定要写成false 特别注意,验证购买和订阅的sandBox参数上线一定要写成false

内购是苹果应用内购买,包括订阅或者各种vip解锁功能除去广告等

内购类型说明

内购大致分为订阅型和非订阅型,订阅型又分为自动续期和不续期;非订阅型就是那些一次性购买的,比如一次购买永久解锁,或者6元购买100个金币这种。

completeTransactions 这个方法需要在应用启动的时候去调用,因为可能存在没有完成的交易,防止漏掉一些单子

App.vue

// #ifdef APP-IOS
    import { HXRPurchase } from '@/uni_modules/hxr-purchase-uts/utssdk/app-ios'
// #endif

    onLaunch: function () {
        // #ifdef APP-IOS
        HXRPurchase.completeTransactions((productId: string) => {
            //如果需要传服务器,就获取票据上传
            HXRPurchase.getReceiptString((code: string, msg: string) => {
                if(code == "ok") {
                    //msg就是票据信息
                } else {
                    console.log(msg);
                }
            });

            //本地验证购买
            // HXRPurchase.verifyBuy()
            // HXRPurchase.verifySubscription()
        });
        // #endif

        console.log('App Launch')
    }

使用实例

// #ifdef APP-IOS
    import { HXRPurchase } from '@/uni_modules/hxr-purchase-uts'
// #endif

    buy() {
        HXRPurchase.buyProduct("product.unique.id", 1, "", (code : string, msg : string) => {
            if (code == "purchased") {
                //这种情况其实就已经购买成功了。为了保险需要验证票据
                //如果你需要同步票据到服务器就获取票据上传
                HXRPurchase.getReceiptString((code : string, msg : string) => {
                    if (code == "ok") {
                        //msg就是票据信息
                    } else {
                        console.log(msg);
                    }
                });

                //如果没有服务器,或不需要上传就直接验证就可以了。根据购买的是不是续费选择调用一个即可
                // HXRPurchase.verifyBuy()
                // HXRPurchase.verifySubscription()

            } else if (code == "deferred") {
                /*
                //仅表示交易暂未完成,可能后续转为成功或失败‌
                //家庭共享‌: 当用户通过家庭共享购买订阅时,需主账号成员授权,此时交易状态会变为deferred‌
                ‌//儿童账户或家长控制‌: 若购买涉及儿童账户,需家长同意(如输入Apple ID密码验证),交易会延迟至授权完成‌*/
            } else {
                //出错的各种场景,有很多错误code
                if (code == "paymentCancelled") {
                    //用户取消购买
                } else {
                    console.log(`code: ${code}, msg: ${msg}`);
                    /*
                    case unknown = 0
                    case clientInvalid = 1
                    case paymentCancelled = 2
                    case paymentInvalid = 3
                    case paymentNotAllowed = 4
                    case storeProductNotAvailable = 5
                    case cloudServicePermissionDenied = 6
                    case cloudServiceNetworkConnectionFailed = 7
                    case cloudServiceRevoked = 8
                    case privacyAcknowledgementRequired = 9
                    case unauthorizedRequestData = 10
                    case invalidOfferIdentifier = 11
                    case invalidSignature = 12
                    case missingOfferParams = 13
                    case invalidOfferPrice = 14
                    case overlayCancelled = 15
                    case overlayInvalidConfiguration = 16
                    case overlayTimeout = 17
                    case ineligibleForOffer = 18
                    case unsupportedPlatform = 19
                    case overlayPresentedInBackgroundScene = 20
                    */
                }
            }
        });
    },
    getReceipt() {
        HXRPurchase.getReceiptString((code : string, msg : string) => {
            if (code == "ok") {
                //msg就是票据信息
            } else {
                console.log(msg);
            }
        });
    },
    verifyBuy() {
        //注意sandBox参数,测试阶段是true,上线一定要改成false
        HXRPurchase.verifyBuy("product.unique.id", "", true, (code : string, msg : string) => {
            if(code == "purchased") {
                //已经购买,可以解锁功能了
            } else if(code == "notPurchased") {
                //没有购买
            } else {
                console.log(`code: ${code}, msg: ${msg}`);
                //noReceiptData 没有票据信息
                //networkError
                //error  其他问题
            }
        });
    },
    verifySubscription() {
        //注意sandBox参数,测试阶段是true,上线一定要改成false
        HXRPurchase.verifySubscription("product.unique.id", "", true, true, (code : string, msg : string) => {
            if(code == "purchased") {
                //已经购买,此时msg是订阅到期时间的时间戳
            } else if(code == "notPurchased") {
                //没有购买
            } else if(code == "expired") {
                //订阅已经到期,msg是订阅到期时间的时间戳
            } else {
                console.log(`code: ${code}, msg: ${msg}`);
                //noReceiptData 没有票据信息
                //networkError
                //error  其他问题
            }
        });
    },
    restorePurchases() {
        HXRPurchase.restorePurchases((products: string[]) => {
            if(products.length > 0) {
                //如果是订阅,验证一下订阅到期没有。
                //如果是一次性购买,不用验证,直接是成功
            } else {
                //没得可恢复的购买
            }
        });
    }

隐私、权限声明

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

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

插件不采集任何数据

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

暂无用户评论。