...
代码块 | ||
---|---|---|
| ||
<script src="https://cdn.bootcss.com/crypto-js/3.1.9-1/crypto-js.min.js"></script> <script> const iframe = document.querySelector('#test-iframe'); function getUnionLoginParams() { const nonce = 'fb4706'; const opfid = '572115641423875';//开发者中心获取 const uid = '18576626619'; const secret = '92cba47a143a0c22ee7';//开发者中心获取 const timestamp = Date.now().toString(); const params = { opfid, secret, uid, nonce, timestamp }; const query = Object.keys(params) .sort( (key1, key2) => key1.charCodeAt(0) - key2.charCodeAt(0) ) .reduce((str, key) => (str += `${key}=${params[key]}&`), '') .slice(0, -1); const signature = CryptoJS.SHA1(query).toString(CryptoJS.enc.Hex); return { nonce, opfid, uid, timestamp, signature }; } const params = getUnionLoginParams(); let loginUrl = 'https://open.rabbitpre.com/union-login.html'; loginUrl += `?nonce=${params.nonce}`; loginUrl += `&opfid=${params.opfid}`; loginUrl += `&uid=${params.uid}`; loginUrl += `×tamp=${params.timestamp}`; loginUrl += `&signature=${params.signature}`; loginUrl += `&redirecturl=${encodeURIComponent('https://www.rabbitpre.com/template/multipage.html')}`; iframe.setAttribute('src', loginUrl); </script> |
Java代码参考示例
SortedMap<String, String> map = new TreeMap<String, String>();
map.put("opfid", opfid);
map.put("nonce", nonce);
map.put("timestamp", timestamp);
map.put("secret", secret);
map.put("uid", uid);
String signature = SHA1Util.createSHA1Sign(map);
System.err.println("--signature-->>" + signature);
companyId=1&nonce=LMAjxT&opfid=26991126592457221344&secret=9916346e346a4b8abcd988eeae8ecbdd×tamp=1625194549051&uid=1000010001
--signature-->>c1e0401e25926f3d42de2f03fc989eec4f15b01d