sabao/eleme-openapi-sdk

饿了么开放平台 PHP SDK(基于官方 SDK 优化维护:PHP 8.2+、完整类型注释、CS-Fixer / PHPStan 检查)

Maintainers

Package info

github.com/Ulyssesyi/eleme-openapi-sdk

pkg:composer/sabao/eleme-openapi-sdk

Transparency log

Statistics

Installs: 40

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.2 2026-08-11 10:07 UTC

This package is auto-updated.

Last update: 2026-08-12 01:15:22 UTC


README

饿了么开放平台 PHP SDK(基于官方 eleme-openapi/eleme-openapi-sdk 优化维护)。

注意:本项目命名空间与官方包不同,两者不能混用。

特性

  • 要求 PHP >= 8.2(适配 PHP 8.2,修复动态属性等兼容问题)
  • 统一命名空间 Sabao\Eleme\,PSR-4 自动加载
  • 全量补齐/修正方法参数与返回值类型注释(@param / @return
  • 内置 PHP-CS-FixerPHPStan(level 6)配置,开箱即用
  • 修复官方 SDK 中 AdService / CrmService 重名方法导致类无法加载的问题(重名方法按业务段重命名)
  • 移除基于 eval 的 JSON 解码,改用 json_decode + JSON_BIGINT_AS_STRING,避免大整数精度丢失
  • 方法名、参数名与官方接口 action 保持一致,接口能力同步至官方 1.92.0

环境要求

  • PHP >= 8.2
  • ext-curl、ext-json、ext-mbstring

安装

composer require sabao/eleme-openapi-sdk

基本用法

<?php

use Sabao\Eleme\Api\ShopService;
use Sabao\Eleme\Config\Config;

// 实例化一个配置类
$config = new Config($app_key, $app_secret, false);

// 使用 config 和 token 对象,实例化一个服务对象
// $token 为授权接口返回的对象,包含 access_token 属性
$shop_service = new ShopService($token, $config);

// 调用服务方法,获取资源
$shop = $shop_service->get_shop('12345');

Token 获取

企业应用与个人应用的 token 获取方法略有不同。token 获取成功后可以缓存较长时间使用,请勿每次请求都重新获取。

企业应用

<?php

use Sabao\Eleme\Config\Config;
use Sabao\Eleme\OAuth\OAuthClient;

$config = new Config($app_key, $app_secret, false);
$client = new OAuthClient($config);

// 根据 OAuth2.0 中的 state、scope 和 callback_url,获取授权 URL
$auth_url = $client->get_auth_url($state, $scope, $callback_url);

商家打开授权 URL,同意授权后跳转到回调页面并返回 code

// 通过授权得到的 code,以及正确的 callback_url,获取 token
$token = $client->get_token_by_code($code, $callback_url);

个人应用

<?php

use Sabao\Eleme\Config\Config;
use Sabao\Eleme\OAuth\OAuthClient;

$config = new Config($app_key, $app_secret, false);
$client = new OAuthClient($config);

// 使用授权类获取 token
$token = $client->get_token_in_client_credentials();

开发与质量检查

# 代码风格修复
composer cs-fix

# 代码风格检查(不修改文件)
composer cs-check

# PHPStan 静态分析(level 6)
composer analyse

与官方 SDK 的差异

命名空间

版本 命名空间
官方 SDK ElemeOpenApi\...
本包 Sabao\Eleme\...

破坏性变更

  • 最低 PHP 版本提升至 8.2
  • Config 构造函数参数增加原生类型声明(string $app_keystring $app_secretbool $sandboxbool $coupon
  • AdService 中与连锁/资金计划相关的重名方法已重命名(如 find_dou_jin_chain_cpc_solutionstable_conversion_chain_find_solution),CrmService 第二个 query() 更名为 page_query()
  • 移除了 RpcClient::optimize_json_decode()(内部 eval 实现),响应解析改为 json_decode(..., JSON_BIGINT_AS_STRING)

CHANGELOG

[2.0.0]

  • 包名调整为 sabao/eleme-openapi-sdk,命名空间调整为 Sabao\Eleme\
  • 要求 PHP >= 8.2,修复 PHP 8.2 兼容问题(动态属性、eval JSON 解码等)
  • 全量补齐并修正方法类型注释
  • 新增 PHP-CS-Fixer 与 PHPStan 配置
  • 修复 AdService / CrmService 重名方法导致的类加载失败

[1.92.0](上游基线)

同步官方 SDK 1.92.0 的全部接口。

License

本项目基于 MIT License 发布,版权归原作者所有。