先附上源码,可以到git下载。个人提议:最好整体看一下微信公众平台的技术文档。
https://github.com/VVickyCHEN/wxjs
第一步、 先注册微信公众号账号,以及配置好一下东西 |
---|
(1)IP白名单 |
(2)js接口安全域名 |
第二步、写好前端页面后把签名验证先通过,估计很多人会卡在这一步,所以我总结了自己的几个例子,希望对大家有用。 |
---|
(1)url的获取 官方文档说这个地址需要在前端实时获取,使用encodeURIComponent(var url = encodeURIComponent(location.href.split(’#’)[0]);)加密传给后台 |
(2)官方文档说了access_token和ticket都需要设置缓存保存起来,并且要设置过期时间 |
(3)前端引用微信jsssdk的地址https://res.wx.qq.com/open/js/jweixin-1.0.0.js如果加了https后台获取token和ticket的地址也要跟着加上https |
第三步、不是直接下载mp3,利用微信接口先下载amr文件,再利用ffmpeg将其转换为mp3。大家可以直接看我代码,这里列出需要注意的地方。 |
---|
(1)微信下载amr文件的地址,这里不能加上s,不然保存不了amr文件 $url = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token={$access_token}&media_id={$media_id}"; |
(2)ffmpeg下载地址 |
(3)如果使用shell_exec函数来用ffmpeg命令不生效,可以使用ffmpeg文件下的bin目录代替ffmpeg |
楼主配置好了ffmpeg环境变量,在cmd命令行中是可以使用ffmpeg将amr转换成mp3,但是在php使用shell_exec函数的时候却不行,想来想去,就想到了如下方法:
如果使用shell_exec函数来用ffmpeg命令不生效,可以使用ffmpeg文件下的bin目录代替ffmpeg
//$filename即amr文件目录加文件名
//mp3即要新的MP3保留的目录地址加文件名
$command = "C:\phpStudy\PHPTutorial\php/ffmpeg-20190101-1dcb5b7-win64-static\bin/ffmpeg -i {$filename} {$mp3} 2>&1";
shell_exec($command);
怀着十分期待的心情写道(最后这个才是重点):今天是2019年1月15号,距离杰伦上一次发专辑已经三年了。还有三天就是1.18了,杰伦你至少发一首歌吧。或者你可以将欧龙香水广告歌曲找文山填词唱一唱。我已经听这首广告歌曲一个月了。
以上我说的有不清楚的可以加我微信交流,也欢迎杰迷们一起进行音乐交流。微信:abc12345anpfwqwe