首页 > 编程语言 >app直播源码,uniapp随机数生成签名

app直播源码,uniapp随机数生成签名

时间:2023-11-08 14:26:14浏览次数:39  
标签:uniapp const app value 生成 源码 params 签名 key

app直播源码,uniapp随机数生成签名

1、首先,需要引入 node.js 内置模块 crypto,它提供了一些加密相关的函数和方法。可以在项目的 common 文件夹下新建一个 js 文件,例如 utils.js,并在其中定义一个生成随机串的方法,例如:

 

// 引入 node.js 内置模块 crypto
const crypto = require('crypto');
 
/**
 * 生成指定长度的随机字符串
 * @param {Number} length 随机字符串的长度,默认为 16
 * @return {String} 生成的随机字符串
 */
export function generateNonceStr(length = 16) {
  const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  const maxPos = chars.length;
  let nonceStr = '';
  for (let i = 0; i < length; i++) {
    nonceStr += chars.charAt(Math.floor(Math.random() * maxPos));
  }
  return nonceStr;
}
 
/**
 * 根据参数对象生成签名
 * @param {Object} params 参数对象
 * @param {String} key 秘钥
 * @return {String} 生成的签名
 */
export function generateSignature(params, key) {
  // 按照字典序排序所有参数
  const sortedParams = Object.keys(params).sort().reduce((obj, key) => {
    obj[key] = params[key];
    return obj;
  }, {});
 
  // 将参数拼接成 key=value&key=value 的形式,并以 &key=API_KEY的方式结尾
  const str = Object.entries(sortedParams)
    .filter(([key, value]) => value !== '' && typeof value !== 'undefined')
    .map(([key, value]) => `${key}=${value}`)
    .join('&') + `&key=${key}`;
 
  // 使用 MD5 算法对拼接后的字符串进行加密,并返回加密结果的大写字母形式
  return crypto.createHash('md5').update(str, 'utf8').digest('hex').toUpperCase();
}

2、在项目中使用时,可以按照以下方式调用:

 


import { generateNonceStr, generateSignature } from '@/common/utils';
 
// 示例:生成支付预订单需要的随机串和签名
const params = {
  appid: 'your_appid',
  mch_id: 'your_mch_id',
  nonce_str: generateNonceStr(),
  body: '商品描述',
  out_trade_no: '商户订单号',
  total_fee: '订单总金额',
  spbill_create_ip: '调用支付接口的机器 IP',
  notify_url: '接收微信支付异步通知回调地址',
  trade_type: 'JSAPI',
  openid: '用户 openid'
};
const key = 'your_key';
const sign = generateSignature(params, key);
 
console.log('随机串:', params.nonce_str);
console.log('签名:', sign);

 

 以上就是 app直播源码,uniapp随机数生成签名,更多内容欢迎关注之后的文章

 

标签:uniapp,const,app,value,生成,源码,params,签名,key
From: https://www.cnblogs.com/yunbaomengnan/p/17817279.html

相关文章

  • android短视频开发,uniapp页面滚动条到指定位置
    android短视频开发,uniapp页面滚动条到指定位置#html指定位置<viewclass="gap_body_position"></view> #js执行this.$nextTick(()=>{  //一定要用nextTickuni.pageScrollTo({duration:300,selector:'.gap_body_position'});})​以上就是android短视频开发,uniapp页......
  • uni-app上传图片后bold转base64
    uni.chooseImage({count:1,//图片张数success:asyncres=>{constreader=newFileReader();reader.readAsDataURL(res.tempFiles[0]);reader.onload=async(e)=>{console.log(e.target.result)//e.target.result转换后的base64......
  • app直播源代码,css给数字或文字在鼠标悬停时添加下划线动画
    app直播源代码,css给数字或文字在鼠标悬停时添加下划线动画html代码: <h1 class="row center " style="font-size: 2em;">css给数字或文字在鼠标悬停时添加下划线动画</h1><div class="row center text"><span>春有百花秋望月</span>,<span>夏有冷风冬听雪</spa......
  • 融云出海:从全球最多 MAU 的 10 款社交 App,看设计细节的重要性
    近期,微信又悄悄进行了一次消息弹窗的更新,再次引发网友热议。在最新版本中,用户在聊天时,也能看到新消息的内容,让不少用户大呼方便。实际上,在过去几年,微信的每一次细小更新都会引发“用户到底需要哪些功能”的讨论。关注【融云全球互联网通信云】了解更多其中减少内存的占用、朋友圈编......
  • 苹果企业签名后App出现闪退该如何解决
    用户在安装App后,打开应用出现闪退直接退出返回到主屏幕,无法正常的体验的应用,本文我们就一起探讨一下闪退的原因,并提供解决方案,保证用户可以解决闪退问题,确保应用稳定运行。首先我们去根据具体情况去观察,我们安装的应用是最新版本,因为更新通常是修复bug和提高性能的改进,如果后续闪退......
  • java一体化医疗信息管理系统源码:云HIS、云病历、云LIS
    基于云计算技术的B/S架构的HIS系统,为医疗机构提供标准化的、信息化的、可共享的医疗信息管理系统,实现医患事务管理和临床诊疗管理等标准医疗管理信息系统的功能。系统利用云计算平台的技术优势,建立统一的云HIS、云病历、云LIS,有效实现实现协同门诊、住院、药房药库管理、双向转诊转......
  • android 12 修改Launcher3 app hotseat 图标形状为圆角图标
    1.概述在对11.0产品开发中,对于Launcher3做各种定制化开发,也是常见的,最近有功能需求要求,对于修改图标的形状为圆角图标,而在Launcher3中,所有的app和hotseat都是由BubbleTextView负责构建的,所以对于图标的修改也是要从BubbleTextView.java修改的在这里插入图片描述2.修改Launcher......
  • Web Profile Builder for Web Application Projects
    WebProfileBuilderforWebApplicationProjectsFilescanbedownloadedfromtheWebProfileBuilderprojectpage.IfyouuseWebApplicationProjects,youhaveprobablyrunintotheissueofnotbeingabletoaccesstheProfileatdesigntime.Thankfully......
  • 医院HIS手术麻醉临床信息管理系统源码 实现术前、术中、术后全流程管理
    手术麻醉系统是一套以数字形式与医院信息系统(如HIS、EMR、LIS、PACS等)和医疗设备等软、硬件集成并获取围手术期相关信息的计算机系统,其核心是对围手术期患者信息自动采集、储存、分析并呈现。该系统通过整合围手术期中病人信息、人员信息、手术信息、物品信息等内容,可提供全套标准......
  • javascript 手动实现 bind,call,apply
     js手动实现call方法Function.prototype.myCall=function(content,...args){letmyfn=Symbol()content=content||globalThis//console.log(content)content[myfn]=this//console.log(content)constresu......