Skip to content

爱读图通用接口

  • 这个记录一些 爱读图通用接口

扫码登录

  • 扫码登录分 2 个步骤

1.获取登录二维码

post https://www.lingduquan.com/wx/qrlogin

shell
curl --request POST \
  --url https://www.lingduquan.com/wx/qrlogin \
  --header 'Content-Type: application/json' \
  --data '{
    "app":"aidutu",
    "prefix":"yi"
}'
curl --request POST \
  --url https://www.lingduquan.com/wx/qrlogin \
  --header 'Content-Type: application/json' \
  --data '{
    "app":"aidutu",
    "prefix":"yi"
}'
  • 提交体
json
{
  "app": "aidutu", //公众号
  "prefix": "yi" //前缀代表服务
}
{
  "app": "aidutu", //公众号
  "prefix": "yi" //前缀代表服务
}
  • 返回得到 url 关注公众号的二维码 需要以二维码显示给微信扫码
  • 返回得到 token 给下一步使用
  • 返回体如下
json
{
  "token": "yi:abc1212233",
  "url": "http://weixin.qq.com/q/02gemzBCLXdwF1TjUhxEcf"
}
{
  "token": "yi:abc1212233",
  "url": "http://weixin.qq.com/q/02gemzBCLXdwF1TjUhxEcf"
}

2.获取登录结果

get https://www.lingduquan.com/wx/qrlogin/{token}

  • 返回体
json
{
  "open_id": "ob7tg6a6-L4pn8d0vueJPMfq4ZFk",
  "status": "success",
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTk4MTA1OTAsImlhdCI6MTc1ODUxNDU5MCwib3Blbl9pZCI6Im9iN3RnNmE2LUw0cG44ZDB2dWVKUE1mcTRaRmsiLCJ1c2VyX2lkIjoiMjEzMjQifQ.hbTHeBeUlyJz6QERj45Fo9LE74wwtbU-9yL3DA4sCQg",
  "user_id": "21324"
}
{
  "open_id": "ob7tg6a6-L4pn8d0vueJPMfq4ZFk",
  "status": "success",
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTk4MTA1OTAsImlhdCI6MTc1ODUxNDU5MCwib3Blbl9pZCI6Im9iN3RnNmE2LUw0cG44ZDB2dWVKUE1mcTRaRmsiLCJ1c2VyX2lkIjoiMjEzMjQifQ.hbTHeBeUlyJz6QERj45Fo9LE74wwtbU-9yL3DA4sCQg",
  "user_id": "21324"
}
  • 返回体说明
字段类型说明
open_idstring微信公众号 open_id
statusstring取值 success 或者 wait_scan
tokenstringtoken 是一个 jwt 的 token , 后面的交互就把 token 放到 header 中
user_idstringuser_id
  • 最终得到是 token jwt 字符串
  • token 的 jwt 里面包含 user_id open_id 过期时间
  • 如何解 jwt ?需要秘钥 可以跟工作人员联系

微信支付

  • 微信外 通过扫码 得到支付链接到 微信内支付
  • 微信内 直接链接到支付页
  • 需要约定 webhook 地址
  • 需要约定 返回地址 地址

1.获取支付链接

2 webhook

post https://your.com/webhook

提交体 格式

json
{
    "do": "finish", //动作 finish 完成,create 建立
    "act": "yi",
    "ctime": 1758611970,
    "payload": {
         提交数据
    }
}
{
    "do": "finish", //动作 finish 完成,create 建立
    "act": "yi",
    "ctime": 1758611970,
    "payload": {
         提交数据
    }
}

返回显示 ok

2.1 webhook 订单建立

json
{
  "do": "create",
  "act": "yi",
  "ctime": 1758611970,
  "payload": {
    "user_id": "9",
    "open_id": "ob7tg6a6-L4pn8d0vueJPMfq4ZFk",
    "amount": "10",
    "trade_no": "WJ202509231447447592"
  }
}
{
  "do": "create",
  "act": "yi",
  "ctime": 1758611970,
  "payload": {
    "user_id": "9",
    "open_id": "ob7tg6a6-L4pn8d0vueJPMfq4ZFk",
    "amount": "10",
    "trade_no": "WJ202509231447447592"
  }
}
  • docreate 建立订单
  • payload.user_id 用户 uid
  • payload.open_id 用户 open_id
  • payload.amount 支付金额
  • payload.trade_no 外部订单号

2.2 webhook 支付完成

json
{
  "do": "finish",
  "act": "yi",
  "ctime": 1758611970,
  "payload": {
    "user_id": "9",
    "trade_no": "WJ202509231519185462",
    "amount": "10",
    "pay_id": "4200002792202509233954521750",
    "pay_time": "1758611970",
    "payer": "ob7tg6a6-L4pn8d0vueJPMfq4ZFk"
  }
}
{
  "do": "finish",
  "act": "yi",
  "ctime": 1758611970,
  "payload": {
    "user_id": "9",
    "trade_no": "WJ202509231519185462",
    "amount": "10",
    "pay_id": "4200002792202509233954521750",
    "pay_time": "1758611970",
    "payer": "ob7tg6a6-L4pn8d0vueJPMfq4ZFk"
  }
}
  • dofinish 支付订单完成
  • payload.payer 支付人 open_id
  • payload.pay_id 支付订单号

3 主动查询支付结果

get https://www.lingduquan.com/pay/weixin/feed/{trade_no}

返回体

json
{
  "data": {
    "status": "success",
    "payload": {
      "user_id": "9",
      "trade_no": "WJ202509231519185462",
      "amount": "1",
      "ctime": "1758611958",
      "act": "yi",
      "pay_id": "4200002792202509233954521750",
      "pay_time": "1758611970",
      "payer": "ob7tg6a6-L4pn8d0vueJPMfq4ZFk"
    }
  },
  "error": 0,
  "error_des": ""
}
{
  "data": {
    "status": "success",
    "payload": {
      "user_id": "9",
      "trade_no": "WJ202509231519185462",
      "amount": "1",
      "ctime": "1758611958",
      "act": "yi",
      "pay_id": "4200002792202509233954521750",
      "pay_time": "1758611970",
      "payer": "ob7tg6a6-L4pn8d0vueJPMfq4ZFk"
    }
  },
  "error": 0,
  "error_des": ""
}
  • data.statussuccess 表示成功

微信内登录

  • 需要预设 返回的 url 比如 http:://a.cn/login
  • 最终会返回http:://a.cn/login?code={code}
  • code 为微信返回的 code

1.获取登录的 code

get https://www.lingduquan.com/oauth/weixin?f=api&api=yi

  • 这个步骤是用户点击的,不是程序请求
  • api=yi 需要先预定返回的 url 比如约定http:://a.cn/login
  • 最终会引导用户 redirect 到http:://a.cn/login?code={code}

2.通过 code 拉取登录信息

get https://www.lingduquan.com/wx/qrlogin/c/{code}

  • 返回体
json
{
  "open_id": "ob7tg6a6-L4pn8d0vueJPMfq4ZFk",
  "status": "success",
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTk4MTA1OTAsImlhdCI6MTc1ODUxNDU5MCwib3Blbl9pZCI6Im9iN3RnNmE2LUw0cG44ZDB2dWVKUE1mcTRaRmsiLCJ1c2VyX2lkIjoiMjEzMjQifQ.hbTHeBeUlyJz6QERj45Fo9LE74wwtbU-9yL3DA4sCQg",
  "user_id": "21324"
}
{
  "open_id": "ob7tg6a6-L4pn8d0vueJPMfq4ZFk",
  "status": "success",
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTk4MTA1OTAsImlhdCI6MTc1ODUxNDU5MCwib3Blbl9pZCI6Im9iN3RnNmE2LUw0cG44ZDB2dWVKUE1mcTRaRmsiLCJ1c2VyX2lkIjoiMjEzMjQifQ.hbTHeBeUlyJz6QERj45Fo9LE74wwtbU-9yL3DA4sCQg",
  "user_id": "21324"
}
  • 返回体说明
字段类型说明
open_idstring微信公众号 open_id
statusstring取值 success 或者 wait_scan
tokenstringtoken 是一个 jwt 的 token , 后面的交互就把 token 放到 header 中
user_idstringuser_id
  • 最终得到是 token jwt 字符串
  • token 的 jwt 里面包含 user_id open_id 过期时间
  • 如何解 jwt ?需要秘钥 可以跟工作人员联系