微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。