关于我们

饿了么开放平台服务商应用/平台工具授权流程

发布时间:2025-05-27

 

个人零费用代理店+,日收入3000+,可兼职做

A、客户端拼接授权需要访问的URL,示例及参数说明如下:

示例:

https://open-api-sandbox.shop.ele.me/authorize?response_type=code&client_id=9OKWbmUrKr&redirect_uri=[redirect_uri

参数说明:

参数名参数类型是否必选参数值参数释义

client_idString必选9OKWbmUrKr应用的key,创建应用时获得

response_typeString必选code授权类型,固定为code,表示授权码模式

redirect_uriString必选应用的授权回调地址redirect_uri指的是应用发起请求时,所传的回调地址参数,在用户授权后页面会跳转至redirect_uri。要求与应用注册时填写的授权回调地址一致或域名一致,并且必须支持https访问。需要进行Url Encode编码

scopeString必选all商户授权的权限范围,固定为all,表示所有权限

stateString必选String开发者自定义的应用状态,可以指定任意值,认证服务器会原样返回这个值,开发者需要确认当前授权的传入值与返回值是一致的,确保不会产生csrf漏洞。

B、引导商户到授权页,商户可以选择点击【同意授权】或者【取消授权】

C、获取授权码

如果商户点击【同意授权】,开放平台认证服务器会回应客户端的授权回调URI(redirection URI)返回以下参数:

参数名 参数类型 是否必选 参数值 参数释义
code String 必选 示例值:SplxlOBeZQQYbYS6WxSbIA 授权认证成功后开放平台颁发的授权码,该码的有效期只有10分钟,只能使用一次,过期或多次使用会被授权服务器拒绝。
state String 必选 应用自定义的值,例如xyz 如果客户端的请求中包含这个参数,认证服务器的回应会原样返回这个参数

 

响应示例如下:

HTTP/1.1 302 Found Location: [redirect_uri]?code=f5d9280fce5cedc761f1f19ef484e7e0&state=xyz

D、如果商户点击【取消授权】, 开放平台认证服务器会回应客户端授权回调URI,并且返回以下参数:

如果商户拒绝授权,则开放平台认证服务器会回应客户端的授权回调URI,并且返回以下参数:

HTTP/1.1 302 Found Location: [redirect_uri]?error=unauthorized_client&error_description=denied

参数说明:

参数名 参数类型 是否必选 参数值 参数释义
error String 必选 示例值:unauthorized_client 授权失败信息
error_description String 必选 示例值:invalid client_id 授权失败的详细原因描述

 

E、使用授权码换取访问令牌,客户端向认证服务器发起访问令牌的请求。

示例及参数说明如下:

HTTP header中需要携带Authorization请求头,Basic值的算法如下(+号表示字符串连接):

base64_encode(key + ":" + secret)

请求示例:

POST /token HTTP/1.1 Host: open-api-sandbox.shop.ele.me Authorization: Basic OU9LV2JtVXJLcjoyZGRiZTc2NTkzOWZhZjI5ZDEwNTU3MDg3MzVjOGViNw== Content-Type: application/x-www-form-urlencoded grant_type=authorization_code&code=f5d9280fce5cedc761f1f19ef484e7e0 &redirect_uri=[redirect_uri]&client_id=9OKWbmUrKr

CURL示例如下:

curl -i -XPOST -H "Content-Type: application/x-www-form-urlencoded" -H "Authorization: Basic OU9LV2JtVXJLcjoyZGRiZTc2NTkzOWZhZjI5ZDEwNTU3MDg3MzVjOGViNw==" -d "grant_type=authorization_code&code=f5d9280fce5cedc761f1f19ef484e7e0&redirect_uri=[redirect_uri]&client_id=9OKWbmUrKr" https://open-api-sandbox.shop.ele.me/token

参数说明:

参数名 参数类型 参数含义 是否必选 参数值
grant_type String 授权模式 必选 授权码模式固定为"authorization_code"
code String 表示上一步获得的授权码 必选 示例值:SplxlOBeZQQYbYS6WxSbIA
redirect_uri String 授权回调的重定向URI 必选 必须与A步骤中的该参数值保持一致
client_id String 应用的key,创建应用时获得 必选 示例值:hvBW15GiSi

 

F、认证成功,认证服务器返回Token

示例如下:

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Cache-Control: no-store Pragma: no-cache { "access_token":"2YotnFZFEjr1zCsicMWpAA", "trace_id": "fe.sopush_service^^5D77063E0EAC493A89780BBC3AEDB332|1703038197150", "token_type":"bear", "expires_in":3600, "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA", "scope":"all" }

参数说明:

字段名 类型 释义
access_token String 访问令牌,API访问时需要的token参数。
trace_id String 用来唯一标记此次调用,排查问题时可提供此信息
token_type String 令牌的类型,固定值,开发者可忽略。
expires_in Number 令牌有效时间,单位秒,在令牌有效期内可以重复使用。有效期限制(access_token:沙箱环境为1天、正式环境为30天,refresh_token:沙箱环境为1天、正式环境为30天)
refresh_token String 更新令牌,用来在令牌即将到期时延续访问令牌的有效期,获取一个新的访问令牌和更新令牌refresh_token。
scope String 表示权限范围,与客户端应用申请的范围一致,默认为"all"。

 

G、刷新Token

令牌即将到期,或者开发者出于安全性考虑想要更换访问令牌,可以使用refresh_token直接换取新的access_token
A示例如下:

POST /token HTTP/1.1 Host: open-api-sandbox.shop.ele.me Authorization: Basic OU9LV2JtVXJLcjoyZGRiZTc2NTkzOWZhZjI5ZDEwNTU3MDg3MzVjOGViNw== Content-Type: application/x-www-form-urlencoded grant_type=refresh_token&refresh_token=tGzv3JOkF0XG5Qx2TlKWIA

CURL示例如下:

curl -i -XPOST -H "Content-Type: application/x-www-form-urlencoded" -H "Authorization: Basic OU9LV2JtVXJLcjoyZGRiZTc2NTkzOWZhZjI5ZDEwNTU3MDg3MzVjOGViNw==" -d "grant_type=refresh_token&refresh_token=21a5b98083e13676c5fc3948df4f0852" https://open-api-sandbox.shop.ele.me/token

参数说明:

参数名 参数类型 参数含义 是否必选 参数值
grant_type String 授权模式 必选 此处的值固定为"refresh_token"
refresh_token String 上一步得到的更新令牌 必选项 示例值:tGzv3JOkF0XG5Qx2TlKWIA
请求成功后,认证服务器的返回值同步骤 F 的返回值。        
/template/Home/AllNew/PC/Static