今天目標是把簽章包成api的方式做完
一樣是透過nodejs的express實作喔
上圖是sign簽章的作法
很多人會想說api services裡面有些不需要傳送簽章
那這個主要是做什麼呢??
比如說order create建立訂單的21個request api中參數是不需要sign參數的
那麼為什麼需要sign呢??
其實永豐給你的nonce跟hashid這些裡面透過你傳過來的內容
即可完成sign
代表這個sign只有你知我知
如果sign失敗
會回傳
相關錯誤代碼如下
今天使用兩個套件
loadsh 幫住取出空值的運算
以及sha256的加密
var sha256 = require('js-sha256');
var _ = require('lodash')
實作function如下
function sign(my_object){
var result = _.omitBy(
my_object,
(v) => _.isUndefined(v) || _.isNull(v) || v === ""
);
var resultkeys = _.without(_.keys(result), "").sort();
var hashstring = resultkeys.reduce((acc, cur, idx) => {
if (idx == resultkeys.length - 1) {
return acc + `${cur}=${result[cur]}`;
}
return acc + `${cur}=${result[cur]}&`;
}, "");
return hashstring
}
也就是以上的步驟
最後來透過官方的計算機驗證吧!!
明天再繼續把messeage完成吧!!
就可以開始建立訂單了