rocketfuel-node-sdk
Version:
JS SDK for RocketFuel Payment Method
23 lines (19 loc) • 948 B
JavaScript
import crypto from 'crypto';
import CustomError from '../../CustomError';
import { STRING_CONST } from '../const';
const { publicKey } = STRING_CONST.keys;
function verifySignature(body, signature) {
const verifier = crypto.createVerify('RSA-SHA256');
verifier.update(body);
return verifier.verify(publicKey, signature, 'base64');
}
export default function webhook() {
return async (requestBody) => {
try {
const payloadData = requestBody.data.data; // {"amount":"24","conversionRate":{"fiatCurrency":"USD","rate":1},"cryptoAmount":"24","cryptoCurrency":"USD","currency":"USD","offerId":"1636958602062","paymentStatus":"1","receivedAmount":"0","referenceId":"d6aa31b1-a1fe-4da2-b79c-b469be153581","status":true,"transactionId":"d46fa703-acb8-41fe-8a4d-dd92d179b2fc"}
return verifySignature(payloadData, requestBody.signature);
} catch (err) {
throw new CustomError(err.message, err.response.data);
}
};
}