PHPackages                             ihipop/taobao-top - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. ihipop/taobao-top

AbandonedArchivedLibrary[API Development](/categories/api)

ihipop/taobao-top
=================

淘宝开放平台 SDK for php7+, Taobao top SDK for PHP7,协程兼容

v0.1.0(7y ago)208154LGPL-3.0+PHPPHP &gt;=7.1.0

Since Apr 23Pushed 6y ago2 watchersCompare

[ Source](https://github.com/ihipop/taobao-top)[ Packagist](https://packagist.org/packages/ihipop/taobao-top)[ Docs](https://github.com/ihipop/taobao-top)[ RSS](/packages/ihipop-taobao-top/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (5)Versions (6)Used By (0)

淘宝开放平台（TOP） SDK for PHP7
========================

[](#淘宝开放平台top-sdk-for-php7)

淘宝开放平台 = Taobao Open Platform = T.O.P = TOP

状态：`Stable`

当前的 `v1.x` 版本经过生产检验，稳定可用。

因本人工作变动，后续继续从事TOP开发的可能性不大，和项目相关的问题可继续提BUG，我有相关印象的话会凭经验继续修。新Feature由于我无法测试，由于TOP本身的封闭性，不保证后续一定能迅速支持

官方SDK存在的问题
==========

[](#官方sdk存在的问题)

- 没有 `namespace` 到处乱 `include`
- 代码脏乱 没有规范，存在大量PHP4时代的遗留代码
- `Request` 类全部复制粘贴，乃不知有继承？
- 加密解密类库依赖php7.1+已经Deprecated的`Mcrypt`模块，PHP7.1+基不能正常使用
- 在执行同步逻辑的模型内通过HTTP接口上传大量统计数据

计划实现的功能（Feature）
================

[](#计划实现的功能feature)

- 完全的 `namespace`实现 + `PSR4` Autoloader
- 重构设计的 `Request` 类
- 重构过的 `TopClient`
- `TopClient` 配合重构过的 `Request` 类支持自动解密加密字段
- HTTP客户端可使用任何兼容`PSR7`的客户端实现 如： [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) [swlib/saber](https://github.com/swlib/saber)
- CACHE客户端可使用任何兼容`PSR16`的客户端实现 如：[symfony/cache](https://github.com/symfony/cache)
- 移除`Mcrypt`依赖 ,改用`openssl`实现
- 接口名称[自动映射](#%E9%BB%98%E8%AE%A4%E5%91%BD%E5%90%8D%E8%A7%84%E5%88%99)
- 官方SDK `Request` 的转换工具 ，转换官方 `SDK` 到重构过的 `Request` 类
- 移除加密解密模块`SecurityClient`以及`TopClient`内遗留的无用方法和PHP4遗留 (10%)

空闲时候可能会做的功能
===========

[](#空闲时候可能会做的功能)

- 在提供异步情景模型的情况下恢复官方SDK的统计功能，并设置可选开关

安装
==

[](#安装)

你可能需要执行`一次`如下的composer设置才能正常安装开发版

```
composer config prefer-stable true
composer config minimum-stability dev
composer config prefer-dist true
```

安装

```
composer require 'ihipop/taobao-top:~1.0.0'
```

快速开始
====

[](#快速开始)

初始化 TOP 客户端
-----------

[](#初始化-top-客户端)

```
$application = new \ihipop\TaobaoTop\Application([
    'topClient' => [
        'apiKey'          => '1234567',
        'apiSecret'       => 'qwerty.',
        'secureRandomNum' => 'qawsed', // `如果你应用开启了加密 就设置这个 否则请设置为null`
        'autoDecrypt'     => true, // `同上 如果你应用开启了加密 需要自动解密 就打开这个 否则请关闭,设置为false`
    ],
    'providers' => [
        'http' => \ihipop\TaobaoTop\providers\GuzzleHttpClientServiceProvider::class,
    ],
]);
$topClient   = $application->topClient;
```

初始化请求类
------

[](#初始化请求类)

以获取订单为例

```
$request = new \ihipop\TaobaoTop\requests\taobao\GetTradesSold();
$request->setFields([
    'post_fee',
    'receiver_name',
    'receiver_state',
    'receiver_address',
    'receiver_zip',
    'receiver_mobile',
    'receiver_phone',
    'consign_time',
    'received_payment',
    'receiver_country',
    'receiver_town',
    'tid',
    'num',
    'status',
    'title',
    'type',
    'price',//其他字段略
])->setType([
    'guarantee_trade',
    'auto_delivery',
    'ec',
    'cod',
    'step',
    'tmall_i18n',
    'nopaid',
])->setUseHasNext('true')->setPageSize(20);
$request->setStartCreated(date('Y-m-d H:i:s', time() - 5 * 60))->setEndCreated(date('Y-m-d H:i:s'));
```

发送请求
----

[](#发送请求)

```
$response = $topClient->execute($request, $accessToken)
```

Swoole 协程使用注意事项
===============

[](#swoole-协程使用注意事项)

TODO

更多实例
====

[](#更多实例)

请查看examples

自动解密
----

[](#自动解密)

`GetTradesSold` 类已经封装自动解密方法 ，所以上面的Request类出来就是明文字段 ,如果你的TOP应用不支持加密 请关闭加密

下面对自动解密的配置做出摘要说明

```
public $encryptedFields = [
        'trades.trade' => [
            '@' => [//订单1
                'receiver_name'                => 'name',
                'buyer_nick'                   => 'nick',
                'receiver_mobile'              => 'mobile',
                'receiver_phone'               => 'phone',
                'service_orders.service_order' => [
                    '@' => [//服务订单1
                        'buyer_nick' => 'nick',
                    ],
                ],
            ],
        ],
    ];
```

`@`表示这是一组同样结构的数组

所以 上面的配置表示: 对响应内容内的 `$response['trades']['trade']` 这个数组的 `receiver_name` **等** 字段做解密， 其中`receiver_name`的加密类型是`name`。其他加密类型自己看淘宝文档。

RAW Request
-----------

[](#raw-request)

如果你应用没开启加密或者请求不涉及加密解密，而且我的预先写的类没覆盖到的，那么你可以使用`RAW Request`简化请求撰写，但是同样的，自动参数联想和自动完成不可用，数组转逗号分割的参数 也不可以用。

例如，请求 `alibaba.orp.recommend` 接口

```
$request = new \ihipop\TaobaoTop\requests\RawTopRequest('alibaba.orp.recommend')
```

撰写自己的`$request`
---------------

[](#撰写自己的request)

### 默认命名规则

[](#默认命名规则)

默认的，只要按照约定撰写类名称，会自动映射成接口名称，比如：

接口名称： *taobao*.`trades`.`sold`.**get**

最后一个动词（本例是**get**）提前，放到 *taobao* 的namespace下,中间部分改成大驼峰

也就是 \\ihipop\\TaobaoTop\\requests\\*taobao*\\**Get**`TradesSold`

本例中，*taobao* 换成 *alibaba* 同理，比如 *alibaba*.`orp`.**recommend** ，按照规则应该写成

\\ihipop\\TaobaoTop\\requests\\*alibaba*\\**Recommend**`Orp`

### 任性的写名称

[](#任性的写名称)

你可以任性的写起名，只要在类里面设置好 `$apiName` 属性，则请求的时候优先读取这个名称

### 别忘记自动解密配置

[](#别忘记自动解密配置)

见 [自动解密](#%E8%87%AA%E5%8A%A8%E8%A7%A3%E5%AF%86)

私有托管
====

[](#私有托管)

假设你托管的私有仓库url是 `https://example.com/composer/taobao-top.git`

```
composer config repositories.taobao-top vcs https://example.com/composer/taobao-top.git
```

其他照旧

###  Health Score

29

—

LowBetter than 57% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity24

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 98.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~25 days

Total

4

Last Release

2548d ago

Major Versions

v0.1.0 → v1.0.0-alpha.72019-05-16

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/423077?v=4)[ihipop](/maintainers/ihipop)[@ihipop](https://github.com/ihipop)

---

Top Contributors

[![ihipop](https://avatars.githubusercontent.com/u/423077?v=4)](https://github.com/ihipop "ihipop (111 commits)")[![Remember2015](https://avatars.githubusercontent.com/u/575884?v=4)](https://github.com/Remember2015 "Remember2015 (2 commits)")

---

Tags

apisdktoptaobao

### Embed Badge

![Health badge](/badges/ihipop-taobao-top/health.svg)

```
[![Health](https://phpackages.com/badges/ihipop-taobao-top/health.svg)](https://phpackages.com/packages/ihipop-taobao-top)
```

###  Alternatives

[algolia/algoliasearch-client-php

API powering the features of Algolia.

69735.1M148](/packages/algolia-algoliasearch-client-php)[shopware/platform

The Shopware e-commerce core

3.4k1.5M3](/packages/shopware-platform)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

751284.3k37](/packages/civicrm-civicrm-core)[theodo-group/llphant

LLPhant is a library to help you build Generative AI applications.

1.7k371.6k6](/packages/theodo-group-llphant)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.4M534](/packages/shopware-core)[webit/w-firma-api

wFirma.pl API

1821.5k](/packages/webit-w-firma-api)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
