• 小白接口
  • 我的API
    • MyAPI(接口DIY,中文接口编程)
    • 私人定制API(由平台开发)
    • API在线测试
    • 免费创建我的接口
  • 应用API
    • 会员模块 重要
    • 配置模块
    • 数据统计模块 剩余流量
    • 日志模块
    • CDN图片文件模块
    • 邮件服务模块
    • 图形验证码模块
    • 微信集成模块
    • 短链接模块
  • 数据库API
    • 表单数据接口 [通用版] 开发必备
    • 表单结构API
    • 程序化数据API
    • MySQL/PostgreSQL API [直连版]
    • Sql Server API [数据库配置]
    • Sql Server API [存储过程]
    • Sql Server API [数据库操作]
  • 常用API
    • 二维码模块
    • 条形码模块
    • 会员头像模块
    • IP服务模块
    • 拼音模块
    • 昵称API
    • 密码API
    • 模拟数据API
    • 日期API
    • 唯一ID生成API
    • 快递API
    • 加解密API
    • JWT认证授权API
    • 中文分词API
    • 简繁体转换API
  • 教程
  • API开发
    • 接口源码库 推荐
    • 接口DIY (低代码开发)
    • AI写接口
  • 登录
  • 注册



YesApi 接口文档

6101 发送私信接口

接口路径(新):http://hd215.api.okayapi.com/api/App/Market_ChatMessage/Send

接口路径(旧):http://hd215.api.okayapi.com/?s=App.Market_ChatMessage.Send

接口描述: 发送私信,非好友也可以发送。使用前请先安装私信插件

接口参数 若无特殊说明,接口参数同时支持GET和POST传递;推荐:查询/删除用GET,创建/更新用POST。

参数名字参数类型是否必须默认值备注参数说明
app_key字符串必须最小:32公共参数 开发者应用的app_key,查看我的app_key,如果还没有,可免费注册开通。
sign字符串可选公共参数接口签名,其中:
  • 使用动态签名,签名生成算法请见:如何生成签名,或直接使用封装好的SDK开发包,通过在线测试工具可进行签名的对比和调试。
  • 使用静态签名,点击获取我的静态签名
  • 关闭签名,如果不需要签名,可进入小白开放平台接口签名设置关闭或开启签名。
  • 定制签名支持专属签名算法定制开发
uuid字符串可选公共参数 UUID,当前登录的应用会员ID,即全局唯一用户ID,查看我的应用会员。传递此参数后,可以在开放平台查看每日活跃会员统计图表。uuid需要和token一起传递。
token字符串可选公共参数 当前登录会员的会话凭证,可通过会员登录接口获得。uuid需要和token一起传递。
return_data字符串可选0公共参数 数据返回结构,其中:
  • return_data=0,返回完整的接口结果,示例:{"ret":200,"data":{"err_code":0,"err_msg":"","title":"Hi YesApi,欢迎使用小白开放接口!"},"msg":"V3.1.0 YesApi App.Hello.World","_t": 1657513450, "_auth": "9bcd54ff53e71a1d80d37c52bdfabf76"};
  • return_data=1,返回简洁的接口结果,只返回data字段,结构简化一级,更扁平,示例:{"err_code":0,"err_msg":"V3.1.0 YesApi App.Hello.World","title":"Hi YesApi,欢迎使用小白开放接口!"}。
other_uuid字符串必须最小:32;最大:32接收私信的会员uuid
chat_message_type枚举类型必须text范围:text/html/image/link/custom私信消息类型,text普通文本,html富文本,image图片,link链接,custom自定义。注意,不同私信类型,需要提供的chat_message_data参数不同。
chat_message_data字符串JSON格式必须私信消息数据,JSON格式。不同消息类型,参数格式不同。分别是:
  • text普通文本:{"content":"(必须)文本消息内容"};
  • html富文本:{"content":"(必须)HTML消息内容"};
  • image图片:{"url":"必须)图片链接"};
  • link链接:{"url":"(必须)链接"};
  • custom自定义:{"xxx":"自定义结构"}。
此外,全部消息类型均支持emoji表情(例如:我 ❤ ⚽ ),且支持更多自定义扩展字段。

客户端请求示例

查看我的接口域名、app_key和app_secrect 客户端接入指南(如何生成签名) 开启/关闭签名

接口返回及数据结构

返回字段类型说明
ret整型接口状态码,200表示成功,4xx表示客户端非法请求,5xx表示服务端异常,查看异常错误码
dataobject/array/混合接口返回的业务数据,由不同的API接口决定不同的数据返回字段和结构。当return_data=1时,接口只会返回此data字段。
data.err_code整型操作码,0表示成功,1不能发送给自己,2发送失败,9表示插件未安装
data.err_msg字符串错误提示信息,err_code非0时参考此提示信息
msg字符串提示信息,面向技术人员的帮助或错误提示信息
_t整数服务器当时Unix时间戳,例如:1657513450
_auth字符串反向数字签名,可用于客户端进行反向验证,防止数据篡改,例如:9bcd54ff53e71a1d80d37c52bdfabf76。验证算法:_auth = md5(data返回的JSON字符串 + _t当前时间戳字符串 + APP_SECRECT密钥字符串),若需要关闭或开启请提交工单

YesApi 接口文档

6102 群发私信接口

接口路径(新):http://hd215.api.okayapi.com/api/App/Market_ChatMessage/MultiSend

接口路径(旧):http://hd215.api.okayapi.com/?s=App.Market_ChatMessage.MultiSend

接口描述: 给多个会员批量群发私信,非好友也可以发送。使用前请先安装私信插件

接口参数 若无特殊说明,接口参数同时支持GET和POST传递;推荐:查询/删除用GET,创建/更新用POST。

参数名字参数类型是否必须默认值备注参数说明
app_key字符串必须最小:32公共参数 开发者应用的app_key,查看我的app_key,如果还没有,可免费注册开通。
sign字符串可选公共参数接口签名,其中:
  • 使用动态签名,签名生成算法请见:如何生成签名,或直接使用封装好的SDK开发包,通过在线测试工具可进行签名的对比和调试。
  • 使用静态签名,点击获取我的静态签名
  • 关闭签名,如果不需要签名,可进入小白开放平台接口签名设置关闭或开启签名。
  • 定制签名支持专属签名算法定制开发
uuid字符串可选公共参数 UUID,当前登录的应用会员ID,即全局唯一用户ID,查看我的应用会员。传递此参数后,可以在开放平台查看每日活跃会员统计图表。uuid需要和token一起传递。
token字符串可选公共参数 当前登录会员的会话凭证,可通过会员登录接口获得。uuid需要和token一起传递。
return_data字符串可选0公共参数 数据返回结构,其中:
  • return_data=0,返回完整的接口结果,示例:{"ret":200,"data":{"err_code":0,"err_msg":"","title":"Hi YesApi,欢迎使用小白开放接口!"},"msg":"V3.1.0 YesApi App.Hello.World","_t": 1657513450, "_auth": "9bcd54ff53e71a1d80d37c52bdfabf76"};
  • return_data=1,返回简洁的接口结果,只返回data字段,结构简化一级,更扁平,示例:{"err_code":0,"err_msg":"V3.1.0 YesApi App.Hello.World","title":"Hi YesApi,欢迎使用小白开放接口!"}。
other_uuid字符串用,分割必须最小:1;最大:200接收私信的会员uuid,多个uuid用英文逗号分割
chat_message_type枚举类型必须text范围:text/html/image/link/custom私信消息类型,text普通文本,html富文本,image图片,link链接,custom自定义。注意,不同私信类型,需要提供的chat_message_data参数不同。
chat_message_data字符串JSON格式必须私信消息数据,JSON格式。不同消息类型,参数格式不同。分别是:
  • text普通文本:{"content":"(必须)文本消息内容"};
  • html富文本:{"content":"(必须)HTML消息内容"};
  • image图片:{"url":"必须)图片链接"};
  • link链接:{"url":"(必须)链接"};
  • custom自定义:{"xxx":"自定义结构"}。
此外,全部消息类型均支持emoji表情(例如:我 ❤ ⚽ ),且支持更多自定义扩展字段。

客户端请求示例

查看我的接口域名、app_key和app_secrect 客户端接入指南(如何生成签名) 开启/关闭签名

接口返回及数据结构

返回字段类型说明
ret整型接口状态码,200表示成功,4xx表示客户端非法请求,5xx表示服务端异常,查看异常错误码
dataobject/array/混合接口返回的业务数据,由不同的API接口决定不同的数据返回字段和结构。当return_data=1时,接口只会返回此data字段。
data.err_code整型操作码,0表示成功,1不能发送给自己,2发送失败,9表示插件未安装
data.err_msg字符串错误提示信息,err_code非0时参考此提示信息
data.detail字符串批量发送结果详情
data.detail[].other_uuid字符串接收私信的会员ID
data.detail[].chat_message_id整型消息ID
msg字符串提示信息,面向技术人员的帮助或错误提示信息
_t整数服务器当时Unix时间戳,例如:1657513450
_auth字符串反向数字签名,可用于客户端进行反向验证,防止数据篡改,例如:9bcd54ff53e71a1d80d37c52bdfabf76。验证算法:_auth = md5(data返回的JSON字符串 + _t当前时间戳字符串 + APP_SECRECT密钥字符串),若需要关闭或开启请提交工单

YesApi 接口文档

6103 获取单人会话消息列表

接口路径(新):http://hd215.api.okayapi.com/api/App/Market_ChatMessage/TakeMessageList

接口路径(旧):http://hd215.api.okayapi.com/?s=App.Market_ChatMessage.TakeMessageList

接口描述: 获取与某一位会员的单人会话消息列表。使用前请先安装私信插件

接口参数 若无特殊说明,接口参数同时支持GET和POST传递;推荐:查询/删除用GET,创建/更新用POST。

参数名字参数类型是否必须默认值备注参数说明
app_key字符串必须最小:32公共参数 开发者应用的app_key,查看我的app_key,如果还没有,可免费注册开通。
sign字符串可选公共参数接口签名,其中:
  • 使用动态签名,签名生成算法请见:如何生成签名,或直接使用封装好的SDK开发包,通过在线测试工具可进行签名的对比和调试。
  • 使用静态签名,点击获取我的静态签名
  • 关闭签名,如果不需要签名,可进入小白开放平台接口签名设置关闭或开启签名。
  • 定制签名支持专属签名算法定制开发
uuid字符串可选公共参数 UUID,当前登录的应用会员ID,即全局唯一用户ID,查看我的应用会员。传递此参数后,可以在开放平台查看每日活跃会员统计图表。uuid需要和token一起传递。
token字符串可选公共参数 当前登录会员的会话凭证,可通过会员登录接口获得。uuid需要和token一起传递。
return_data字符串可选0公共参数 数据返回结构,其中:
  • return_data=0,返回完整的接口结果,示例:{"ret":200,"data":{"err_code":0,"err_msg":"","title":"Hi YesApi,欢迎使用小白开放接口!"},"msg":"V3.1.0 YesApi App.Hello.World","_t": 1657513450, "_auth": "9bcd54ff53e71a1d80d37c52bdfabf76"};
  • return_data=1,返回简洁的接口结果,只返回data字段,结构简化一级,更扁平,示例:{"err_code":0,"err_msg":"V3.1.0 YesApi App.Hello.World","title":"Hi YesApi,欢迎使用小白开放接口!"}。
other_uuid字符串必须最小:32;最大:32私信对话的会员uuid
last_id字符串可选0最小:0上一次的消息ID,通过传递前面的私信消息ID以保证消息的连贯性。
direction枚举类型可选down范围:up/down获取私信消息的方向,up表示向上滑动,即取前面的旧消息;down表示向下滑动,即获取最新的消息。
perpage整型可选20最小:1;最大:100分页数量

客户端请求示例

查看我的接口域名、app_key和app_secrect 客户端接入指南(如何生成签名) 开启/关闭签名

接口返回及数据结构

返回字段类型说明
ret整型接口状态码,200表示成功,4xx表示客户端非法请求,5xx表示服务端异常,查看异常错误码
dataobject/array/混合接口返回的业务数据,由不同的API接口决定不同的数据返回字段和结构。当return_data=1时,接口只会返回此data字段。
data.err_code整型操作码,0表示成功,1不能和自己聊天,9表示插件未安装
data.err_msg字符串错误提示信息,err_code非0时参考此提示信息
data.list字符串消息列表
data.list[].id整型
data.list[].chat_message_to_uuid字符串当前会话的会员uuid
data.list[].chat_message_data对象消息数据结构体
data.list[].chat_message_type字符串消息类型
data.list[].chat_message_is_read整型是否已读,0未读1已读
data.list[].chat_message_io字符串消息方向,in表示自己发出的,out表示收到的
data.list[].add_time字符串消息发送时间
data.unread_num整型未读消息数量
msg字符串提示信息,面向技术人员的帮助或错误提示信息
_t整数服务器当时Unix时间戳,例如:1657513450
_auth字符串反向数字签名,可用于客户端进行反向验证,防止数据篡改,例如:9bcd54ff53e71a1d80d37c52bdfabf76。验证算法:_auth = md5(data返回的JSON字符串 + _t当前时间戳字符串 + APP_SECRECT密钥字符串),若需要关闭或开启请提交工单

YesApi 接口文档

6104 标记消息为已读

接口路径(新):http://hd215.api.okayapi.com/api/App/Market_ChatMessage/MarkAsReaded

接口路径(旧):http://hd215.api.okayapi.com/?s=App.Market_ChatMessage.MarkAsReaded

接口描述: 可以针对单人会话,把当前会话的全部消息或指定某一条消息置为已读。使用前请先安装私信插件

接口参数 若无特殊说明,接口参数同时支持GET和POST传递;推荐:查询/删除用GET,创建/更新用POST。

参数名字参数类型是否必须默认值备注参数说明
app_key字符串必须最小:32公共参数 开发者应用的app_key,查看我的app_key,如果还没有,可免费注册开通。
sign字符串可选公共参数接口签名,其中:
  • 使用动态签名,签名生成算法请见:如何生成签名,或直接使用封装好的SDK开发包,通过在线测试工具可进行签名的对比和调试。
  • 使用静态签名,点击获取我的静态签名
  • 关闭签名,如果不需要签名,可进入小白开放平台接口签名设置关闭或开启签名。
  • 定制签名支持专属签名算法定制开发
uuid字符串可选公共参数 UUID,当前登录的应用会员ID,即全局唯一用户ID,查看我的应用会员。传递此参数后,可以在开放平台查看每日活跃会员统计图表。uuid需要和token一起传递。
token字符串可选公共参数 当前登录会员的会话凭证,可通过会员登录接口获得。uuid需要和token一起传递。
return_data字符串可选0公共参数 数据返回结构,其中:
  • return_data=0,返回完整的接口结果,示例:{"ret":200,"data":{"err_code":0,"err_msg":"","title":"Hi YesApi,欢迎使用小白开放接口!"},"msg":"V3.1.0 YesApi App.Hello.World","_t": 1657513450, "_auth": "9bcd54ff53e71a1d80d37c52bdfabf76"};
  • return_data=1,返回简洁的接口结果,只返回data字段,结构简化一级,更扁平,示例:{"err_code":0,"err_msg":"V3.1.0 YesApi App.Hello.World","title":"Hi YesApi,欢迎使用小白开放接口!"}。
other_uuid字符串必须最小:32;最大:32私信对话的会员uuid
chat_message_id整型可选0最小:0会话消息ID,为0时表示把当前会话全部消息标记为已读,不为0时单条标记为已读。

客户端请求示例

查看我的接口域名、app_key和app_secrect 客户端接入指南(如何生成签名) 开启/关闭签名

接口返回及数据结构

返回字段类型说明
ret整型接口状态码,200表示成功,4xx表示客户端非法请求,5xx表示服务端异常,查看异常错误码
dataobject/array/混合接口返回的业务数据,由不同的API接口决定不同的数据返回字段和结构。当return_data=1时,接口只会返回此data字段。
data.err_code整型操作码,0表示成功,9表示插件未安装
data.err_msg字符串错误提示信息,err_code非0时参考此提示信息
data.readed_num整型本次已标记为已读的数量
msg字符串提示信息,面向技术人员的帮助或错误提示信息
_t整数服务器当时Unix时间戳,例如:1657513450
_auth字符串反向数字签名,可用于客户端进行反向验证,防止数据篡改,例如:9bcd54ff53e71a1d80d37c52bdfabf76。验证算法:_auth = md5(data返回的JSON字符串 + _t当前时间戳字符串 + APP_SECRECT密钥字符串),若需要关闭或开启请提交工单

YesApi 接口文档

6105 获取全部会话列表

接口路径(新):http://hd215.api.okayapi.com/api/App/Market_ChatMessage/GetAllChatList

接口路径(旧):http://hd215.api.okayapi.com/?s=App.Market_ChatMessage.GetAllChatList

接口描述: 获取和全部人的私信会话列表。使用前请先安装私信插件

接口参数 若无特殊说明,接口参数同时支持GET和POST传递;推荐:查询/删除用GET,创建/更新用POST。

参数名字参数类型是否必须默认值备注参数说明
app_key字符串必须最小:32公共参数 开发者应用的app_key,查看我的app_key,如果还没有,可免费注册开通。
sign字符串可选公共参数接口签名,其中:
  • 使用动态签名,签名生成算法请见:如何生成签名,或直接使用封装好的SDK开发包,通过在线测试工具可进行签名的对比和调试。
  • 使用静态签名,点击获取我的静态签名
  • 关闭签名,如果不需要签名,可进入小白开放平台接口签名设置关闭或开启签名。
  • 定制签名支持专属签名算法定制开发
uuid字符串可选公共参数 UUID,当前登录的应用会员ID,即全局唯一用户ID,查看我的应用会员。传递此参数后,可以在开放平台查看每日活跃会员统计图表。uuid需要和token一起传递。
token字符串可选公共参数 当前登录会员的会话凭证,可通过会员登录接口获得。uuid需要和token一起传递。
return_data字符串可选0公共参数 数据返回结构,其中:
  • return_data=0,返回完整的接口结果,示例:{"ret":200,"data":{"err_code":0,"err_msg":"","title":"Hi YesApi,欢迎使用小白开放接口!"},"msg":"V3.1.0 YesApi App.Hello.World","_t": 1657513450, "_auth": "9bcd54ff53e71a1d80d37c52bdfabf76"};
  • return_data=1,返回简洁的接口结果,只返回data字段,结构简化一级,更扁平,示例:{"err_code":0,"err_msg":"V3.1.0 YesApi App.Hello.World","title":"Hi YesApi,欢迎使用小白开放接口!"}。
page整型可选1最小:1;最大:100第几页
perpage整型可选20最小:1;最大:100分页数量

客户端请求示例

查看我的接口域名、app_key和app_secrect 客户端接入指南(如何生成签名) 开启/关闭签名

HTTP通用示例
请求(需要登录态):
{你的接口域名}/?s=App.Market_ChatMessage.GetAllChatList&app_key={你的app_key}&sign={动态签名}

返回:
{
    "ret": 200,
    "data": {
        "err_code": 0,
        "err_msg": "",
        "list": [
        {
            "chat_message_to_uuid": "8AEA2AF1951C0376EC668A74B8CAA64A",
            "chat_message_data": {
                "content": "I ❤ ⚽ "
            },
            "chat_message_type": "text",
            "chat_message_is_read": 1,
            "chat_message_io": "out",
            "add_time": "2019-08-11 17:12:02",
            "user": {
                "username": "AB君",
                "ext_info": {
                    "yesapi_avatar": "",
                    "nickname": "",
                    "age": "18"
                }
            }
        },
        {
            "chat_message_to_uuid": "5B1CA086F3E9E86F83354191AFB41E9E",
            "chat_message_data": {
                "content": "I love 小白接口!"
            },
            "chat_message_type": "text",
            "chat_message_is_read": 1,
            "chat_message_io": "out",
            "add_time": "2019-08-11 17:12:02",
            "user": {
                "username": "dogstar",
                "ext_info": {
                    "yesapi_avatar": "",
                    "nickname": "",
                    "age": "18"
                }
            }
        }
        ],
            "total": 2
    },
    "msg": "小白开放接口:App.Market_ChatMessage.GetAllChatList"
}

接口返回及数据结构

返回字段类型说明
ret整型接口状态码,200表示成功,4xx表示客户端非法请求,5xx表示服务端异常,查看异常错误码
dataobject/array/混合接口返回的业务数据,由不同的API接口决定不同的数据返回字段和结构。当return_data=1时,接口只会返回此data字段。
data.err_code整型操作码,0表示成功,9表示插件未安装
data.err_msg字符串错误提示信息,err_code非0时参考此提示信息
data.list字符串私信聊天列表
data.list[].chat_message_to_uuid字符串当前会话的会员uuid
data.list[].chat_message_type字符串消息类型
data.list[].chat_message_io字符串消息方向,in表示自己发出的,out表示收到的
data.list[].add_time字符串消息发送时间
data.list[].chat_message_data对象消息数据结构体
data.list[].chat_message_is_read整型是否已读,0未读1已读
data.list[].user对象用户信息
data.list[].user.username字符串用户账号名
data.list[].user.ext_info对象用户扩展信息
data.total整型私信聊天人数
msg字符串提示信息,面向技术人员的帮助或错误提示信息
_t整数服务器当时Unix时间戳,例如:1657513450
_auth字符串反向数字签名,可用于客户端进行反向验证,防止数据篡改,例如:9bcd54ff53e71a1d80d37c52bdfabf76。验证算法:_auth = md5(data返回的JSON字符串 + _t当前时间戳字符串 + APP_SECRECT密钥字符串),若需要关闭或开启请提交工单

YesApi 接口文档

6106 获取全部未读的新消息数量

接口路径(新):http://hd215.api.okayapi.com/api/App/Market_ChatMessage/GetAllUnreadNum

接口路径(旧):http://hd215.api.okayapi.com/?s=App.Market_ChatMessage.GetAllUnreadNum

接口描述: 获取和全部人的未读的新消息数量。使用前请先安装私信插件

接口参数 若无特殊说明,接口参数同时支持GET和POST传递;推荐:查询/删除用GET,创建/更新用POST。

参数名字参数类型是否必须默认值备注参数说明
app_key字符串必须最小:32公共参数 开发者应用的app_key,查看我的app_key,如果还没有,可免费注册开通。
sign字符串可选公共参数接口签名,其中:
  • 使用动态签名,签名生成算法请见:如何生成签名,或直接使用封装好的SDK开发包,通过在线测试工具可进行签名的对比和调试。
  • 使用静态签名,点击获取我的静态签名
  • 关闭签名,如果不需要签名,可进入小白开放平台接口签名设置关闭或开启签名。
  • 定制签名支持专属签名算法定制开发
uuid字符串可选公共参数 UUID,当前登录的应用会员ID,即全局唯一用户ID,查看我的应用会员。传递此参数后,可以在开放平台查看每日活跃会员统计图表。uuid需要和token一起传递。
token字符串可选公共参数 当前登录会员的会话凭证,可通过会员登录接口获得。uuid需要和token一起传递。
return_data字符串可选0公共参数 数据返回结构,其中:
  • return_data=0,返回完整的接口结果,示例:{"ret":200,"data":{"err_code":0,"err_msg":"","title":"Hi YesApi,欢迎使用小白开放接口!"},"msg":"V3.1.0 YesApi App.Hello.World","_t": 1657513450, "_auth": "9bcd54ff53e71a1d80d37c52bdfabf76"};
  • return_data=1,返回简洁的接口结果,只返回data字段,结构简化一级,更扁平,示例:{"err_code":0,"err_msg":"V3.1.0 YesApi App.Hello.World","title":"Hi YesApi,欢迎使用小白开放接口!"}。

客户端请求示例

查看我的接口域名、app_key和app_secrect 客户端接入指南(如何生成签名) 开启/关闭签名

接口返回及数据结构

返回字段类型说明
ret整型接口状态码,200表示成功,4xx表示客户端非法请求,5xx表示服务端异常,查看异常错误码
dataobject/array/混合接口返回的业务数据,由不同的API接口决定不同的数据返回字段和结构。当return_data=1时,接口只会返回此data字段。
data.err_code整型操作码,0表示成功,9表示插件未安装
data.err_msg字符串错误提示信息,err_code非0时参考此提示信息
msg字符串提示信息,面向技术人员的帮助或错误提示信息
_t整数服务器当时Unix时间戳,例如:1657513450
_auth字符串反向数字签名,可用于客户端进行反向验证,防止数据篡改,例如:9bcd54ff53e71a1d80d37c52bdfabf76。验证算法:_auth = md5(data返回的JSON字符串 + _t当前时间戳字符串 + APP_SECRECT密钥字符串),若需要关闭或开启请提交工单

特别注意:当前 hd215.api.okayapi.com 为临时接口测试域名!请先完成 绑定独立接口域名后 ,才能正式进行API调用。

由 果创云YesApi.cn 提供技术支持,4万+开发者都在用,累计API调用1,800,000+万次