app直播源码,uniapp随机数生成签名
app直播源码,uniapp随机数生成签名
1、首先,需要引入 node.js 内置模块 crypto,它提供了一些加密相关的函数和方法。可以在项目的 common 文件夹下新建一个 js 文件,例如 utils.js,并在其中定义一个生成随机串的方法,例如:
1 | // 引入 node.js 内置模块 crypto<br>const crypto = require('crypto');<br> <br>/**<br> * 生成指定长度的随机字符串<br> * @param {Number} length 随机字符串的长度,默认为 16<br> * @return {String} 生成的随机字符串<br> */<br>export function generateNonceStr(length = 16) {<br> const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';<br> const maxPos = chars.length;<br> let nonceStr = '';<br> for (let i = 0; i < length; i++) {<br> nonceStr += chars.charAt(Math.floor(Math.random() * maxPos));<br> }<br> return nonceStr;<br>}<br> <br>/**<br> * 根据参数对象生成签名<br> * @param {Object} params 参数对象<br> * @param {String} key 秘钥<br> * @return {String} 生成的签名<br> */<br>export function generateSignature(params, key) {<br> // 按照字典序排序所有参数<br> const sortedParams = Object.keys(params).sort().reduce((obj, key) => {<br> obj[key] = params[key];<br> return obj;<br> }, {});<br> <br> // 将参数拼接成 key=value&key=value 的形式,并以 &key=API_KEY的方式结尾<br> const str = Object.entries(sortedParams)<br> .filter(([key, value]) => value !== '' && typeof value !== 'undefined')<br> .map(([key, value]) => `${key}=${value}`)<br> .join('&') + `&key=${key}`;<br> <br> // 使用 MD5 算法对拼接后的字符串进行加密,并返回加密结果的大写字母形式<br> return crypto.createHash('md5').update(str, 'utf8').digest('hex').toUpperCase();<br>} |
2、在项目中使用时,可以按照以下方式调用:
1 | <br>import { generateNonceStr, generateSignature } from '@/common/utils' ;<br> <br> // 示例:生成支付预订单需要的随机串和签名<br>const params = {<br> appid: 'your_appid',<br> mch_id: 'your_mch_id',<br> nonce_str: generateNonceStr(),<br> body: '商品描述',<br> out_trade_no: '商户订单号',<br> total_fee: '订单总金额',<br> spbill_create_ip: '调用支付接口的机器 IP',<br> notify_url: '接收微信支付异步通知回调地址',<br> trade_type: 'JSAPI',<br> openid: '用户 openid'<br>};<br>const key = 'your_key';<br>const sign = generateSignature(params, key);<br> <br>console.log('随机串:', params.nonce_str);<br>console.log('签名:', sign); |
以上就是 app直播源码,uniapp随机数生成签名,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2022-11-08 直播app开发,利用MethodHandle实现super关键字功能
2022-11-08 直播平台源代码,时间范围(range-picker)自定义时间段范围
2022-11-08 直播商城源码,配置首页搜索框
2021-11-08 短视频app开发,短视频动态功能上传图片时,规定图片压缩的大小
2021-11-08 短视频程序开发,RecyclerView自带的滚动条
2021-11-08 app直播源码,TextView部分字体颜色高亮