# island-union-sdk

> Island (小蓝岛) 购物平台联盟聚合 SDK (淘宝联盟、京东联盟、多多进宝、苏宁联盟、唯品会联盟、考拉联盟、有赞联盟)

Latest version **1.1.0** (published 2023-02-16) · MIT license · 0 weekly downloads

> **Deprecated.** This package is deprecated.

## Install

```sh
npm install island-union-sdk
pnpm add island-union-sdk
yarn add island-union-sdk
bun add island-union-sdk
```

## Health

**Score 10/100 (F)** — status: deprecated.

Negative: deprecated.

## Facts

| | |
|---|---|
| Version | 1.1.0 |
| Published | 2023-02-16 |
| First published | 2023-02-05 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 322.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | 开封小蓝岛科技有限公司 |
| Maintainers | blueislandx |
| Keywords | island, union, taobao, taobaoke, alimama, jd, jingdong, pinduoduo, duoduojinbao, suning, vip, vipshop, kaola, youzan |

## Links

- npm: https://www.npmjs.com/package/island-union-sdk
- Repository: https://github.com/Blue-Island-X/Island-Union-SDK
- Homepage: https://github.com/Blue-Island-X/Island-Union-SDK#readme
- Issues: https://github.com/Blue-Island-X/Island-Union-SDK/issues
- npm.io page: https://npm.io/package/island-union-sdk

## Dependencies (4)

- [axios](https://npm.io/package/axios.md) ^1.3.3
- [moment](https://npm.io/package/moment.md) ^2.29.4
- [crypto-js](https://npm.io/package/crypto-js.md) ^4.1.1
- [form-data](https://npm.io/package/form-data.md) ^4.0.0

## Recent versions

- 1.1.0 (latest) — 2023-02-16
- 1.0.7 — 2023-02-14
- 1.0.6 — 2023-02-11
- 1.0.5 — 2023-02-11
- 1.0.4 — 2023-02-10
- 1.0.3 — 2023-02-09
- 1.0.2 — 2023-02-08
- 1.0.1 — 2023-02-05
- 1.0.0 — 2023-02-05

## README

# 小蓝岛联盟聚合 SDK

本 SDK 支持以下购物平台联盟:
- [淘宝联盟](https://aff-open.taobao.com) [HMAC-SHA256]
- [京东联盟](https://union.jd.com)
- [多多进宝](https://jinbao.pinduoduo.com)
- [苏宁联盟](https://sums.suning.com)
- [唯品会联盟](https://union.vip.com) [HMAC-MD5]
- [考拉联盟](https://pub.kaola.com)
- [有赞联盟](https://www.youzan.com/intro/zanke) [N/A]

> P.S: 若没有特别标注, 所有签名算法均使用 [MD5](https://en.wikipedia.org/wiki/MD5) 实现

## 1.如何安装
```
npm i island-union-sdk --save
```

## 2.如何使用
- 1.淘宝联盟 [文档](https://open.taobao.com/api.htm?docId=24518&docType=2)
```TypeScript
import union from 'island-union-sdk';

const client = new union.taobao.Client({
    appKey: '<你的 AppKey>',
    secretKey: '<你的 SecretKey>'
});

const result = await client.execute('<API 方法名称>', { <业务参数> });
```

> P.S: 淘宝联盟接口必须传入字符 id, 数字 id 已经下线无法使用

- 2.京东联盟 [文档](https://union.jd.com/openplatform/api/v2)
```TypeScript
import union from 'island-union-sdk';

const client = new union.jd.Client({
    appKey: '<你的 AppKey>',
    secretKey: '<你的 SecretKey>'
});

const result = await client.execute('<API 方法名称>', { <业务参数> });
```

- 3.多多进宝 [文档](https://open.pinduoduo.com/application/document/api?id=pdd.ddk.goods.pid.generate)

```TypeScript
import union from 'island-union-sdk';

const client = new union.pinduoduo.Client({
    appKey: '<你的 ClientId>',
    secretKey: '<你的 ClientSecret>'
});

const result = await client.execute('<API 方法名称>', { <业务参数> });
```

> P.S: 多多进宝接口必须传入 goods_sign (字符 id), goods_id (数字 id) 已经下线无法使用

- 4.苏宁联盟 [文档](https://open.suning.com/ospos/apipage/toApiMethodDetailMenuNew.do?bustypeId=3)

```TypeScript
import union from 'island-union-sdk';

const client = new union.suning.Client({
    appKey: '<你的 AppKey>',
    secretKey: '<你的 AppSecret>'
});

const result = await client.execute('<API 方法名称>', { <业务参数> });
```

- 5.唯品会联盟 [文档](https://vop.vip.com/home#/api/service/list/2)

```TypeScript
import union from 'island-union-sdk';

const client = new union.vip.Client({
    appKey: '<你的 AppKey>',
    secretKey: '<你的 AppSecret>'
});

const result = await client.execute('<API 服务名称>', '<API 服务版本>', '<API 方法名称>', { <业务参数> });
```

- 6.考拉联盟 [文档](https://kaola-haitao.oss.kaolacdn.com/a5b08dbc-e7ae-4464-9d5d-e55cdc78f121.docx?spm=a2v0d.b9947081.0.0.12fc2fbc2WT1tV&file=a5b08dbc-e7ae-4464-9d5d-e55cdc78f121.docx)
```TypeScript
import union from 'island-union-sdk';

const client = new union.kaola.Client({
    secretKey: '<你的 AppSecret>',
    unionId: '<你的赚客 Id>'
});

const result = await client.execute('<API 接口名称>', { <业务参数> });
```

- 7.有赞联盟 [文档](https://doc.youzanyun.com/list/API/1303) [指南](https://shimo.im/docs/tTwjdRYDcHvDdvQ9/read)
```TypeScript
import union from 'island-union-sdk';

const client = new union.youzan.Client({
    appKey: '<你的 AppKey>',
    secretKey: '<你的 AppSecret>',
    unionId: '<你的有赞客 Id>'
});

const result = await client.execute('<API 接口名称>', '<API 接口版本>', { <业务参数> });
```

## 3.注意事项

如果 SDK 请求错误会返回如下格式:
```JSON
{
    "code": <错误代码>,
    "message": "<错误信息>",
    "error": true
}
```

> P.S: 判断一个请求是否失败, 请使用 ``error`` 字段而不是使用 ``code`` 字段

> P.S: 错误代码 **不一定** 是整数类型, 请不要 ``parseInt``, SDK 内部已经对字符串的数字进行了处理

## 4.重大改变

自 ``1.1.0`` 起, 导入名称由 ``island`` 改为 ``union``

> P.S: 该改动是由于公司内部业务模块化, 全部使用 ``island`` 会导致混乱

---
_Source: https://npm.io/package/island-union-sdk · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
