Partner.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import crypto from "crypto";
  2. import axios from "axios";
  3. const API_BASE_URL = 'https://dev.api.ppai.win/api/p/gate';
  4. const APP_ID = 'ppai.partner.taoge';
  5. const APP_KEY = '7F9AE8D6D2B9D39B7D76AA1EC06A5534';
  6. /**
  7. * 生成SHA256
  8. */
  9. const generateSHA256 = (message) => {
  10. return crypto.createHash('sha256').update(message).digest('hex');
  11. }
  12. /**
  13. * 生成随机 nonce
  14. */
  15. const generateNonce = () => {
  16. return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
  17. }
  18. /**
  19. * 生成签名
  20. */
  21. const generateSignature = (appKey, action, timestamp, nonce) => {
  22. return generateSHA256(`${appKey}${action}${timestamp}${nonce}`);
  23. }
  24. /**
  25. * 获取时间戳 秒级
  26. */
  27. const getTimestamp = () => {
  28. return Math.floor(Date.now() / 1000);
  29. }
  30. /**
  31. * 请求数据接口
  32. */
  33. export const requestData = async (action, data) => {
  34. const timestamp = getTimestamp();
  35. const nonce = generateNonce();
  36. const sign = generateSignature(APP_KEY, action, timestamp, nonce);
  37. const appid = APP_ID;
  38. const requestData = { action, appid, nonce, sign, timestamp };
  39. if (Object.keys(data).length > 0) {
  40. requestData.params = data;
  41. }
  42. return axios.post(API_BASE_URL, requestData).then(res => res.data);
  43. }
  44. export const updateSolutions = async (solutions) => {
  45. return requestData('opps.soccer', { solutions });
  46. }
  47. export default { updateSolutions };