定制 youzanyun/open-sdk 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

youzanyun/open-sdk

Composer 安装命令:

composer require youzanyun/open-sdk

包简介

有赞云服务端SDK

README 文档

README

Latest Version on Packagist Software License Total Downloads Build Status

YouzanYun SDK

安装

  1. 使用 composer

推荐使用该方式安装, 更优雅

$ composer require youzanyun/open-sdk
  1. 不使用 composer 管理

如果你的项目不使用composer管理, 可以直接下载 Release包 并解压, 然后在项目中添加如下代码:

require_once '/YOUR_SDK_PATH/youzanyun-open-sdk/open-sdk/vendor/autoload.php';

请注意, 需要下载的是最新的 youzanyun-open-sdk.zip 压缩包, 而不是 Source code 压缩包, YOUR_SDK_PATH 需更改为项目实际路径.

使用

详情参考 examples

1. 获取及刷新access_token

工具型应用 获取access_token

require_once './vendor/autoload.php';

$clientId = "YOUR_CLIENT_ID";
$clientSecret = "YOUR_CLIENT_SECRET";
$resp = (new \Youzan\Open\Token($clientId, $clientSecret))->getToolAppToken('YOUR_CODE');
var_dump($resp);

自用型应用 获取access_token

require_once './vendor/autoload.php';

$clientId = "YOUR_CLIENT_ID";
$clientSecret = "YOUR_CLIENT_SECRET";

// 1. 不获取refresh_token
$resp = (new \Youzan\Open\Token($clientId, $clientSecret))->getSelfAppToken('YOUR_KDT_ID');
var_dump($resp);

// 2. 获取refresh_token
$config['refresh'] = true;  //是否获取refresh_token(可通过refresh_token刷新token)
$resp = (new \Youzan\Open\Token($clientId, $clientSecret))->getSelfAppToken('YOUR_KDT_ID', $config);
var_dump($resp);

工具型应用及自用型应用 刷新access_token

require_once './vendor/autoload.php';

$clientId = "YOUR_CLIENT_ID";
$clientSecret = "YOUR_CLIENT_SECRET";
$resp = (new \Youzan\Open\Token($clientId, $clientSecret))->refreshToken('YOUR_REFRESH_TOKEN');
var_dump($resp);

2. 接口调用

Token方式

require_once './vendor/autoload.php';

$accessToken = 'YOUR_TOKEN';
$client = new \Youzan\Open\Client($accessToken);

$method = 'youzan.item.get';
$apiVersion = '3.0.0';

$params = [
    'alias' => 'fa8989ad342k',
];

$response = $client->post($method, $apiVersion, $params);
var_dump($response);

免鉴权方式 (仅支持免鉴权接口)

require_once './vendor/autoload.php';

$client = new \Youzan\Open\Client();

$method = 'youzan.item.get';
$apiVersion = '3.0.0';

$params = [
    'alias' => 'fa8989ad342k',
];

$response = $client->post($method, $apiVersion, $params);
var_dump($response);

3. 加密消息解密

参考 examples/crypto/decrypt.php

4. 加解密调用

require_once './vendor/autoload.php';
$secretClient = SecretClient::getInstance("clientId","clientSecret");

$kdtId = xxxx;
// 单项加密
$encryptRel = $secretClient->singleEncrypt($kdtId, "加密内容");
// 单项解密
$decryptRel = $secretClient->singleDecrypt($kdtId,"解密内容");
// 批量加密
$batchEncryptArray = array("xxx1","xxx2","xxx3");
$batchEncryptArrayRel = $secretClient->batchEncrypt($kdtId,$batchEncryptArray);
// 批量解密
$batchDecryptArrayRel = $secretClient->batchDecrypt($kdtId,array_values($batchEncryptArrayRel));
// 单项密文判断
$encryptIsEncrypt = $secretClient->singleIsEncrypt($encryptRel);
// 批量密文判断
$batchEncryptIsEncrypt = $secretClient->batchIsEncrypt($batchEncryptArray);
// 单项解密并脱敏 如果是密文则解密脱敏,明文直接脱敏
// 脱敏类型: MaskHandler::$const_address 地址,MaskHandler::$const_bank_card 银行卡,MaskHandler::$const_name 中文名,MaskHandler::$const_email 邮箱,MaskHandler::$const_company_name 企业名称,MaskHandler::$const_id_card 身份证,MaskHandler::$const_mobile 手机号
$markAddress = $secretClient->singleDecryptMask($kdtId,"华泰创业园5号楼2楼217室",MaskHandler::$const_address);
// 批量解密并脱敏 如果是密文则解密脱敏,明文直接脱敏
// 脱敏类型: MaskHandler::$const_address 地址,MaskHandler::$const_bank_card 银行卡,MaskHandler::$const_name 中文名,MaskHandler::$const_email 邮箱,MaskHandler::$const_company_name 企业名称,MaskHandler::$const_id_card 身份证,MaskHandler::$const_mobile 手机号
$batchDncryptMarkArray = array("18736955554","18736955555","18736955556");
$batchMarkMobileRel = $secretClient->batchDecryptMask($kdtId,$batchDncryptMarkArray,MaskHandler::$const_mobile);
// 密文检索摘要生成
$addressDigest = $secretClient->generateEncryptSearchDigest($kdtId,"华泰创业园5号楼2楼217室");

4.1 脱敏规则:

规则名称 脱敏规则 示例示例
地址脱敏 实现地址的信息脱敏:地址中数字使用*代替 杭州市西湖区蒋村街道**号*座*楼*室
银行卡脱敏 银行卡号的信息脱敏:前2,后4展示,其他使用*代替 19******2135
名字脱敏 中文名称的信息脱敏:展示第一个字,其他使用*代替 张*
邮箱脱敏 邮箱地址的信息脱敏:展示前2位,和邮箱后缀 zy******@163.com
企业名称脱敏 企业名称的信息脱敏:展示前4个汉字,后2个汉字,中间固定4个* 杭州有赞****公司
身份证脱敏 身份证号信息脱敏:展示前2位,后4位 13******0630
手机脱敏 手机号的信息脱敏:展示前3,后4,其他使用*代替 135****3263

脱敏类型: MaskHandler::$const_address 地址,MaskHandler::$const_bank_card 银行卡,MaskHandler::$const_name 中文名,MaskHandler::$const_email 邮箱,MaskHandler::$const_company_name 企业名称,MaskHandler::$const_id_card 身份证,MaskHandler::$const_mobile 手机号

4.2 密文检索:

密文摘要的长度是原明文的6倍左右,开发者需要合理评估数据库字段长度,避免字段超长

开发者需要新增数据库字段存储密文摘要,在模糊查询是调用密文摘要接口生成查询信息对应密文摘要并去数据库中模糊查询;例如需要对数据库中mobile字段的密文进行检索,则需要新增mobile_encrypt_digest字段(数据库字段名自定义,此处仅举例),在手机号落库时调用密文检索摘要方法生成手机号(e.g. 18736956666)对应的密文检索摘要M1并落库到mobile_encrypt_digest中,模糊查询时调用密文检索摘要方法生成查询信息(e.g. 187)的密文检索摘要M2,并调用模糊查询sql进行模糊查询(e.g. selet * from mobile_info where mobile_encrypt_digest like '%M2%')

License

The MIT License. Please see License File for more information.

youzanyun/open-sdk 适用场景与选型建议

youzanyun/open-sdk 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 144.33k 次下载、GitHub Stars 达 55, 最近一次更新时间为 2019 年 03 月 29 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「youzan」 「open-sdk」 「youzanyun」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 youzanyun/open-sdk 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 youzanyun/open-sdk 我们能提供哪些服务?
定制开发 / 二次开发

基于 youzanyun/open-sdk 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 144.33k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 56
  • 点击次数: 12
  • 依赖项目数: 5
  • 推荐数: 0

GitHub 信息

  • Stars: 55
  • Watchers: 6
  • Forks: 13
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-03-29