问题描述
我正在尝试将 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;
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 (将#修改为@)