JSFiddle - React, Tailwind, and code Playground
by tonnyLTP
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/hmac-sha256.js"></script>
<div style="margin-top:100px;" id="output"></div>
JavaScript
const apiKey = '111222333'
const data = {
"user_id": "U000334333",
"wallet_id": "W00000001",
"amount": "120.00",
"payment_method": "alipay",
"return_url": "https://merchantsite.com/checkout",
"callback_url": "https://merchantsite.com/confirm",
"merchant_reference": "dsi39ej430sks03",
"ip": "122.122.122.1",
"version": "2.0",
"product_name": "Pinot Noir, Otago"
}
const message = Object.keys(data)
.filter(item => data[item] != null && data[item] != undefined && data[item] !== '')
.sort()
.map(item => `${item}=${data[item]}`)
.join('&')
.concat(apiKey)
document.getElementById('output').innerHTML = CryptoJS.HmacSHA256(message, apiKey).toString();