ThinkPHP5.1对接京东官方SDK,解密订单敏感信息

上周,公司有将京东POP店库存和订单对接到公司ERP的需求。京东最近搞了个云鼎,看介绍是非常的最高最强赛高,于是买云服务器,买RDS,一顿操作猛如虎。

直接使用官方SDK,很快就可以调通库存和订单API接口的功能。但是订单的收件人姓名,手机,详细地址等信息是加密的。

这个解密操作官方的说明文档完全就没讲怎么集成SDK。只能自己摸索了,SDK包依赖的日志模块Monolog和JsonMapper需要自己下载。

(PS:可能可以用composer.json直接composer update更精确的引用,但是SDK包使用的lotus框架,根本没听过,我没办法单独 运行起来,汗)

解密功能在独立应用里,是跑在鼎内云服务器的,一开始用的TP3.2,

连续加班一个星期,调试SDK包源码,引依赖文件,各种人不寐,人憔悴,什么反射try catch,我都耍的有模有样,各种依赖关系实在没法搞。

所以我改用TP5.1,

1、下载PSR3: https://github.com/php-fig/log    log-master.zip解压后只要Psr文件夹

2、下载monolog: https://github.com/Seldaek/monolog  解压后只需要monolog-master\src\下的Monolog文件夹

3、JsonMapper下载链接https://github.com/cweiske/jsonmapper

据说1和2要搭配使用,具体解释看这篇博客,感谢博主https://blog.csdn.net/edu_enth/article/details/53115095

(源码不动,应该只是外围的类库的依赖问题。这里就体现了composer这个工具的大用处了,优雅的搬砖还得靠它。)

终于周末有了成果,可是有时能解密,有时会报错。还是很蛋疼啊,这算个什么事。

一个晚上,我突然来了点灵感。

官方下载的PHP版的SDK目录如下



打开入口文件,注释很清晰

有几点需要说下

1缓存目录,自己自定义的目录一定要给写入权限


缓存目录


2关键是这一句,这里定义了自动加载的路径,就是说这个目录中的类可以被框架自动加载到,不会出现找不到类的问题,也不用一直require了。自动加载类据说是比较新的PHP框架的标配。

从$lotus->init初始化框架这里进去可以看到如下图所示,

这里只有jd文件夹的自动加载,并无security,看来,security并不依赖于这个lotus框架。

既然Lotus框架的自动加载autoloader那么不给力(也许是我不会改),我试过在lotus框架的自动加载类路径数组里把security加进去,并卵,干脆就用TP5.1的吧。

于是我把security文件夹移出来了,和SDK包平级。lotus这个文件夹名字你可以随便取,只要引入的时候对应就可以。原security文件夹我之所以改名ACES是因为这个是TDEClient类的命名空间,必须叫这个名,不然在控制器里无法引用。


这样之后,终于可以顺利解锁了。从这个事之后,我决定好好啃一下TP5.1和6的源代码。

容我装个逼说一句

成功很多时候真的是无心插柳。跳出系统,才能测量系统。

下面是我的SDK入口文件,改了个缓存路径,去掉了后面的示例代码。


控制器代码

关键是正确引入SDK入口文件

$extend = Env::get('root_path') . 'extend';

require_once($extend.DIRECTORY_SEPARATOR.'lotus'.DIRECTORY_SEPARATOR.'JdSdk.php');


namespace app\index\controller;

use think\Request;

use think\Facade\Env;

use ACES;

class Jingdong{

    /**

    * @var \think\Request Request实例

    */

    protected $request;

    public $c;

    public function __construct(Request $request) {

        $this->app_key = " ";            // 京东app_key

        $this->app_secret = " ";        // 京东app_secret

        $this->app_url = "https://api.jd.com/routerjson";    // 基础地址

        $this->redirect_url = '';  // 应用回调地址

        $this->access_token= '';

        $this->request = $request;

        $extend = Env::get('root_path') . 'extend';

        require_once($extend.DIRECTORY_SEPARATOR.'lotus'.DIRECTORY_SEPARATOR.'JdSdk.php');

        $this->c = $this->initJdClient();

}

    public function index() {

        return "静水流深,不动如山";

}

    // 初始化JdClient类

    private function initJdClient() {

        $adc = new \JdClient();

        $adc->appKey = $this->app_key;

        $adc->appSecret = $this->app_secret;

        $adc->accessToken = $this->access_token;

        $adc->serverUrl = $this->app_url;

        return $adc;

}

// 解密方法

public function myDecrypt() {

    $pt = "AAT5U8PDOI0CURMWbSo35WHoAhD9zEQiElixYRYbofkRAADK3DFayiQ/g0Nd0DpbGeY="

    $tde = ACES\TDEClient::getInstance($this->access_token, $this->app_key, $this->app_secret);

    $decrypted = $tde->decrypt($pt);

    return $decrypted;

}

// 加密方法

public function myEncrypt() {

    $pt = fz0317;

    $tde = ACES\TDEClient::getInstance($this->access_token, $this->app_key, $this->app_secret);

    $encrypted = $tde->encrypt($pt);

    return $encrypted;

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352

推荐阅读更多精彩内容