一.背景

  刚入新公司不久,就碰见一个同事要离职,就交接了这个项目给我。同事的离职比较仓促,所以交接的也不是很好,这也是后面问题偏多的一个客观原因。项目如题所示,前端采用vue.js+node.js开发,后台采用c#开发接口,还需要开发一个c#的网站来展示数据。上一份工作做的是erp,用的是powerbuilder,所以这个项目还是涉及到比较多的生疏知识。

二.遇到的问题

  1.微信测试环境搭建

    微信的测试环境搭建还是比较麻烦的(对于新手来说),但是我回过头去看的时候,也不知道该写些什么,还是网上找教程吧。

2.微信录音上传下载
微信录音如果想要下载的指定路径,需要先上传录音到微信服务器,再根据返回的serverId(即下载的MEDIA_ID)去微信提供的接口下载到你目标路径,微信测试环境没问题的话,按照这个基本上就没有问题,不过调试之类的比较麻烦,只能通过写日志的方式查看。微信也提供了一个供测试的界面,输入参数,可以获取报错信息。

/// <SUMMARY> /// 下载保存多媒体文件,返回多媒体保存路径 /// </SUMMARY> /// <PARAM name="ACCESS_TOKEN"></PARAM> /// <PARAM name="MEDIA_ID"></PARAM> /// <RETURNS></RETURNS> public string GetMultimedia(string ACCESS_TOKEN, string MEDIA_ID){string file = string.Empty;string strpath = string.Empty;string stUrl = Common.TextHelper.WXUploadMediaUrl+"?access_token=" + ACCESS_TOKEN + "&media_id=" + MEDIA_ID;HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(stUrl);req.Method = "GET";using (WebResponse wr = req.GetResponse()){HttpWebResponse myResponse = (HttpWebResponse)req.GetResponse();strpath = myResponse.ResponseUri.ToString();WebClient mywebclient = new WebClient();string basePath = AppDomain.CurrentDomain.BaseDirectory + "Attachment";//附件临时存放路径string amrFile = DateTime.Now.ToString("yyyyMMddhhmmssms")+".amr";string mp3File= DateTime.Now.ToString("yyyyMMddhhmmssms")+".mp3";try{mywebclient.DownloadFile(strpath, Path.Combine(basePath, amrFile));ConvertToMp3(Path.Combine(basePath, amrFile), Path.Combine(basePath, mp3File));file = mp3File;//file = amrFile;
                }catch (Exception ex){//savepath = ex.ToString();
                }}return file ;}

View Code

参考文档:http://www.cnblogs.com/zhangs1986/p/3636234.html
3.微信录音格式转换
amr格式的文件,网页不能播放,所以需要转换成MP3格式,查看了许多都选择使用第三方工具ffmpeg。刚开始使用的时候,遇到了MP3可以转成wav格式,但是amr格式不能转成mp3的尴尬局面。折腾了许久,后面经过检查才发现用于测试的amr文件坏掉了。这个故事告诉我们一定要细心,还有遇到问题不用慌,深呼吸一口气,从头检查一遍,或许会有收获。

public string ConvertToMp3(string pathBefore, string pathLater){string c = System.Web.HttpContext.Current.Server.MapPath("/ffmpeg/") + @"ffmpeg.exe -i " + pathBefore + " " + pathLater;log.WriteLine(c);string str = RunCmd(c);return str;}/// <summary>/// 执行Cmd命令/// </summary>private string RunCmd(string c){try{ProcessStartInfo info = new ProcessStartInfo("cmd.exe");info.RedirectStandardOutput = false;info.UseShellExecute = false;Process p = Process.Start(info);p.StartInfo.UseShellExecute = false;p.StartInfo.RedirectStandardInput = true;p.StartInfo.RedirectStandardOutput = true;p.StartInfo.RedirectStandardError = true;p.Start();p.StandardInput.WriteLine(c);p.StandardInput.AutoFlush = true;Thread.Sleep(1000);p.StandardInput.WriteLine("exit");p.WaitForExit();string outStr = p.StandardOutput.ReadToEnd();p.Close();return outStr;}catch (Exception ex){return "error" + ex.Message;}}

View Code

参考文档:http://www.cnblogs.com/LittleBai/p/5924416.html
4.路径正确,却无法获取附件(iis mine类型配置)
公众号提交的信息包含图片、音频、视频,上传到服务器后都是放在同一个文件夹,但是网页显示的时候,图片可以访问,音频、视频却提示不能访问。问了老大才知道iis上mine类型需要加下配置。由于我之前做的不是网页开发,甚至不是c#开发,所以很多坑还没踩过,只能一个个踩过去,才会长记性。所谓经验,大概就是踩过的坑比较多吧!
5.图片旋转
这个倒是没什么好说的,图片旋转的简单实现而已

function rotate(row)
{var deg = eval('get' + $("#" + row).css('transform'));//构造getmatrix函数,返回上次旋转度数  var step = 90;//每次旋转多少度  $("#" + row).css({ 'transform': 'rotate(' + (deg + step) % 360 + 'deg)' });
}function getmatrix(a, b, c, d, e, f) {var aa = Math.round(180 * Math.asin(a) / Math.PI);var bb = Math.round(180 * Math.acos(b) / Math.PI);var cc = Math.round(180 * Math.asin(c) / Math.PI);var dd = Math.round(180 * Math.acos(d) / Math.PI);var deg = 0;if (aa == bb || -aa == bb) {deg = dd;} else if (-aa + bb == 180) {deg = 180 + cc;} else if (aa + bb == 180) {deg = 360 - cc || 360 - dd;}return deg >= 360 ? 0 : deg;//return (aa+','+bb+','+cc+','+dd);
}

View Code

 参考文档: http://m.blog.csdn.net/cengjingcanghai123/article/details/53537242

  

三.总结

  花了将近一个月的时间,虽然过程磕磕碰碰,但总体来说还是完成了任务。不足之处有很多,比如前端样式贼丑(虽然我不是前端,不过小公司只能前后端兼收并蓄了),比如效率略低(这个是因为我之前做的是pb,c#虽然有基础,但是实际的开发经验并不多)。大体来说,对自己的表现还算满意,毕竟涉及到的东西都不太熟悉,一个月的时候能够完成任务,打个60分吧!我的优点在于逻辑能力与数据库(上一份工作是做erp的,虐出来),缺点也很明显(基础不够好,所以还是需要狠补基础),希望再接再厉!如果写下的这篇文章能够解决某个猿的部分问题,可以让某些猿少踩一个坑,我就挺开心的!文笔不好,絮絮叨叨,求轻虐!

转载于:https://www.cnblogs.com/qcqc/p/7474170.html

记一次微信公众号的开发与后台搭建相关推荐

  1. 记一次微信公众号开发过程

    记一次微信公众号开发过程 关于技术选型 开发前准备 安装和配置VS Code 关于使用过程的问题 开发环境搭建 安装node.js,npm(windows环境) 全局安装Vue脚手架 利用vue-cl ...

  2. ios系统web(微信公众号)开发遇到的问题及解决方案

    ios系统web(微信公众号)开发遇到的问题及解决方案 参考文章: (1)ios系统web(微信公众号)开发遇到的问题及解决方案 (2)https://www.cnblogs.com/clj2017/ ...

  3. 微信公众号Java开发-笔记02【开发接入准备、开发接入】

    学习视频网址:哔哩哔哩网站 微信公众号开发-Java版 [P01-P02]微信公众号Java开发-笔记01[微信公众号介绍.开发环境搭建] [P03-P04]微信公众号Java开发-笔记02[开发接入 ...

  4. 微信公众号Java开发-笔记01【微信公众号介绍、开发环境搭建】

    学习网址:哔哩哔哩网站 微信公众号开发-Java版 微信公众号Java开发-笔记01[微信公众号介绍.开发环境搭建] 微信公众号Java开发-笔记02[] 微信公众号Java开发-笔记03[] 微信公 ...

  5. 论如何使用Python进行微信公众号的开发

    说到微信公众号的开发,不外乎两种,一种是使用官方提供的接口开发,一种就是通过模拟登录来实现接口(这种方式有被封的风险,这里不论述) Python发展至今,已经有多种完善的服务器框架可以使用,Djang ...

  6. 前端对接微信公众号网页开发流程,前期配置

    微信公众号网页开发,其实就是我们开发的h5网页需要放到微信浏览器环境中使用,但是需要对接公众号授权,授权之后可以获取到用户的个人信息,以及可以使用公众号提供的一些API,如:图片上传.图片预览.获取位 ...

  7. 前端对接微信公众号网页开发流程,授权对接

    前面讲到 前端对接微信公众号网页开发流程,前期配置,本篇文章主要详细介绍关于公众号的授权对接. 一.引入微信js-sdk 在需要调用 JS 接口的页面引入如下 JS 文件 http://res.wx. ...

  8. 微信公众号Python开发(Wechatpy+新浪云SAE应用)

    微信公众号Python开发(Wechatpy) 前言:微信公众号后台只提供指定条件的指定回复,如果想有聊天.翻译.查询.后台数据库等则需要使用公众号提供的接口开发脚本.开发工具语言选择诸多,Pytho ...

  9. 微信公众号python开发_用python如何开发微信公共帐号?

    我的第一个Python项目就是做的微信公众号机器人,按照当时我的思路来讲讲如何学习使用Python来开发微信公众号:大家伙收藏顺手点个赞呗. 微信公众号功能开发分为两大块:需要调用微信内部功能.不需要 ...

最新文章

  1. 千千静听4.6.7版发布了
  2. 在EditText前面添加一个搜索的小图片
  3. 简单c语言图形界面,求个用最简单的的代码来实现图形界面…
  4. python Hbase Thrift pycharm 及引入包
  5. golang的time包:时间字符串和时间戳的相互转换
  6. Vue+element-ui 实现表格的分页功能示例
  7. fzu 2154 YesOrNo
  8. java压缩----使用ANT JDK压缩---解决中文问题
  9. java aes mysql blob_使用带有ORDER子句的AES_DECRYPT在MySQL中返回BLOB数据
  10. python输出变量的值使用_Python捕获任何异常,并使用变量值打印或记录回溯
  11. Mac os x 系统的发展史
  12. 【LetCode算法修炼】Two Sum
  13. java 继承与多态的区别_【转】 【JavaSE】继承与多态的理解与区别
  14. 网站前端_EasyUI.基础入门.0002.带你玩转jQuery EasyUI Panel组件 ?
  15. 树立榜样、褒奖开源领域领袖人物、杰出贡献人物
  16. Spring IoC、应用上下文容器层次分析
  17. 产品学习---互联网形势
  18. 【双轨】分销+量碰+返利+加权分红源码系统 演示网站
  19. Ubuntu还需要做什么才能替代Windows
  20. webbench源码学习--命令行选项解析函数getopt和getopt_long函数

热门文章

  1. 基于pyqt5的简陋相机的实现
  2. 项目管理文档_PPM优课第18期 | 不同项目管理模式“武装”质量管理体系的搭建...
  3. mSystems:华南农大揭示水稻SST基因调控根际微生物协同耐盐机制
  4. 虹科分享|终端安全防护|网络安全术语列表(二)
  5. maven dependence 的optional 和 exclusions 标签详解
  6. AD16画PCB流程及集成库制作注意事项
  7. HTML特殊符号的输入
  8. wwwwwwwwwww
  9. Spring Security实战--(五)认证和鉴权过程
  10. Unity获取物体下的子物体