接入第三方api接口,前端js签名算法

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

 

const CryptoJS = require("crypto-js");

const axios = require('axios');

const dayjs = require("dayjs");

const params = {

token: '58e94a16-ef31-486c-90fb-b689e71a4621',

app_key: '7c3000cb9dbe4610b7f27a2e16c279cc',

timestamp: new Date(),

format: 'json',

v: '1.0',

// jd_param_json: {

// "skuId": "123456789",

// "stationNo": "135792468",

// "price": "20",

// "marketPrice": "20"

// },

jd_param_json: {

"StoreNo":'12329110'

}

}

const appSecret = '285e8394f0ab40eba7babbde0a6713fc'

function concatParams(params) {

params.timestamp = dayjs(params.timestamp).format('YYYY-MM-DD hh:mm:ss')

const keysArr = Object.keys(params).sort()

const mapParams = new Array()

keysArr.forEach(item => {

if (isJsonObj(params[item])) {

params[item] = JSON.stringify(params[item])

}

mapParams.push(item, params[item])

});

return mapParams

}

function isJsonObj(obj) {

var isjson = typeof (obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object object]" && !obj.length;

return isjson;

}

function getSign(params, appSecret) {

const sysStr = concatParams(params).join('')

const resultStr = `${appSecret}${sysStr}${appSecret}`

const md5ResultStr = CryptoJS.MD5(resultStr).toString().toUpperCase()

console.log(md5ResultStr);

return md5ResultStr;

}

// getSign(params,appSecret)

async function getData(params, appSecret) {

const sign = getSign(params, appSecret)

// const res = await axios.get(`https://openapi.jddj.com/mockapi/order/finish?jd_param_json=${params.jd_param_json}&token=${params.token}&app_key=${params.app_key}&timestamp=${params.timestamp}&v=${params.v}&format=${params.format}&sign=${sign}`)

// const res = await axios.get('https://api.apiopen.top/api/getHaoKanVideo?page=0&size=2')

const url = `https://openapi.jddj.com/djapi/storeapi/getStoreInfoByStationNo?jd_param_json=${params.jd_param_json}&token=${params.token}&app_key=${params.app_key}&timestamp=${params.timestamp}&v=${params.v}&format=${params.format}&sign=${sign}`

const encodeUrl = encodeURI(url)

const res = await axios(

{

method:'get',

url: encodeUrl,

})

console.log(res.data);

}

getData(params, appSecret)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值