当前位置: 首页 > news >正文

javaweb做视频网站难吗专业营销团队外包公司

javaweb做视频网站难吗,专业营销团队外包公司,不会代码可以做网站维护吗,有专门做礼品的网站吗1.需求 现在一些数据源 ,需要从三方地址拿到一些数据 比如说电影列表 信息了 影院列表信息了 等一些展示的数据,但是人家这种东西 害需要使用 appkey appserect 这种验签 这种需求 你前端调用接口是直接调用不了的 因为需要用到验签 需要后端接口转接一…

1.需求

现在一些数据源 ,需要从三方地址拿到一些数据 比如说电影列表 信息了 影院列表信息了 等一些展示的数据,但是人家这种东西 害需要使用 appkey appserect 这种验签

这种需求 你前端调用接口是直接调用不了的 因为需要用到验签 需要后端接口转接一下 前端再去调用接口

import { Body, Config, Provide } from '@midwayjs/decorator';
import { Inject } from '@midwayjs/decorator';
import { BusinessStudentEntity } from '../entity/student';
import { BusinessUserEntity } from '../entity/user';
import { BusinessBaseConfigEntity } from '../entity/base/config';
import { InjectEntityModel } from '@midwayjs/typeorm';
import { Repository } from 'typeorm';import { BaseService } from '@cool-midway/core';
import * as request from 'request';
import * as _ from 'lodash';
import * as crypto from 'crypto';
import { Context } from '@midwayjs/koa';/*** http请求封装*/
@Provide()
export class BussinessRequestService extends BaseService {@Inject()ctx: Context;@InjectEntityModel(BusinessStudentEntity)businessStudentEntity: Repository<BusinessStudentEntity>;@InjectEntityModel(BusinessBaseConfigEntity)businessBaseConfigEntity: Repository<BusinessBaseConfigEntity>;@InjectEntityModel(BusinessUserEntity)businessUserEntity: Repository<BusinessUserEntity>;@Config('module.business')coolConfig;/*** post*/async post(url, data = {}) {const { userId } = this.ctx.clientInfo;//学员信息const studentInfo = await this.businessStudentEntity.findOneBy({id: userId,});//对应 导员信息const adminInfo = await this.businessBaseConfigEntity.findOneBy({userId: String(studentInfo?.userId),});const requestConfig = this.coolConfig.request;let time = new Date().getTime();let pararm = {};pararm['appId'] = adminInfo.liangPiaoAppId;pararm['timestamp'] = time;let sign = this.generateSignature(pararm,data,adminInfo.liangPiaoSecret,adminInfo.liangPiaoAppId);return new Promise((resolve, reject) => {var option = {url:requestConfig.base_url +url +`?appId=${adminInfo.liangPiaoAppId}&sign=${sign}&timestamp=${time}`,method: 'POST',json: true,timeout: 30000,headers: {'content-type': 'application/json',},body: data,};request(option, function (error, response, body) {if (!error && response.statusCode == 200) {const { state, data } = body;if (state === 200) {resolve(data);} else {reject(body);}} else {reject(error); // 返回错误信息}});});}/*** get*/// get(url, params = {}) {//   const requestConfig = this.mangoConfig.request;//   params['appId'] = requestConfig.appKey;//   params['timestamp'] = new Date().getTime();//   params['sign'] = this.generateSignature(//     params,//     requestConfig.appSecret,//     requestConfig.appKey,//     params['timestamp']//   );//   return new Promise((resolve, reject) => {//     var option = {//       url: requestConfig.base_url + url,//       method: 'GET',//       timeout: 30000,//       qs: params,//     };//     request(option, function (error, response, body) {//       if (!error && response.statusCode == 200) {//         const { code, data } = body;//         if (code === 1) {//           resolve(data);//         } else {//           reject(body);//         }//       } else {//         reject(error); // 返回错误信息//       }//     });//   });// }//计算签名generateSignature(params, body, secretKey, keys) {const joinedParams = this.joinRequestParams(params, body, secretKey, keys);const md5Hash = crypto.createHash('md5').update(joinedParams).digest('hex').toUpperCase();return md5Hash;}//计算签名joinRequestParams(params, body, secretKey, keys) {const sb = [secretKey]; // 前面加上 secretKeyconst sortedParams = Object.keys(params).filter(key => key !== 'sign' && params[key]) // 过滤掉不需要的键.sort(); // 对键进行排序for (const key of sortedParams) {sb.push(key + params[key]);}sb.push(JSON.stringify(body));sb.push(secretKey); // 最后加上 secretKeyreturn sb.join('');}
}

当然一般 这种三方API 都有人家规定的验签规则 让你 写什么样的格式 拼接成什么样的格式

得看实际的需求 我这里主要介绍的是 post 请求的封装 (在jsNode 中书写后端接口)  是需要引入request 插件

http://www.ritt.cn/news/26206.html

相关文章:

  • 海伦市网站seo网站诊断报告
  • 哪个网站做团购要求低点seoul是哪个国家
  • 网站信息备案管理系统网站优化网站优化
  • 成都企业网站建设介绍百度上如何做优化网站
  • 网站建设新闻发布注意推广网站免费
  • 企业网站做app比较好网站制作公司
  • 制作伪装网站怎么查找关键词排名
  • 江苏建设人才网站seo哪家公司好
  • 公司旅游视频网站模板免费下载网站建设怎么弄
  • 网站域名 没有续费网络推广哪个平台最好
  • 常州建站优化百度关键词seo推广
  • 做网站的能赚多少钱百度下载安装app
  • 京东网站设计特点推广普通话的宣传语
  • 在360网站上怎么做推广高端企业建站公司
  • 网站开发语言在那看出来网络营销活动案例
  • 四合一网站建设北京网上推广
  • 做网站设计赚钱吗seo顾问
  • wordpress更改主题关键词优化搜索引擎
  • 网站婚礼服务态网站建设论文中关村标准化协会
  • 网站seo怎么做西安疫情最新数据消息中高风险地区
  • 帝国cms怎么做网站手机优化软件哪个好
  • 公司要招个做网站的人重庆seo网站
  • 网站做优化多少钱百家港 seo服务
  • 网站做跳转网站的seo是什么意思
  • 找人做的网站怎么看ftp全国疫情高峰感染高峰
  • 做设计兼职的网站婚恋网站排名前三
  • 湘潭做网站 都来磐石网络bt磁力搜索引擎在线
  • 宿州网站建设开发公司哪家好长沙seo优化
  • asp动态网站开发网推公司
  • 北京网站建设 seo公司微信营销的特点