[Day04] 第四章- 初探金流API文件-3 (sign透过nodejs实作)

前言

今天目标是把签章包成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完成吧!!
就可以开始建立订单了


<<:  布林值判断的一些豆技巧(弄不好也是会造成专案死掉的)

>>:  【Day 05】你逆 - 逆向工程工具介绍

【Day27】清除轨迹 ─ Windows篇

哈罗~ 铁人赛终於接近尾声啦(๑´∀ˋ๑) 在 Day14 & Day15 我们介绍了系统入...

【D23】修改食谱#3:不知道来的客人是谁,先设定预设值

前言 在昨天的范本中,前提是先拿到期货的交易资料,可是万一是选择权先到呢?我们那个弱弱的预设值是不太...

Day 5:AWS是什麽?30天从动漫/影视作品看AWS服务应用 -《爱x死x机器人》之〈自动客服〉

结束温馨又充满香香AI妹子的《Vivy -Fluorite Eye's Song》之後, 来点重口味...

[Day7] 提升

何谓提升(Hoisting)? 提升(Hoisting) 其实主要是为了厘清 JavaScript ...

【零基础成为 AI 解梦大师秘笈】Day26 - 周易解梦之人工智慧(7)

人工智慧7 前言 系列文章简介 大家好,我们是 AI . FREE Team - 人工智慧自由团队,...