React JS 应用程序中的推荐糖果集成

问题描述

我正在尝试将 Referral Candy 集成到我的 React 应用程序中。我正在集成此端点 https://my.referralcandy.com/api/v1/verify.json。 根据他们的官方文档,我完成了 Referral Candy 中提到的这些步骤,但我仍然收到 Invalid Credentials 响应,而不是 Verification OK。以下是我将要执行的代码

App.js 组件

import React from "react";
import axios from "axios";
import generateParams from "./generateParams";

const App = () => {
  React.useEffect(() => {
    const bundle = {
      authData: {
        accessID: "accessIDHere",secret_key: "secretKeyHere",},};
    const userData = {
      name: "nameHere",};
    const params = generateParams(bundle,userData);
    const fetchData = async () => {
      const response = await axios.get(`https://my.referralcandy.com/api/v1/verify.json?${params}`);
      console.log("response",response);
    };
    fetchData();
  },[]);
  return <div />;
};

export default App;

生成Params.js文件

const MD5 = require("crypto-js/md5");
const queryString = require("query-string");
const moment = require("moment");

const calculateRCSignature = (data,secretKey) => {
  const sortedKeys = Object.keys(data).sort((a,b) => {
    if (a < b) return -1;
    else if (a > b) return 1;
    return 0;
  });

  const initialValue = `${secretKey}`;

  const sortedQueries = sortedKeys.reduce((total,currentValue) => {
    return total + `${currentValue}=${data[currentValue]}`;
  },initialValue);

  return MD5(sortedQueries);
};

module.exports = (bundle,userData = {}) => {
  const accessID = process.env.ACCESS_ID || bundle.authData.access_id;
  const secretKey = process.env.SECRET_KEY || bundle.authData.secret_key;
  const epochNow = moment().unix();

  const defaultData = {
    timestamp: epochNow,accessID: accessID,};

  let completeData = Object.assign(defaultData,userData);
  completeData.signature = calculateRCSignature(completeData,secretKey);

  return queryString.stringify(completeData);
};

任何帮助将不胜感激:) 谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)