FWQ
微信小程序实现与后台PHP交互
接下来将讲后台如何与前台进行数据及图片之间的交互,相信这一点是很多人所关注的,因为当时我实在团队中负责后台开发,因此对前端不是特别了解,这里我会贴出前端开发时的部分代码截图,微信小程序的官方api介绍地址是: https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-network.html 微信与后台服务器之间的数据通信是调用wx.request(OBJECT)实现的,官方api接口里有对此说明, 例如前台向后台发送数据,需要链接服务器php作用路径下的具体php文件,并以key-value形式封装json格式数据,请看以下代码: url是服务器的域名及isbn.php在服务器的位置,这个位置是相对位置,在我上一篇购买的镜像里默认php文件路径为: /yjdata/www/ ,这就意味着直接放在这个文件夹下的php只需要在域名后直接/+*.php即可,如果为了方便管理在这个目录下建了一个文件夹则在域名后/文件夹名字/*.php即可。 此外前端向后台传输的数据是以json格式封装的,如图中的data里写的数据,前面是key,后面是具体的value值,后台取得时候是要根据前面的key值取值,此外,method决定了后台与前台通过什么方式交流,这里是用的GET方法,后台与前台方法必须配对使用,不能一个是GET,另一端是POST,在做微信支付功能时,有些安全性隐私性较高的数据必须采用POST进行交互。 这里的前端向后台传输的result是图书的ISBN码,因为我们做的小程序有个功能是调用相机扫描书本后面的条形码从而获得ISBN码,前端将ISBN码发送到后台,后台程序将调用第三方豆瓣图书接口来依据ISBN码查询图书信息,并将图书信息返回给前台,这里我贴出服务器端的代码供大家参考: <?php $result=$_GET["result"];/*获取前端微信小程序扫书的isbn结果*/ 登录后复制 /*与第三方接口通信获取书本信息*/ 登录后复制 $book_info=file_get_contents("https://api.douban.com/v2/book/isbn/:".$result);$jsondecode = json_decode($book_info,true);/*将获取到的书本信息JSON解码*/$title=$jsondecode["title"];/*将解码后书名赋值给title变量*/$author=$jsondecode["author"];/*将解码后作者赋值给author变量*/$publisher=$jsondecode["publisher"];/*将解码后出版社名赋值给publisher变量*/echo "title=".$title; /*向前端返回书名*/echo "author=".$author; /*向前端返回作者名*/echo "publisher=".$publisher; /*向前端返回出版社名*/?> 登录后复制 具体的注释都写得很详细,向前台返回数据则直接用echo即可,一般开发都要与数据库打交道,因此,后台程序就需要依据前台传来的数据对数据库进行操作,这一部分其实也就是接受前台的数据,执行对应的数据库操作,这一部分只要是讲到php数据库操作的都会有,这里我不再进行过多阐述。 此外,对于一个微信小程序来说,图片是必不可少的,而图片资源都是存储在服务器中的,因此如何对图片进行存储是一个关键。接下来将结合一个书本信息的具体插入数据库的过程来进行讲解。。。(其实注释特别详细) <?phpheader ('content-type:application/json;charset=utf8');$mysql_server_name="localhost";/*数据库服务器名称*/$mysql_username="root";/*数据库用户名*/$mysql_password="123456";/*数据库用户密码*/$mysql_databasename="zhishu";/*进入数据库后数据库名*/$conn=mysqli_connect($mysql_server_name,$mysql_username,$mysql_password,$mysql_databasename);/*数据库连接语句*/;;$bookname=$_POST["bookname"];/*从小程序前端获取书本名字*/$authorname=$_POST["authorname"];/*从小程序前端获取书本作者名字*/$bookintroduce=$_POST["introduce"];/*从小程序前端获取书本介绍信息*/$bookholder_name=$_POST["openid"];/*从小程序前端获取书本持有人昵称*/$bookclass=$_POST['classification'];;/*从小程序前端获取书本分类*/date_default_timezone_set('PRC'); /*设置默认时区为中国*/$time=(string)date("Y-m-d-h-i",time());/*获取时间*/function Unioname($a)…