C5GAME-伙伴平台
    C5GAME-伙伴平台
    • OAuth2 授权流程介绍
    • 用户接口
      • 接口说明
      • 用户信息
        • 用户基础信息
        • 用户手机号
        • 用户资产信息
        • 查询用户steam信息
        • 读取 steam 库存
      • 用户订单
        • 购买订单查询
        • 出售订单查询
        • 订单发货
      • 商品管理
        • 在售列表
        • 上架
        • 在售改价
        • 商品下架
    • 合作伙伴接口
      • 接口说明
      • 获取商品价格
        POST

    OAuth2 授权流程介绍

    OAuth2登录授权#

    开发者通过OAuth2登录授权机制,可以获取用户基本信息,进而实现C5用户登录等业务逻辑。

    伙伴账号申请#

    申请数据说明
    应用名称OAuth2登录授权页需要展示
    Icon图标OAuth2登录授权页需要展示, 要求尺寸100*100
    Scope授权作用域支持多个, OAuth2登录授权页需要展示, 明确告知用户需要授权的功能
    重定向地址支持多个, 登录授权重定向时使用
    申请通过后,由我们将给您分配账号以及一些开发者信息
    client_id: 合作伙伴唯一标识
    client_secret: 合作伙伴的 client_secret, 请妥善保管,非常重要

    Scope授权作用域#

    若用户授权某个功能,则可以使用该用户的 access_token 调用相关接口能力
    授权作用域说明
    simple_info授权用户基础信息,头像,用户昵称,以及 openId
    mobile授权绑定的手机号码
    asset用户资产信息,获取余额
    steam_info获取绑定 steam 账号数据信息
    steam_inventory读取 steam 库存数据
    order_record查询购买订单与出售订单信息
    order_operate授权订单操作,发货 / 取消
    product_query查询在售商品数据
    product_operate授权商品操作,上架 / 改价 / 下架

    开发指南#

    OAuth2登录授权流程分为四步:
    1.
    引导用户进入登录授权页面同意授权,获取code
    2.
    通过code换取OAuth2登录授权access_token
    3.
    如果需要,开发者可以刷新OAuth2登录授权access_token,避免过期
    4.
    通过OAuth2登录授权access_token和openid获取用户基本信息

    第一步:用户同意授权,获取code#

    引导用户打开C5登录授权页面:
    https://h5.c5game.com/thirdauth?client_id=CLIENTID&response_type=code&scope=SCOPE&redirect_uri=REDIRECT_URI
    https://h5.c5game.com/thirdauth?client_id=1861097523721883713&response_type=code&scope=simple_info&redirect_uri=https%3A%2F%2Fwww.c5game.com
    尤其注意:跳转回调redirect_uri,应当使用https链接来确保授权code的安全性。
    参数是否必须说明
    client_id是客户端的唯一标识, 由C5提供
    redirect_uri是授权后重定向的回调链接地址
    response_type是返回类型,请填写code
    scope是应用授权作用域, 多个用","分隔simple_info 授权头像,用户昵称mobile 授权绑定的手机号码steam_info 授权绑定的Steam信息template_message 授权发送模板消息
    下图为scope等于simple_info,mobile,steam_info时的授权页面
    image.png
    用户同意授权后, 将跳转至 redirect_uri?code=CODE
    code说明:
    code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。
    返回码说明
    30112请求的Scope暂未签约
    30113无效redirect_url
    30114非法redirect_url
    30125无效response_type

    第二步:通过code换取授权access_token#

    尤其注意:由于客户端的secret和获取到的access_token安全级别都非常高,必须只保存在服务器,不允许传给客户端。后续刷新access_token、通过access_token获取用户信息等步骤,也必须从服务器发起。
    请求方法
    获取code后,请求以下链接获取access_token:
    https://partner.c5game.com/api/oauth2/token?
    client_id=CLIENTID&client_secret=CLIENT_SECRET&grant_type=authorization_code&code=CODE
    参数是否必须说明
    client_id是客户端的唯一标识
    client_secret是客户端的client_secret
    code是填写第一步获取的code参数
    grant_type是填写为authorization_code
    返回说明
    正确时返回的JSON数据包如下:
    {
        "success": true,
        "data": {
            "access_token": "xAtRg2oega5YEyLMPHtbsD7hc7fhrIb11YxVs5Kw3crhXOqK8Hd6lVTSJVUw",
            "refresh_token": "NHRuicFth9F9Fj0Oo46YZWQcWgqFi5DknFgq1SnqvzytRojslfwJfATXjQjw",
            "expires_in": "7199",
            "refresh_expires_in": "2591999",
            "client_id": "1861097523721883713",
            "scope": "simple_info",
            "openid": "137627761146425bac2fb4d1ad45294c"
        },
        "errorCode": 0,
        "errorMsg": null,
        "errorData": null,
        "errorCodeStr": null
    }
    参数描述
    access_token授权接口调用凭证
    refresh_token用户刷新access_token
    expires_inaccess_token接口调用凭证超时时间,单位(秒)
    refresh_expires_inrefresh_token接口调用凭证超时时间,单位(秒)
    client_id客户端的唯一标识
    scope用户授权的作用域,使用逗号(,)分隔
    openid用户唯一标识,用户在该客户端下唯一的OpenID
    错误时微信会返回JSON数据包如下(示例为Code无效错误):
    {
        "success":false,
        "errorCode":30117,
        "errorMsg":"无效code",
        "data":null
    }
    错误返回码说明
    返回码说明
    30110无效code
    30117无效code
    30118无效client_id
    30119非法client_secret

    第三步:刷新access_token(如果需要)#

    由于access_token拥有较短的有效期,当access_token超时后,可以使用refresh_token进行刷新,refresh_token有效期为30天,当refresh_token失效之后,需要用户重新授权。
    请求方法
    获取第二步的refresh_token后,请求以下链接获取access_token:
    https://partner.c5game.com/api/oauth2/refresh?client_id=CLIENTID&client_secret=CLIENT_SECRET&grant_type=refresh_token&refresh_token=REFRESH_TOKEN
    参数是否必须说明
    client_id是客户端的唯一标识
    client_secret是客户端的client_secret
    grant_type是填写为refresh_token
    refresh_token是填写通过access_token获取到的refresh_token参数
    返回说明
    正确时返回的JSON数据包如下:
    {
        "success": true,
        "data": {
            "access_token": "xAtRg2oega5YEyLMPHtbsD7hc7fhrIb11YxVs5Kw3crhXOqK8Hd6lVTSJVUw",
            "refresh_token": "NHRuicFth9F9Fj0Oo46YZWQcWgqFi5DknFgq1SnqvzytRojslfwJfATXjQjw",
            "expires_in": "7199",
            "refresh_expires_in": "2591999",
            "client_id": "1861097523721883713",
            "scope": "simple_info",
            "openid": "137627761146425bac2fb4d1ad45294c"
        },
        "errorCode": 0,
        "errorMsg": null,
        "errorData": null,
        "errorCodeStr": null
    }
    参数描述
    access_token授权接口调用凭证
    refresh_token用户刷新access_token
    expires_inaccess_token接口调用凭证超时时间,单位(秒)
    refresh_expires_inrefresh_token接口调用凭证超时时间,单位(秒)
    client_id客户端的唯一标识
    scope用户授权的作用域,使用逗号(,)分隔
    openid用户唯一标识,用户在该客户端下唯一的OpenID
    错误返回码说明
    返回码说明
    30111无效refresh_token
    修改于 2024-07-17 10:00:39
    下一页
    接口说明
    Built with