From 8cd6d6fc6b68938e801d95701556117cefccb20c Mon Sep 17 00:00:00 2001 From: VK <370725567@qq.com> Date: Sat, 26 Nov 2022 12:46:33 +0800 Subject: [PATCH] update uni-pay.md --- docs/uniCloud/uni-pay.md | 98 +++++++++++++++++++++++++++++----------- 1 file changed, 72 insertions(+), 26 deletions(-) diff --git a/docs/uniCloud/uni-pay.md b/docs/uniCloud/uni-pay.md index dd8e8e07b..f063912d5 100644 --- a/docs/uniCloud/uni-pay.md +++ b/docs/uniCloud/uni-pay.md @@ -1,4 +1,4 @@ -> 本文档适用于`uni-pay 2.0.0`及以上版本,需 HBuilderX 3.5.0 及以上版本。旧版本文档请访问:[uni-pay 1.x 文档](unipay.md) +> 本文档适用于`uni-pay 2.0.0`及以上版本,需 HBuilderX 3.6.5 及以上版本。旧版本文档请访问:[uni-pay 1.x 文档](unipay.md) # uni-pay 2.x @@ -652,37 +652,47 @@ module.exports = { **属性** -| 属性名 | 说明 | 类型 | 默认值 | 可选值 | +| 属性名 | 说明 | 类型 | 默认值 | 可选值 | |-----------------|-------------------------------|---------|--------|-------| | adpid | uni-ad的广告位ID,若填写,则会在支付成功结果页展示广告(可以增加开发者广告收益) | string | - | - | | returnUrl | 支付成功后,用户点击【查看订单】按钮时跳转的页面地址,如果不填写此属性,则没有【查看订单】按钮 | string | - | - | +| mainColor | 支付结果页主色调,默认支付宝小程序为#108ee9,其他端均为#01be6e | string | #01be6e | 见下 | | mode | 收银台模式,可选 mobile 手机模式 pc 电脑模式 | string | mobile | mobile、pc | | logo | 当mode为PC时,展示的logo | string | /static/logo.png | - | +**mainColor值参考:** +- 绿色系 #01be6e +- 蓝色系 #108ee9 +- 咖啡色 #816a4e +- 粉红 #fe4070 +- 橙黄 #ffac0c +- 橘黄 #ff7100 +- 其他 可自定义 + **事件** -| 事件名 | 说明 | 参数 | -|-----------------|---------------------|---------| +| 事件名 | 说明 | 参数 | +|-------------|---------------------|--------| | success | 支付成功的回调 | res | -| cancel | 支付取消的回调 | res | -| fail | 支付失败的回调 | res | +| cancel | 支付取消的回调 | res | +| fail | 支付失败的回调 | res | | create | 创建支付订单时的回调(此时用户还未支付) | res | **方法** 通过 `let res = await this.$refs.uniPay.xxx();` 方式调用,详情调用方式参考下方的【前端完整示例代码】 -| 方法名 | 说明 | -|--------------------|---------------------| -| open | 发起支付 - 打开支付收银台弹窗 [查看详情](#create-order) | -| createOrder | 直接发起支付(无收银台) [查看详情](#create-order) | -| getOrder | 查询订单 [查看详情](#get-order) | -| refund | 发起退款(此接口需要权限才可以访问) [查看详情](#refund) | -| getRefund | 查询退款 [查看详情](#get-refund) | -| closeOrder | 关闭订单 [查看详情](#close-order) | -| getPayProviderFromCloud | 获取支持的支付供应商 [查看详情](#get-pay-provider-from-cloud) | -| getProviderAppId | 获取支付配置内的appid(主要用于获取微信公众号的appid,用以获取code) [查看详情](#get-provider-appid) | -| getOpenid | 根据code获取openid (主要用于微信公众号code换取openid) [查看详情](#get-openid) | +| 方法名 | 说明 | +|---------------------------|---------------------| +| open | 发起支付 - 打开支付收银台弹窗 [查看详情](#create-order) | +| createOrder | 直接发起支付(无收银台) [查看详情](#create-order) | +| getOrder | 查询订单 [查看详情](#get-order) | +| refund | 发起退款(此接口需要权限才可以访问) [查看详情](#refund) | +| getRefund | 查询退款 [查看详情](#get-refund) | +| closeOrder | 关闭订单 [查看详情](#close-order) | +| getPayProviderFromCloud | 获取支持的支付供应商 [查看详情](#get-pay-provider-from-cloud) | +| getProviderAppId | 获取支付配置内的appid(主要用于获取微信公众号的appid,用以获取code) [查看详情](#get-provider-appid) | +| getOpenid | 根据code获取openid (主要用于微信公众号code换取openid) [查看详情](#get-openid) | **前端完整示例代码** @@ -698,6 +708,7 @@ module.exports = { + 支付前,让用户自己选择微信还是支付宝 @@ -705,17 +716,21 @@ module.exports = { + + 用于把生成的二维码放到自己写的页面中(组件不会弹窗,请从日志中查看二维码base64值) + - + @@ -752,7 +767,7 @@ module.exports = { }, methods: { /** - * 发起支付(唤起收银台) + * 发起支付(唤起收银台,如果只有一种支付方式,则收银台不会弹出来,会直接使用此支付方式) * 在调用此api前,你应该先创建自己的业务系统订单,并获得订单号 order_no,把order_no当参数传给此api,而示例中为了简化跟支付插件无关的代码,这里直接已时间戳生成了order_no */ open() { @@ -790,7 +805,28 @@ module.exports = { custom: this.custom, // 自定义数据 }); }, - // 查询订单 + /** + * 生成支付独立二维码(只返回支付二维码) + * 在调用此api前,你应该先创建自己的业务系统订单,并获得订单号 order_no,把order_no当参数传给此api,而示例中为了简化跟支付插件无关的代码,这里直接已时间戳生成了order_no + */ + createQRcode(provider){ + this.order_no = `test`+Date.now(); + this.out_trade_no = `${this.order_no}-1`; + // 发起支付 + this.$refs.uniPay.createOrder({ + provider: provider, // 支付供应商 + total_fee: this.total_fee, // 支付金额,单位分 100 = 1元 + order_no: this.order_no, // 业务系统订单号(即你自己业务系统的订单表的订单号) + out_trade_no: this.out_trade_no, // 插件支付单号 + description: this.description, // 支付描述 + type: this.type, // 支付回调类型 + qr_code: true, // 是否强制使用扫码支付 + cancel_popup: true, // 配合qr_code:true使用,是否只生成支付二维码,没有二维码弹窗 + openid: this.openid, // 微信公众号需要 + custom: this.custom, // 自定义数据 + }); + }, + // 查询支付状态 async getOrder() { let res = await this.$refs.uniPay.getOrder({ out_trade_no: this.out_trade_no, // 插件支付单号 @@ -822,7 +858,7 @@ module.exports = { }); } }, - // 查询退款 + // 查询退款状态 async getRefund() { let res = await this.$refs.uniPay.getRefund({ out_trade_no: this.out_trade_no, // 插件支付单号 @@ -871,13 +907,17 @@ module.exports = { }); } }, - + // 监听事件 - 支付订单创建成功(此时用户还未支付) + onCreate(res){ + console.log('create: ', res); + // 如果只是想生成支付二维码,不需要组件自带的弹窗,则在这里可以获取到支付二维码 qr_code_image + }, // 监听事件 - 支付成功 - paySuccess(res){ - console.log('paySuccess: ', res) + onSuccess(res){ + console.log('success: ', res); if (res.user_order_success) { // 代表用户已付款,且你自己写的回调成功并正确执行了 - + } else { // 代表用户已付款,但你自己写的回调执行成功(通常是因为你的回调代码有问题) @@ -927,6 +967,12 @@ module.exports = { margin: 10rpx 0; } + .tips{ + margin-top: 20rpx; + font-size: 24rpx; + color: #565656; + } + ``` -- GitLab