ThinkPHP5.1對(duì)接京東官方SDK,解密訂單敏感信息

上周脊奋,公司有將京東POP店庫(kù)存和訂單對(duì)接到公司ERP的需求蘸鲸。京東最近搞了個(gè)云鼎艾岂,看介紹是非常的最高最強(qiáng)賽高,于是買云服務(wù)器枢赔,買RDS,一頓操作猛如虎拥知。

直接使用官方SDK踏拜,很快就可以調(diào)通庫(kù)存和訂單API接口的功能。但是訂單的收件人姓名低剔,手機(jī)速梗,詳細(xì)地址等信息是加密的肮塞。

這個(gè)解密操作官方的說明文檔完全就沒講怎么集成SDK。只能自己摸索了姻锁,SDK包依賴的日志模塊Monolog和JsonMapper需要自己下載枕赵。

(PS:可能可以用composer.json直接composer update更精確的引用,但是SDK包使用的lotus框架位隶,根本沒聽過拷窜,我沒辦法單獨(dú) 運(yùn)行起來,汗)

解密功能在獨(dú)立應(yīng)用里涧黄,是跑在鼎內(nèi)云服務(wù)器的篮昧,一開始用的TP3.2,

連續(xù)加班一個(gè)星期笋妥,調(diào)試SDK包源碼懊昨,引依賴文件,各種人不寐春宣,人憔悴酵颁,什么反射try catch,我都耍的有模有樣信认,各種依賴關(guān)系實(shí)在沒法搞材义。

所以我改用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

據(jù)說1和2要搭配使用潦蝇,具體解釋看這篇博客款熬,感謝博主https://blog.csdn.net/edu_enth/article/details/53115095

(源碼不動(dòng),應(yīng)該只是外圍的類庫(kù)的依賴問題攘乒。這里就體現(xiàn)了composer這個(gè)工具的大用處了贤牛,優(yōu)雅的搬磚還得靠它。)

終于周末有了成果则酝,可是有時(shí)能解密殉簸,有時(shí)會(huì)報(bào)錯(cuò)。還是很蛋疼啊沽讹,這算個(gè)什么事般卑。

一個(gè)晚上,我突然來了點(diǎn)靈感爽雄。

官方下載的PHP版的SDK目錄如下



打開入口文件蝠检,注釋很清晰

有幾點(diǎn)需要說下

1緩存目錄,自己自定義的目錄一定要給寫入權(quán)限


緩存目錄


2關(guān)鍵是這一句挚瘟,這里定義了自動(dòng)加載的路徑叹谁,就是說這個(gè)目錄中的類可以被框架自動(dòng)加載到饲梭,不會(huì)出現(xiàn)找不到類的問題,也不用一直require了焰檩。自動(dòng)加載類據(jù)說是比較新的PHP框架的標(biāo)配憔涉。

從$lotus->init初始化框架這里進(jìn)去可以看到如下圖所示,

這里只有jd文件夾的自動(dòng)加載锅尘,并無security监氢,看來,security并不依賴于這個(gè)lotus框架藤违。

既然Lotus框架的自動(dòng)加載autoloader那么不給力(也許是我不會(huì)改)浪腐,我試過在lotus框架的自動(dòng)加載類路徑數(shù)組里把security加進(jìn)去,并卵顿乒,干脆就用TP5.1的吧议街。

于是我把security文件夾移出來了,和SDK包平級(jí)璧榄。lotus這個(gè)文件夾名字你可以隨便取特漩,只要引入的時(shí)候?qū)?yīng)就可以。原security文件夾我之所以改名ACES是因?yàn)檫@個(gè)是TDEClient類的命名空間骨杂,必須叫這個(gè)名涂身,不然在控制器里無法引用。


這樣之后搓蚪,終于可以順利解鎖了蛤售。從這個(gè)事之后,我決定好好啃一下TP5.1和6的源代碼妒潭。

容我裝個(gè)逼說一句

成功很多時(shí)候真的是無心插柳悴能。跳出系統(tǒng),才能測(cè)量系統(tǒng)雳灾。

下面是我的SDK入口文件漠酿,改了個(gè)緩存路徑,去掉了后面的示例代碼谎亩。


控制器代碼

關(guān)鍵是正確引入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實(shí)例

? ? */

? ? 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";? ? // 基礎(chǔ)地址

? ? ? ? $this->redirect_url = '';? // 應(yīng)用回調(diào)地址

? ? ? ? $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 "靜水流深炒嘲,不動(dòng)如山";

}

? ? // 初始化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;

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市匈庭,隨后出現(xiàn)的幾起案子夫凸,更是在濱河造成了極大的恐慌,老刑警劉巖嚎花,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寸痢,死亡現(xiàn)場(chǎng)離奇詭異呀洲,居然都是意外死亡紊选,警方通過查閱死者的電腦和手機(jī)啼止,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來兵罢,“玉大人献烦,你說我怎么就攤上這事÷舸剩” “怎么了巩那?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)此蜈。 經(jīng)常有香客問我即横,道長(zhǎng),這世上最難降的妖魔是什么裆赵? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任东囚,我火速辦了婚禮,結(jié)果婚禮上战授,老公的妹妹穿的比我還像新娘页藻。我一直安慰自己,他們只是感情好植兰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布份帐。 她就那樣靜靜地躺著,像睡著了一般楣导。 火紅的嫁衣襯著肌膚如雪废境。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天爷辙,我揣著相機(jī)與錄音彬坏,去河邊找鬼。 笑死膝晾,一個(gè)胖子當(dāng)著我的面吹牛栓始,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播血当,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼幻赚,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了臊旭?” 一聲冷哼從身側(cè)響起落恼,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎离熏,沒想到半個(gè)月后佳谦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡滋戳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年钻蔑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了啥刻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡咪笑,死狀恐怖可帽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情窗怒,我是刑警寧澤映跟,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站扬虚,受9級(jí)特大地震影響努隙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜辜昵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一剃法、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧路鹰,春花似錦贷洲、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至雁竞,卻和暖如春钦椭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背碑诉。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工彪腔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人进栽。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓德挣,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親快毛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子格嗅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容