EN

# 四、服务端接口

# 4.1 服务器端查单接口

  • # 获取Token

与奇遇服务器通信获取Token(注意Token的有效期为7天)。

URL

https://open-vraioapi.iqiyi.com/qiyu-store/util/token (opens new window)

请求

使用GET方式请求。

  • Headers
参数 是否必须 备注
ua 用户代理,默认值: QYVR-DEVELOPER-SERVER
deviceId 可填入对接服务器的MAC地址作为参数,格式需要转换,例如把 E0-2B-E9-3E-BD-18 转换成 E02BE93EBD18格式
lang 语言, 英文: en_US. 中文: zh_CN
  • 请求参数
参数 是否必须 类型 备注
appId long APPID,请参考3.1初始化 (opens new window)
appSecret string app secret,请参考3.1初始化 (opens new window)

返回

  • 返回值
参数 类型 备注
expIn long 过期时间(单位秒)
token string Token
  • 返回码
返回码 解释
S0000 成功
S9000 系统异常
B3021 App ID 或App Secret 错误

示例

  • 请求
curl -X GET -G https://open-vraioapi.iqiyi.com/qiyu-store/util/token -H 'ua: QYVR-DEVELOPER-SERVER' -H 'deviceId: QYA50000000000000000' -H 'lang: en_US' -d 'appId=20184742' -d 'appSecret=4d7391edb67135832d4949480792fece'
  • 返回
{
 "code": "S0000",
 "data": {
   "expIn": 1648539050764,
   "token": "Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIyMDE4NDc0MiIsImV4cCI6MTY0ODUzOTA1MCwiZGV2aWNlSWQiOiJRWUE1MDAwMDAwMDAwMDAwMDAwMCIsImlhdCI6MTY0NzkzNDI1MCwianRpIjoiOWNmN2UxYzFjYWVkNDQ1Zjk2NDZlMjgyNGRlNThlY2QifQ.cozw72688P52aChqxc4AiCx_7CB8wmfEqtSz7Z9H2wN2dZBRcTCj3MUUuZFFTVKm7EiIOcq7R57QsKL80MFZrA"
 }
 }
  • # 查询DLC订单支付结果 (Server)

URL

https://open-vraioapi.iqiyi.com/qiyu-store/aoc/pay-orders (opens new window)

请求

使用GET方式请求。

  • Headers
参数 是否必须 备注
token 访问令牌,接口1获取
ua 用户代理,默认值: QYVR-DEVELOPER-SERVER
deviceId 可填入对接服务器的MAC地址作为参数,格式需要转换,例如把 E0-2B-E9-3E-BD-18 转换成 E02BE93EBD18格式
lang 语言, 英文: en_US. 中文: zh_CN
  • 请求参数
参数名称 是否必须 备注
orderId 订单ID
sku DLC的sku码,如果不传该参数则查询所有sku
uid 用户UID

返回

  • 返回数据
类型 是否必须 备注
code string
data object 需要用RSA 公钥解密
orderId number 奇遇订单号
orderStatus string 订单状态:success
payAmount bigdecimal 支付金额,单位元
payDate string 支付时间格式:yyyy-MM-dd HH:mm:ss
sku string SKU
uid Long 用户账户ID
  • 返回码
返回码 解释
S0000 成功
S9000 系统异常
B3021 应用ID或秘钥错误
B1001 结果为空

示例

  • 请求
curl -X GET -G http://test.vraioapi.qiyi.domain/qiyu-store/iap/orders -H 'ua: iQIYI-A5' -H 'deviceId: QYA5014016L21A100036' -H 'lang: en_US' -H 'token: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI3MDc0MTc2OSIsImV4cCI6MTY1MDQ1NzIzOSwiZGV2aWNlSWQiOiJRWUE1MDE0MDE2TDIxQTEwMDAzNiIsImlhdCI6MTY0OTg1MjQzOSwianRpIjoiODI2ZDI2Mzg0YmE1NGUyNzhjMzQ3ZWIxYzJmM2EzZmMifQ.1F6gAZsnNpi716GQO2IKsTCWdi5lh2xVprNou_WUuN2pfUsBDIIcByqjb1PjLtPhf4Vt2vdF1ujK0evHt2wjag' -d 'orderId=565544143893418507'
  • 返回
{
     "code":"S0000",
     "data": "ONAdYCHjJRbFznaT2n+KXztGKoz1jxFAMFEjy/OumMwyQkqj4tpO3EFos7gWCtWn9AH7yyTjjMCmqS1y+IM6Y1A10G9CS8f1Wb76BZ5hek/Q2B0N50tvEOXRrFJOC88ZJorTjK7krNGnvJakvrCckU4HpMA9a0Pa+DBEhZLd2tM="
 }

# 4.2 服务端支付结果通知

对于IAP和DLC商品,用户支付完成后,奇遇平台会把相关支付结果及用户uid通过数据流的形式发给应用服务端,开发者需要接收处理,并按文档规范返回应答。

  • 请求类型

奇遇开发者平台会根据开发者在后台录入的通知地址 notify_url,通过 POST 请求的形式将支付结果作为参数进行通知。

  • 接口链接

该链接是通过开发者后台提交的通知地址设置的,通知URL必须为直接可访问的URL,不能携带参数。公网域名建议https。示例:https://vraioapi.iqiyi.com/notify/qiyu/pay (opens new window)

  • 通知参数
字段名 变量名 必填 类型 示例值 描述
通知日期 notifyDate Date 2022-01-20 13:43:34 通知日期
订单编号 orderId Long 530744402810843551 订单编号
订单状态 orderStatus String success 订单状态
支付金额 paidAmount float 2.50 用户支付的金额,单位是元
支付日期 payDate Date 2022-01-20 13:43:31 付费日期
用户 ID uid Long 12345654321 账号 ID
SKU sku String sku12345 SKU 码
签名 sign String 9c2afa957b6f120abdcb64b9bb893bc5 按照签名规则签名
  • 签名规则

奇遇开发者平台在调用开发者方接口时,开发者方需对请求参数进行验证签名,以便在处理请求时,校验通知数据的完整性,方法如下:

参数名称(除签名和签名方式),将所有参数按照字典顺序(A-Z)排序,并用 | 起来: key 1=value 1|key 2=value 2|key =value n如: 将foo=1,bar=2,nav=3排序为bar=2,foo=1,nav=3,参数名和参数值连接后,得到拼装的字符串为bar=2|foo=1|nav=3将xxx(xxx为对应应用接口秘钥)拼接到参数字符串尾部,然后进行MD5计算,转换为小写。格式为:String sign = MD5Encode("bar=2|foo=1|nav=3|xxx", "utf-8").toLowerCase()。

  • 返回参数

如果开发者方接收消息成功,请返回参数"success",否则请返回"fail"。

  • 使用注意事项
  1. 同样的通知可能会多次发送给开发者,开发者必须能够正确处理重复的通知。
  2. 后台通知交互时,如果奇遇平台收到开发者的应答不符合规范或超时,奇遇平台会判定本次通知失败,重新发送通知,知道成为为止。(在通知一直不成功的情况下,奇遇平台总共会发起多次通知,通知频率为5s/30s/2m/4m/6m)。
  3. 在订单状态不明或者没有收到奇遇平台支付结果通知的情况下,建议开发者主动调用奇遇平台查询支付结果接口确认订单状态。
  4. 开发者对于支付结果通知的内容一定要做签名验证,并校验返回的订单金额是否与商户侧的订单金额一致,防止数据泄露导致出现假通知,造成资金损失。
  5. 当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。

# 4.3 奇遇用户认证API指南

# 4.3.1 获取 Token

与奇遇服务器通信获取Token(注意Token的有效期为7天)。

URL

https://open-vraioapi.iqiyi.com/qiyu-store/util/token (opens new window)

请求

  • 方法

使用GET方式请求。

  • Headers
参数 是否必须 备注
ua 用户代理,默认值: QYVR-DEVELOPER-SERVER
deviceId 可填入对接服务器的MAC地址作为参数,格式需要转换,例如把 E0-2B-E9-3E-BD-18 转换成 E02BE93EBD18格式
lang 语言, 英文: en_US. 中文: zh_CN
  • 请求参数
参数 是否必须 类型 备注
appId long APPID,请参考3.1初始化 (opens new window)
appSecret string app secret,请参考3.1初始化 (opens new window)

返回值

  • 返回参数
参数 类型 备注
expIn long 过期时间(单位秒)
token string Token
  • 返回码
返回码 解释
S0000 成功
S9000 系统异常
B3021 App ID 或App Secret 错误

示例

  • 请求
curl -X GET -G https://open-vraioapi.iqiyi.com/qiyu-store/util/token -H 'ua: QYVR-DEVELOPER-SERVER' -H
'deviceId: QYA50000000000000000' -H 'lang: en_US' -d 'appId=20184742' -d 
'appSecret=4d7391edb67135832d4949480792fece'
  • 返回
{
 "code": "S0000",
 "data": {
  "expIn": 1648539050764,
  "token": "Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIyMDE4NDc0MiIsImV4cCI6MTY0ODUzOTA1MCwiZGV2aWNlSWQiOiJRWUE1MDAwMDAwMDAwMDAwMDAwMCIsImlhdCI6MTY0NzkzNDI1MCwianRpIjoiOWNmN2UxYzFjYWVkNDQ1Zjk2NDZlMjgyNGRlNThlY2QifQ.cozw72688P52aChqxc4AiCx_7CB8wmfEqtSz7Z9H2wN2dZBRcTCj3MUUuZFFTVKm7EiIOcq7R57QsKL80MFZrA"
}
}

# 4.3.2 奇遇账号认证

URL

https://open-vraioapi.iqiyi.com/qiyu-vip/user/check (opens new window)

请求

  • 方法

使用GET方式请求。

  • Header
参数 是否必须 备注
ua 用户代理,默认值: QYVR-DEVELOPER-SERVER
deviceId 设备SN
lang 语言, 英文: en_US. 中文: zh_CN
token 访问令牌,接口1中获取 4.3.1 (opens new window)
  • 请求参数
请求参数 是否必须 类型 备注
uid long User ID

返回值

  • 返回码
返回码 备注
S0000 成功
S9000 系统错误
S9006 Token 无效
B1003 uid 无效

示例

  • 请求
curl -X GET -G https://open-vraioapi.iqiyi.com/qiyu-vip/user/check -H 'ua: QYVR-DEVELOPER-SERVER' -H 'deviceId: QYA50000000000000000' -H 'lang: en_US' -H 'token: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIyMDE4NDc0MiIsImV4cCI6MTY0ODUzOTA1MCwiZGV2aWNlSWQiOiJRWUE1MDAwMDAwMDAwMDAwMDAwMCIsImlhdCI6MTY0NzkzNDI1MCwianRpIjoiOWNmN2UxYzFjYWVkNDQ1Zjk2NDZlMjgyNGRlNThlY2QifQ.cozw72688P52aChqxc4AiCx_7CB8wmfEqtSz7Z9H2wN2dZBRcTCj3MUUuZFFTVKm7EiIOcq7R57QsKL80MFZrA' -d 'uid=20184742'
  • 返回
{
"code": "S0000"
}

# 4.4 敏感词校验

根据奇遇敏感词库校验用户文字聊天内容、昵称或房间名称是否包含敏感词。

URL

https://open-vraioapi.iqiyi.com//qiyu-community/illegal-word/filter (opens new window)

请求

  • 方法

使用GET方式请求。(也支持POST方式x-www-form-urlencoded请求)

  • Header
参数 是否必须 备注
ua 用户代理,默认值: QYVR-DEVELOPER-SERVER
deviceId 设备SN
lang 语言, 英文: en_US. 中文: zh_CN
token 访问令牌,接口请参考4.3.1 (opens new window)
  • 请求参数
请求参数 是否必须 类型 备注
taskId number 请求id(大于0的整数),用于问题排查用
content String 要过滤的文本(不能为空,长度不超过50)
useType number 2:文字聊天,3:名称(昵称、房间名称等)

返回值

  • 返回数据
名称 类型 是否必须 备注
code string 请参考返回码
message string
data object
result boolean True:成功,False:失败
taskId number 请求id
  • 返回码
返回码 说明
S0000 成功
S9000 系统错误
S9001 参数错误
S9005 Token 不存在

示例

  • 请求
curl -X GET -G 'https://open-vraioapi.iqiyi.com/qiyu-community/illegal-word/filter?taskId=1001&content=你好&useType=2' -H 'ua: iQIYI-A5' -H 'deviceId: QYA5014016L21A100036' -H 'lang: en_US' -H 'token: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI3MDc0MTc2OSIsImV4cCI6MTY1MDQ1NzIzOSwiZGV2aWNlSWQiOiJRWUE1MDE0MDE2TDIxQTEwMDAzNiIsImlhdCI6MTY0OTg1MjQzOSwianRpIjoiODI2ZDI2Mzg0YmE1NGUyNzhjMzQ3ZWIxYzJmM2EzZmMifQ.1F6gAZsnNpi716GQO2IKsTCWdi5lh2xVprNou_WUuN2pfUsBDIIcByqjb1PjLtPhf4Vt2vdF1ujK0evHt2wjag'
  • 返回
{
    "code": "S0000",
    "message": "成功",
    "data": {
        "result": true,
        "taskId": 1002
    }
}