PHP 饿了么授权

PHP 饿了么授权

饿了么商家开放平台:https://open.shop.ele.me/openapi/account

文档中心:https://open.shop.ele.me/openapi/documents/joinup

授权文档:https://open.shop.ele.me/openapi/documents/isvoauth

第一步:
在这里插入图片描述
拼接链接

	$app_key = ""; // 
	$app_secret = ""; //

    $state="1";
    $scope = "all";
    $callback_url = ""; //应用的授权回调地址 
    
	$url = "https://open-api.shop.ele.me/authorize?response_type=code&client_id=$app_key&state=$state&redirect_uri=$callback_url&scope=$scope";

通过地址访问 进行授权
在这里插入图片描述
输入账号密码去获取 code
在这里插入图片描述
获取到 code
在这里插入图片描述

获取code 并进行获取 access_token

返回的参数 都保存到数据库
在这里插入图片描述

//SDk 文件引入 
include 'ElemeOpenApi\Config\Config.php';
include 'ElemeOpenApi\OAuth\OAuthClient.php';

$code = $_GET["code"];

$state="1";
$scope = "all";
$callback_url = ""; //回调地址

//实例化一个配置类
$config = new \ElemeOpenApi\Config\Config($app_key, $app_secret, false);
//使用config对象,实例化一个授权类
$client = new \ElemeOpenApi\OAuth\OAuthClient($config);

$token = $client->get_token_by_code($code, $callback_url);

//取值
$access_token = $token->access_token;
$token_type = $token->token_type;
$expires_in = $token->expires_in;
$refresh_token = $token->refresh_token;

SDK 下载:https://open.shop.ele.me/openapi/documents/sdk 下载PHP

token 失效
在这里插入图片描述

刷新 token 需要用到 刚刚上一步授权 返回的 refresh_token

$app_key = ""; // 
$app_secret = ""; // 

//数据库里面查询的 
$refresh_token = $_POST["refresh_token"];
$scope = $_POST["scope"];



//实例化一个配置类
$config = new \ElemeOpenApi\Config\Config($app_key, $app_secret, false);
//使用config对象,实例化一个授权类
$client = new \ElemeOpenApi\OAuth\OAuthClient($config);

//根据OAuth2.0中的对应state,scope和callback_url,获取授权URL
$token = $client->get_token_by_refresh_token($refresh_token,$scope);


$access_token = $token->access_token;
$token_type = $token->token_type;
$expires_in = $token->expires_in;
$refresh_tokens = $token->refresh_token;

更新数据库 保存下来 
### 饿了么与飞猪 CPS 合作的技术实现 #### 数据交互方式 饿了么和飞猪的合作基于 CPS(Cost Per Sale)模式,其核心在于通过 API 接口完成订单生成、价格校验以及支付验证等功能。具体来说,飞猪接口开发遵循以下标准[^1]: - **HTTP 协议**:所有接口均采用 HTTP POST 方法进行调用。 - **Content-Type**:请求头中的 `content-type` 设置为 `"text/plain"`。 - **字符编码**:统一使用 UTF-8 编码。 #### 数据加密机制 为了保障数据安全,在涉及敏感信息传递时(如生单、支付校验),需对传输的数据进行加密处理。加密流程如下: - 使用 AES 对称加密算法,加密模式设定为 `AES/CBC/PKCS5Padding`。 - 初始化向量(IV)设置为长度为 16 的空字节数组。 - 密钥长度应满足 128 位要求,测试阶段可使用固定密钥(例如 `1234567890123456`)。生产环境中使用的密钥则由双方协商决定。 - 加密后的数据还需经过 BASE64 转码以便于网络传输。 #### PHP 实现示例 以下是基于 PHP 的一个简单实现案例,用于演示如何获取访问令牌并发起请求至目标服务端[^2]: ```php <?php $eleme = new ElemeSDK(); if (isset($eleme->accessTokenData['access_token'])) { $accessToken = $eleme->accessTokenData['access_token']; } function sendRequest($url, $data) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Content-Type: text/plain', 'Authorization: Bearer ' . $GLOBALS['accessToken'] ]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); return $response; } ?> ``` 此脚本展示了如何利用 `$accessToken` 来构建带授权信息的 HTTP 请求,并将 JSON 格式的主体内容发送到指定 URL 地址上。 #### 商品展示图片支持 在外卖类应用中,商品详情页通常会附带一张主图链接作为视觉辅助材料之一。这类资源可以通过特定字段名来定义存储位置及其访问路径[^3]: ```json { "pic_url": "http://b2dfdc47e670.66bbn.com/uploads/20210323/e005daa2c1e0f444fdaa3e81ab542e76.png" } ``` 上述 JSON 片段即表示了一张可供下载查看的商品宣传画地址。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值