Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-unicloud-zh
提交
396eee2c
U
unidocs-unicloud-zh
项目概览
DCloud
/
unidocs-unicloud-zh
通知
89
Star
2
Fork
21
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
2
列表
看板
标记
里程碑
合并请求
9
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-unicloud-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
2
Issue
2
列表
看板
标记
里程碑
合并请求
9
合并请求
9
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
396eee2c
编写于
12月 14, 2023
作者:
D
DCloud_LXH
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: 根链接
上级
6281391f
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
76 addition
and
76 deletion
+76
-76
docs/frv/dev.md
docs/frv/dev.md
+1
-1
docs/price.md
docs/price.md
+2
-2
docs/uni-captcha.md
docs/uni-captcha.md
+3
-3
docs/uni-login/dev.md
docs/uni-login/dev.md
+1
-1
docs/uni-pay.md
docs/uni-pay.md
+68
-68
docs/univerify.md
docs/univerify.md
+1
-1
未找到文件。
docs/frv/dev.md
浏览文件 @
396eee2c
...
...
@@ -434,7 +434,7 @@ sequenceDiagram
#### 项目文件说明
```
text
├── uni_modules 存放[uni_module](
/uni_modules
)规范的插件。
├── uni_modules 存放[uni_module](
https://uniapp.dcloud.net.cn/plugin/uni_modules.html
)规范的插件。
│ ├── uni-frv-external
│ │ ├── changelog.md
│ │ ├── common 页面公共逻辑
...
...
docs/price.md
浏览文件 @
396eee2c
...
...
@@ -14,7 +14,7 @@ uniCloud的定价、套餐内容、服务SLA,是由云厂商直接公布的。
## 阿里云@aliyun-business
> 阿里云正式版版需要使用HBuilderX 3.6.5+(正式版)或3.6.10+(Alpha版)或与此版本对应的uni-app cli项目才可正常使用。如果是cli创建的项目,可以参考:[更新依赖到指定版本](/quickstart-cli.html#cliversion)
> 阿里云正式版版需要使用HBuilderX 3.6.5+(正式版)或3.6.10+(Alpha版)或与此版本对应的uni-app cli项目才可正常使用。如果是cli创建的项目,可以参考:[更新依赖到指定版本](
https://uniapp.dcloud.net.cn
/quickstart-cli.html#cliversion)
阿里云提供1个免费空间,付费空间提供包月、按量计费两种计费方式,具体说明如下:
...
...
@@ -307,7 +307,7 @@ uniCloud的定价、套餐内容、服务SLA,是由云厂商直接公布的。
## 支付宝小程序云@alipay
> 支付宝小程序云需要使用3.97+或与此版本对应的uni-app cli项目才可正常使用。如果是cli创建的项目,可以参考:[更新依赖到指定版本](/quickstart-cli.html#cliversion)
> 支付宝小程序云需要使用3.97+或与此版本对应的uni-app cli项目才可正常使用。如果是cli创建的项目,可以参考:[更新依赖到指定版本](
https://uniapp.dcloud.net.cn
/quickstart-cli.html#cliversion)
支付宝小程序云采用
**基础套餐+按量计费**
的模式,开发者可先购买带有一定配额的基础套餐(免费版也可以),超出套餐配额部分按使用量付费。
...
...
docs/uni-captcha.md
浏览文件 @
396eee2c
...
...
@@ -25,7 +25,7 @@ GitCode 仓库:[https://gitee.com/dcloud/uni-captcha](https://gitee.com/dcloud
## 目录结构@catalogue
<pre
v-pre=
""
data-lang=
""
>
<code
class=
"lang-"
style=
"padding:0"
>
├─uni_modules 存放
[
uni_module
](
/uni_modules
)
规范的插件。
├─uni_modules 存放
[
uni_module
](
https://uniapp.dcloud.net.cn/plugin/uni_modules.html
)
规范的插件。
│ └─uni-captcha
│ ├─uniCloud
│ │ ├─cloudfunctions 云函数目录
...
...
@@ -36,9 +36,9 @@ GitCode 仓库:[https://gitee.com/dcloud/uni-captcha](https://gitee.com/dcloud
│ │ ├─opendb-verify-codes.schema.json 验证码数据表
│ │ └─db_init.json 初始化数据库文件
│ └─components 组件目录
│ ├─uni-captcha
│ ├─uni-captcha
│ │ └─uni-captcha.vue 普通验证码组件
│ └─uni-popup-captcha
│ └─uni-popup-captcha
│ └─uni-popup-captcha.vue 弹出式验证码组件
</code>
</pre>
...
...
docs/uni-login/dev.md
浏览文件 @
396eee2c
...
...
@@ -32,7 +32,7 @@ keyword: 手机号
## 客户端@client
客户端如何使用一键登录请参考此文档:
[
univerify 使用指南
](
/univerify
)
客户端如何使用一键登录请参考此文档:
[
univerify 使用指南
](
https://uniapp.dcloud.net.cn/univerify.html
)
## 云函数@cloud
...
...
docs/uni-pay.md
浏览文件 @
396eee2c
...
...
@@ -40,13 +40,13 @@
-
云对象(
[
uni-pay-co
](
#uni-pay-co
)
)
+
微信支付
+
微信APP支付
+
微信APP支付
+
微信小程序支付
+
微信公众号支付
+
微信手机外部浏览器H5支付
+
微信PC扫码支付
+
支付宝支付
+
支付宝APP支付
+
支付宝APP支付
+
支付宝小程序支付
+
支付宝手机外部浏览器H5支付(支持在微信APP的H5页面中使用支付宝支付)
+
支付宝PC扫码支付
...
...
@@ -73,7 +73,7 @@ uni-pay云端一体模板,包含前端页面、云对象、云端公共模块
uni-pay的
[
uni_modules
](
https://uniapp.dcloud.net.cn/plugin/uni_modules.html
)
中包含了前端页面、云对象和公共模块,目录结构如下:
```
├─uni_modules 存放[uni_module](
/uni_modules
)规范的插件。
├─uni_modules 存放[uni_module](
https://uniapp.dcloud.net.cn/plugin/uni_modules.html
)规范的插件。
│ ├─其他module
│ └─uni-pay
│ ├─uniCloud
...
...
@@ -99,7 +99,7 @@ uni-pay的[uni_modules](https://uniapp.dcloud.net.cn/plugin/uni_modules.html)中
│ │ └─uni-pay uni-pay收银台弹窗组件
│ │ └─uni-pay.vue
│ ├─js_sdk js sdk目录
│ │ └─js_sdk.js
│ │ └─js_sdk.js
│ ├─pages 页面目录
│ │ └─success
│ │ └─success.js 支付成功结果页
...
...
@@ -838,9 +838,9 @@ module.exports = async (obj) => {
}
=
data
;
// uni-pay-orders 表内的数据均可获取到
// 此处写你自己的支付成功逻辑开始-----------------------------------------------------------
// 因为金额total_fee是前端传的,因此有被用户篡改的风险,因此需要判断下total_fee的值是否和你业务订单中的金额一致,如果不一致,直接返回 return false;
// 有三种方式
// 方式一:直接写数据库操作
// 方式二:使用 await uniCloud.callFunction 调用其他云函数
...
...
@@ -959,7 +959,7 @@ module.exports = async (obj) => {
let
encrypted
=
payCrypto
.
aes
.
encrypt
({
data
:
data
,
// 待加密的原文
});
await
uniCloud
.
callFunction
({
name
:
"
你的云函数名称
"
,
data
:
{
...
...
@@ -980,7 +980,7 @@ module.exports = async (obj) => {
},
});
*/
// 此处写你自己的支付成功逻辑结束-----------------------------------------------------------
// user_order_success = true 代表你自己的逻辑处理成功 返回 false 代表你自己的处理逻辑失败。
return
user_order_success
;
...
...
@@ -1015,19 +1015,19 @@ module.exports = async (obj) => {
});
const
cloudObject
=
uniCloud
.
importObject
(
'
你的云对象名称
'
);
await
cloudObject
.
rechargeBalance
(
encrypted
);
// 传输加密数据(通过payCrypto.aes.decrypt解密)
// 解密示例
// let decrypted = payCrypto.aes.decrypt({
// data: encrypted, // 待解密的原文
// });
/*
// 方式二安全模式二(只传一个订单号 out_trade_no,你自己的回调里查数据库表 uni-pay-orders 判断 status是否等于1来判断是否真的支付了)
const cloudObject = uniCloud.importObject('你的云对象名称');
await cloudObject.rechargeBalance(out_trade_no);
*/
// 此处写你自己的支付成功逻辑结束-----------------------------------------------------------
// user_order_success = true 代表你自己的逻辑处理成功 返回 false 代表你自己的处理逻辑失败。
return
user_order_success
;
...
...
@@ -1066,7 +1066,7 @@ module.exports = async (obj) => {
// 此处写你自己的支付成功逻辑开始-----------------------------------------------------------
// 有三种方式
// 方式三:使用 await uniCloud.httpclient.request 调用http接口地址
// 方式三安全模式一(加密)uni-pay的版本需 >= 2.1.0
let
encrypted
=
payCrypto
.
aes
.
encrypt
({
mode
:
"
aes-256-ecb
"
,
...
...
@@ -1078,7 +1078,7 @@ module.exports = async (obj) => {
encrypted
,
// 传输加密数据(服务端你再自己解密)
},
});
/*
// 方式三安全模式二(只传一个订单号 out_trade_no,你自己的回调里执行url请求来请求 uni-pay-co 云对象的 getOrder 接口来判断订单是否真的支付了)
await uniCloud.httpclient.request("你的服务器接口请求地址", {
...
...
@@ -1177,17 +1177,17 @@ public class CryptoUtil {
| adpid | uni-ad的广告位ID,若填写,则会在支付成功结果页展示广告(可以增加开发者广告收益) | string | - | - |
| returnUrl | 支付成功后,用户点击【查看订单】按钮时跳转的页面地址,如果不填写此属性,则没有【查看订单】按钮 | string | - | - |
| mainColor | 支付结果页主色调,默认支付宝小程序为#108ee9,其他端均为#01be6e | string | #01be6e | 见下 |
| mode | 收银台模式,插件会自动识别,也可手动传参,mobile 手机模式 pc 电脑模式 | string | 自动识别 | mobile、pc |
| mode | 收银台模式,插件会自动识别,也可手动传参,mobile 手机模式 pc 电脑模式 | string | 自动识别 | mobile、pc |
| logo | 当mode为PC时,展示的logo | string | /static/logo.png | - |
| height | 收银台高度 | string | 70vh | - |
**mainColor值参考:**
-
绿色系 #01be6e
-
蓝色系 #108ee9
-
咖啡色 #816a4e
-
粉红 #fe4070
-
橙黄 #ffac0c
-
绿色系 #01be6e
-
蓝色系 #108ee9
-
咖啡色 #816a4e
-
粉红 #fe4070
-
橙黄 #ffac0c
-
橘黄 #ff7100
-
其他 可自定义
...
...
@@ -1195,22 +1195,22 @@ public class CryptoUtil {
| 事件名 | 说明 | 参数 |
|-------------|---------------------|--------|
| success | 支付成功的回调 | res |
| success | 支付成功的回调 | res |
| cancel | 支付取消的回调 | res |
| fail | 支付失败的回调 | res |
| create | 创建支付订单时的回调(此时用户还未支付) | res |
| fail | 支付失败的回调 | res |
| create | 创建支付订单时的回调(此时用户还未支付) | res |
#### 组件方法
通过
`let res = await this.$refs.pay.xxx();`
方式调用,详情调用方式参考下方的【前端完整示例代码】
| 方法名 | 说明 |
| 方法名 | 说明 |
|---------------------------|---------------------|
| open | 发起支付 - 打开支付收银台弹窗
[
查看详情
](
#create-order
)
|
| createOrder | 直接发起支付(无收银台)
[
查看详情
](
#create-order
)
|
| getOrder | 查询订单
[
查看详情
](
#get-order
)
|
| refund | 发起退款(此接口需要权限才可以访问)
[
查看详情
](
#refund
)
|
| getRefund | 查询退款
[
查看详情
](
#get-refund
)
|
| getRefund | 查询退款
[
查看详情
](
#get-refund
)
|
| closeOrder | 关闭订单
[
查看详情
](
#close-order
)
|
| getPayProviderFromCloud | 获取支持的支付供应商
[
查看详情
](
#get-pay-provider-from-cloud
)
|
| getProviderAppId | 获取支付配置内的appid(主要用于获取微信公众号的appid,用以获取code)
[
查看详情
](
#get-provider-appid
)
|
...
...
@@ -1237,10 +1237,10 @@ public class CryptoUtil {
<!-- #ifdef MP-ALIPAY || H5 || APP -->
<button
@
click=
"createOrder('alipay')"
>
直接发起支付宝支付
</button>
<!-- #endif -->
<button
@
click=
"createQRcode('wxpay')"
>
生成独立支付二维码
</button>
<view
class=
"tips"
>
用于把生成的二维码放到自己写的页面中(组件不会弹窗,请从日志中查看二维码base64值)
</view>
<button
@
click=
"getOrder"
>
查询支付状态
</button>
<!--
<button @click="refund">发起退款</button>
...
...
@@ -1414,7 +1414,7 @@ public class CryptoUtil {
let
url
=
`https://open.weixin.qq.com/connect/oauth2/authorize?appid=
${
appid
}
&redirect_uri=
${
redirect_uri
}
&response_type=code&scope=
${
scope
}
&state=STATE#wechat_redirect`
;
window
.
location
.
href
=
url
;
}
},
// 获取公众号openid
async
getOpenid
(
data
)
{
...
...
@@ -1437,13 +1437,13 @@ public class CryptoUtil {
console
.
log
(
'
success:
'
,
res
);
if
(
res
.
user_order_success
)
{
// 代表用户已付款,且你自己写的回调成功并正确执行了
}
else
{
// 代表用户已付款,但你自己写的回调执行成功(通常是因为你的回调代码有问题)
}
}
},
},
computed
:
{
h5Env
(){
// #ifdef H5
...
...
@@ -1482,17 +1482,17 @@ public class CryptoUtil {
button
{
margin-top
:
20
rpx
;
}
.label
{
margin
:
10
rpx
0
;
}
.tips
{
margin-top
:
20
rpx
;
font-size
:
24
rpx
;
color
:
#565656
;
}
</style>
```
...
...
@@ -1537,15 +1537,15 @@ uni-pay前端组件和uni-pay-co云对象的方法是一样的。通常情况下
以下是介绍这些api。
| API | 说明 |
| API | 说明 |
|-----------------|---------------------|
| uniPayCo.createOrder | 创建支付
[
查看详情
](
#create-order
)
|
| uniPayCo.getOrder | 查询订单
[
查看详情
](
#get-order
)
|
| uniPayCo.refund | 发起退款(此接口需要权限才可以访问)
[
查看详情
](
#refund
)
|
| uniPayCo.getRefund | 查询退款
[
查看详情
](
#get-refund
)
|
| uniPayCo.closeOrder | 关闭订单
[
查看详情
](
#close-order
)
|
| uniPayCo.getPayProviderFromCloud | 获取支持的支付供应商
[
查看详情
](
#get-pay-provider-from-cloud
)
|
| uniPayCo.getProviderAppId | 获取支付配置内的appid(主要用于获取微信公众号的appid,用以获取code)
[
查看详情
](
#get-provider-appid
)
|
| uniPayCo.refund | 发起退款(此接口需要权限才可以访问)
[
查看详情
](
#refund
)
|
| uniPayCo.getRefund | 查询退款
[
查看详情
](
#get-refund
)
|
| uniPayCo.closeOrder | 关闭订单
[
查看详情
](
#close-order
)
|
| uniPayCo.getPayProviderFromCloud | 获取支持的支付供应商
[
查看详情
](
#get-pay-provider-from-cloud
)
|
| uniPayCo.getProviderAppId | 获取支付配置内的appid(主要用于获取微信公众号的appid,用以获取code)
[
查看详情
](
#get-provider-appid
)
|
| uniPayCo.getOpenid | 根据code获取openid (主要用于微信公众号code换取openid)
[
查看详情
](
#get-openid
)
|
### 创建支付@create-order
...
...
@@ -1630,19 +1630,19 @@ await uniPayCo.createOrder({
```
**参数说明**
| 参数名 | 类型 | 必填 | 说明 |
|-----------------|---------|------|---------------------------|
| provider | string | 是 | 支付供应商 如 wxpay alipay |
| total_fee | int | 是 | 订单总金额,单位为分,100等于1元 |
| type | string | 是 | 订单类型 goods:订单付款 recharge:余额充值付款 vip:vip充值付款 等等,可自定义,主要用于判断走哪个回调逻辑(如商品付款和余额充值的回调逻辑肯定是不一样的) |
| type | string | 是 | 订单类型 goods:订单付款 recharge:余额充值付款 vip:vip充值付款 等等,可自定义,主要用于判断走哪个回调逻辑(如商品付款和余额充值的回调逻辑肯定是不一样的) |
| order_no | string | 是 | 业务系统订单号 建议控制在20-28位(不可以是24位,24位在阿里云空间可能会有问题)(可重复,代表1个业务订单会有多次付款的情况) |
| out_trade_no | string | 否 | 支付插件订单号(需控制唯一,不传则由插件自动生成) |
| description | string | 否 | 支付描述,如:uniCloud个人版包月套餐 |
| qr_code | boolean | 否 | 若设置为 true 则强制开启二维码支付模式 |
| openid | string | 否 | 发起支付的用户openid(微信公众号支付必填,小程序支付等插件会自动获取,无需填写 |
| custom | object | 否 | 自定义参数(不会发送给第三方支付服务器) |
| other | object | 否 | 其他请求参数(会发送给第三方支付服务器) |
| out_trade_no | string | 否 | 支付插件订单号(需控制唯一,不传则由插件自动生成) |
| description | string | 否 | 支付描述,如:uniCloud个人版包月套餐 |
| qr_code | boolean | 否 | 若设置为 true 则强制开启二维码支付模式 |
| openid | string | 否 | 发起支付的用户openid(微信公众号支付必填,小程序支付等插件会自动获取,无需填写 |
| custom | object | 否 | 自定义参数(不会发送给第三方支付服务器) |
| other | object | 否 | 其他请求参数(会发送给第三方支付服务器) |
**返回值**
...
...
@@ -1703,12 +1703,12 @@ await uniPayCo.getOrder({
```
**参数说明**
| 参数名 | 类型 | 必填 | 说明 |
|-----------------|---------|------|---------------------------|
| out_trade_no | string | out_trade_no、transaction_id 二选一 | 插件订单号 |
| transaction_id | string | out_trade_no、transaction_id 二选一 | 第三方支付交易单号 |
| await_notify | boolean | 否 | 默认为false,是否需要等待异步通知执行完成,若为了响应速度,可以设置为false,若需要等待异步回调执行完成,则设置为true |
| await_notify | boolean | 否 | 默认为false,是否需要等待异步通知执行完成,若为了响应速度,可以设置为false,若需要等待异步回调执行完成,则设置为true |
**await_notify = true 适合什么场景?**
...
...
@@ -1754,13 +1754,13 @@ await uniPayCo.refund({
```
**参数说明**
| 参数名 | 类型 | 必填 | 说明 |
|-----------------|---------|------|---------------------------|
| out_trade_no | string | out_trade_no、out_refund_no 二选一 | 插件订单号 |
| out_refund_no | string | out_trade_no、out_refund_no 二选一 | 插件退款订单号 |
| refund_desc | string | 否 | 退款描述 |
| refund_fee | int | 否 | 退款金,单位分 100 = 1元 |
| refund_desc | string | 否 | 退款描述 |
| refund_fee | int | 否 | 退款金,单位分 100 = 1元 |
**返回值**
...
...
@@ -1787,19 +1787,19 @@ await uniPayCo.getRefund({
```
**参数说明**
| 参数名 | 类型 | 必填 | 说明 |
|-----------------|---------|------|---------------------------|
| out_trade_no | string | 是 | 插件订单号 |
**参数说明**
| 参数名 | 类型 | 必填 | 说明 |
|-----------------|---------|------|---------------------------|
| out_trade_no | string | out_trade_no、out_refund_no 二选一 | 插件订单号 |
| out_refund_no | string | out_trade_no、out_refund_no 二选一 | 插件退款订单号 |
| refund_desc | string | 否 | 退款描述 |
| refund_fee | int | 否 | 退款金,单位分 100 = 1元 |
| refund_desc | string | 否 | 退款描述 |
| refund_fee | int | 否 | 退款金,单位分 100 = 1元 |
**返回值**
...
...
@@ -1834,7 +1834,7 @@ await uniPayCo.closeOrder({
```
**参数说明**
| 参数名 | 类型 | 必填 | 说明 |
|-----------------|---------|------|---------------------------|
| out_trade_no | string | 是 | 插件订单号 |
...
...
@@ -1891,7 +1891,7 @@ await uniPayCo.getProviderAppId({
```
**参数说明**
| 参数名 | 类型 | 必填 | 说明 |
|-----------------|---------|------|---------------------------|
| provider | string | 是 | 支付供应商 如 wxpay alipay |
...
...
@@ -1928,7 +1928,7 @@ await uniPayCo.getOpenid({
```
**参数说明**
| 参数名 | 类型 | 必填 | 说明 |
|-----------------|---------|------|---------------------------|
| provider | string | 是 | 支付供应商 如 wxpay alipay |
...
...
@@ -1967,7 +1967,7 @@ this.$refs.pay.createOrder({
custom
:
{}
});
```
[
点击查看ios内购注意事项
](
#tips-appleiap
)
完整ios内购支付示例代码
...
...
@@ -1986,7 +1986,7 @@ this.$refs.pay.createOrder({
<view
class=
"uni-padding-wrap"
>
<button
class=
"btn-pay"
@
click=
"createOrder"
:loading=
"loading"
:disabled=
"disabled"
>
立即支付
</button>
</view>
<!-- 统一支付组件,注意:vue3下ref不可以等于组件名,因此这里ref="pay" 而不能是 ref="uniPay" -->
<uni-pay
ref=
"pay"
:debug=
"true"
:adpid=
"adpid"
return-url=
"/pages/order-detail/order-detail"
@
mounted=
"onMounted"
@
success=
"onSuccess"
></uni-pay>
</view>
...
...
@@ -1999,7 +1999,7 @@ this.$refs.pay.createOrder({
order_no
:
""
,
// 业务系统订单号(即你自己业务系统的订单表的订单号)
out_trade_no
:
""
,
// 插件支付单号
adpid
:
"
1000000001
"
,
// uni-ad的广告位id
loading
:
false
,
// 支付按钮是否在loading中
disabled
:
true
,
// 支付按钮是否禁用
productid
:
""
,
// 用户选择的商品id
...
...
@@ -2021,7 +2021,7 @@ this.$refs.pay.createOrder({
}
},
onLoad
:
function
()
{
},
onShow
()
{
if
(
this
.
$refs
.
pay
&&
this
.
$refs
.
pay
.
appleiapRestore
)
{
...
...
@@ -2068,13 +2068,13 @@ this.$refs.pay.createOrder({
console
.
log
(
'
success:
'
,
res
);
if
(
res
.
user_order_success
)
{
// 代表用户已付款,且你自己写的回调成功并正确执行了
}
else
{
// 代表用户已付款,但你自己写的回调执行失败(通常是因为你的回调代码有问题)
}
},
// 监听-多选框选中的值改变
applePriceChange
(
e
)
{
this
.
productid
=
e
.
detail
.
value
;
...
...
@@ -2285,7 +2285,7 @@ APP支付除了配置uni-pay的支付配置外,还需要打包时添加支付
6.
目前hbx版本热刷新会导致ios支付无法正常调用,因此每次修改完代码保存后,需要先关闭手机App,然后hbx重启项目,再打开手机app。(后面HBX会修复此问题)
## 全局错误码@errorcode
| 错误模块 | 错误码 | 说明 |
|---------|-------------|---------------------------|
| uni-pay | 50403 | 当前登录用户的角色权限不足 |
...
...
docs/univerify.md
浏览文件 @
396eee2c
...
...
@@ -32,7 +32,7 @@ keyword: 手机号
## 客户端@client
客户端如何使用一键登录请参考此文档:
[
univerify 使用指南
](
/univerify
)
客户端如何使用一键登录请参考此文档:
[
univerify 使用指南
](
https://uniapp.dcloud.net.cn/univerify.html
)
## 云函数@cloud
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录