Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
hello uni-app x
提交
8aa250af
H
hello uni-app x
项目概览
DCloud
/
hello uni-app x
通知
5995
Star
90
Fork
162
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
18
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hello uni-app x
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
18
Issue
18
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
8aa250af
编写于
9月 23, 2024
作者:
VK1688
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
优化uni-pay示例
上级
cbd859f7
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
43 addition
and
8 deletion
+43
-8
pages/API/virtual-payment/virtual-payment-uni-pay.uvue
pages/API/virtual-payment/virtual-payment-uni-pay.uvue
+16
-8
uni_modules/uni-pay-x/components/uni-pay/uni-pay.uvue
uni_modules/uni-pay-x/components/uni-pay/uni-pay.uvue
+27
-0
未找到文件。
pages/API/virtual-payment/virtual-payment-uni-pay.uvue
浏览文件 @
8aa250af
...
@@ -47,42 +47,48 @@
...
@@ -47,42 +47,48 @@
"description": "为DCloud提供的免费软件进行赞助",
"description": "为DCloud提供的免费软件进行赞助",
"goods_price": 1, // 单价(元)
"goods_price": 1, // 单价(元)
"buy_quantity": 1, // 数量(消耗性类型: 数量默认是1,最大值是10)
"buy_quantity": 1, // 数量(消耗性类型: 数量默认是1,最大值是10)
"product_id": this.isDebug() ? "uniappx.consumable.sponsor_1" : "uniappx.consumable.sponsor1",
"product_id": this.isDebug() ? "uniappx.consumable.sponsor_1" : "uniappx.consumable.sponsor1",
"product_type": "consumable", // 消耗性类型
"title": "消耗性产品:赞助"
"title": "消耗性产品:赞助"
},
},
{
{
"description": "为DCloud提供的免费软件进行赞助",
"description": "为DCloud提供的免费软件进行赞助",
"goods_price": 5, // 单价(元)
"goods_price": 5, // 单价(元)
"buy_quantity": 1, // 数量(消耗性类型: 数量默认是1,最大值是10)
"buy_quantity": 1, // 数量(消耗性类型: 数量默认是1,最大值是10)
"product_id": this.isDebug() ? "uniappx.consumable.sponsor_50" : "uniappx.consumable.sponsor50",
"product_id": this.isDebug() ? "uniappx.consumable.sponsor_50" : "uniappx.consumable.sponsor50",
"product_type": "consumable", // 消耗性类型
"title": "消耗性产品:赞助"
"title": "消耗性产品:赞助"
},
},
{
{
"description": "为DCloud提供的免费软件进行赞助",
"description": "为DCloud提供的免费软件进行赞助",
"goods_price": 1, // 单价(元)
"goods_price": 1, // 单价(元)
"buy_quantity": 1, // 数量(非消耗性: 数量只能是1,且一个该类型产品一个appleId只能购买一次)
"buy_quantity": 1, // 数量(非消耗性: 数量只能是1,且一个该类型产品一个appleId只能购买一次)
"product_id": this.isDebug() ? "uniappx.nonconsumable.sponsorskin_1" : "uniappx.nonconsumable.sponsorskin1",
"product_id": this.isDebug() ? "uniappx.nonconsumable.sponsorskin_1" : "uniappx.nonconsumable.sponsorskin1",
"product_type": "nonconsumable", // 非消耗性类型
"title": "非消耗性产品: 赞助"
"title": "非消耗性产品: 赞助"
},
},
// {
// {
// "description": "为DCloud提供的免费软件进行赞助",
// "description": "为DCloud提供的免费软件进行赞助",
// "goods_price": 1, // 单价(元)
// "goods_price": 1, // 单价(元)
// "buy_quantity": 1, // 数量(自动续期订阅产品: 数量只能是1)
// "buy_quantity": 1, // 数量(自动续期订阅产品: 数量只能是1)
// "product_id": this.isDebug() ? "uniappx.autorenewable.monthly_1" : "uniappx.autorenewable.monthly1",
// "product_id": this.isDebug() ? "uniappx.autorenewable.monthly_1" : "uniappx.autorenewable.monthly1",
// "product_type": "autorenewable", // 自动续期订阅产品
// "title": "自动续期订阅产品:每月定期赞助", // 注意自动续期订阅产品在沙盒模式下,实际周期会缩短到几分钟续期一次(即现实世界几分钟 = 沙盒世界1个月)
// "title": "自动续期订阅产品:每月定期赞助", // 注意自动续期订阅产品在沙盒模式下,实际周期会缩短到几分钟续期一次(即现实世界几分钟 = 沙盒世界1个月)
// },
// },
{
{
"description": "为DCloud提供的免费软件进行赞助",
"description": "为DCloud提供的免费软件进行赞助",
"goods_price": 1, // 单价(元)
"goods_price": 1, // 单价(元)
"buy_quantity": 1, // 数量(非自动续期订阅产品: 数量只能是1)
"buy_quantity": 1, // 数量(非自动续期订阅产品: 数量只能是1)
"product_id": this.isDebug() ? "uniappx.nonrenewable.monthly_1" : "uniappx.nonrenewable.monthly1",
"product_id": this.isDebug() ? "uniappx.nonrenewable.monthly_1" : "uniappx.nonrenewable.monthly1",
"product_type": "nonrenewable", // 非自动续期订阅产品
"title": "非自动续期订阅产品:月赞助",
"title": "非自动续期订阅产品:月赞助",
},
},
// {
// {
// "description": "为DCloud提供的免费软件进行赞助",
// "description": "为DCloud提供的免费软件进行赞助",
// "goods_price": 1, // 单价(元)
// "goods_price": 1, // 单价(元)
// "buy_quantity": 1, // 数量
// "buy_quantity": 1, // 数量
// "product_id": "uniappx.nonrenewable.none",
// "product_id": "uniappx.nonrenewable.none",
// "product_type": "consumable", // 消耗性类型
// "title": "测试不存在的产品"
// "title": "测试不存在的产品"
// }
// }
] as Array<UTSJSONObject>
] as Array<UTSJSONObject>
...
@@ -112,7 +118,8 @@
...
@@ -112,7 +118,8 @@
return item['product_id'] == this.product_id;
return item['product_id'] == this.product_id;
});
});
let buy_quantity = productInfo.getNumber('buy_quantity') || 1;
let buy_quantity = productInfo.getNumber('buy_quantity') || 1;
let goods_price = productInfo.getNumber('goods_price');
let goods_price = productInfo.getNumber('goods_price');
let product_type = productInfo['product_type'];
// 发起支付
// 发起支付
this.$refs.payRef.createOrder({
this.$refs.payRef.createOrder({
provider: "appleiap", // 支付供应商(这里固定为appleiap,代表苹果虚拟支付)
provider: "appleiap", // 支付供应商(这里固定为appleiap,代表苹果虚拟支付)
...
@@ -125,7 +132,8 @@
...
@@ -125,7 +132,8 @@
apple_virtual: {
apple_virtual: {
product_id: this.product_id, // 产品id
product_id: this.product_id, // 产品id
goods_price: goods_price, // 单价
goods_price: goods_price, // 单价
buy_quantity: buy_quantity, // 购买数量
buy_quantity: buy_quantity, // 购买数量
product_type: product_type // 产品类型
},
},
// 自定义数据
// 自定义数据
custom: {}
custom: {}
...
...
uni_modules/uni-pay-x/components/uni-pay/uni-pay.uvue
浏览文件 @
8aa250af
...
@@ -585,6 +585,33 @@
...
@@ -585,6 +585,33 @@
// #endif
// #endif
// #ifdef APP-IOS
// #ifdef APP-IOS
const virtualPaymentManager = uni.getVirtualPaymentManager();
const virtualPaymentManager = uni.getVirtualPaymentManager();
if (options.apple_virtual['product_type'] == 'nonconsumable') {
uni.showLoading({
title: "请求中...",
mask: true
})
let purchased = await new Promise((resolve, reject) => {
// 如果是非消耗性产品只能购买一次,需要先判断下
virtualPaymentManager.restoreTransactions({
success: (res) => {
let transactions = res.transactions;
let index = res.transactions.findIndex(transaction => {
return transaction.productId == options.apple_virtual['product_id']
})
resolve(index > -1 ? true : false);
}
});
});
uni.hideLoading()
if (purchased) {
uni.showModal({
title: "提示",
content: "您已购买过此商品,请勿重复购买",
showCancel: false
});
return;
}
}
let createOrderData = {
let createOrderData = {
provider: options.provider,
provider: options.provider,
total_fee: options.total_fee,
total_fee: options.total_fee,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录