首页 > 后端开发 > 正文

微信常用的php框架 php处理微信小程序request请求

2023-09-28 08:07:02 | 我爱编程网

今天我爱编程网小编为大家带来了微信常用的php框架 php处理微信小程序request请求,希望能帮助到大家,一起来看看吧!

微信常用的php框架 php处理微信小程序request请求

php如何进行微信公众号开发



php如何进行微信公众号开发
1、配置相关服务器
(1) 如下,把自己的服务器ip白名单配置上;
(2) 开始配置令牌,配置令牌时先需要把现成的代码放到自己的服务器上面,代码里面包含自己的设置的令牌号码,这样才可以配置成功。
注意:下面这个代码在配置好后,即可从服务器上面删除代码或者把index.php改一个名字。
url必须是完整的url,比如
<?php
/**
* wechat php test
* update time: 20141008
*/
//define your token
//下面的即是你设置的token令牌
define("TOKEN", "zj123456");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];
//valid signature , option
if ($this->checkSignature()) {
echo $echoStr;
exit;
}
}
public function responseMsg()
{
//get post data, May be due to the different environments
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
//extract post data
if (!empty($postStr)) {
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$keyword = trim($postObj->Content);
$time = time();
$textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>";
if (!empty($keyword)) {
$msgType = "text";
$contentStr = "Welcome to wechat world!";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
} else {
echo "Input something...";
}
} else {
echo "";
exit;
}
}
private function checkSignature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);
if ($tmpStr == $signature) {
return true;
} else {
return false;
}
}
}2、配置ok后,接下来就可以实现相关的微信公众号相关功能,比如说自动回复机器人。
代码包含3部分,当然,自动回复机器人,下面的代码有些用不到。
(1) 、index.php
<?php
define("APPID","xxxxxxx");
define("APPSECRET","xxxxxx");
define("TOKEN","zj123456");
require("./wechat.inc.php");
$wechat = new WeChat(APPID,APPSECRET,TOKEN);
$wechat->responseMsg();
?>(2)、wechat.inc.php
<?php
class WeChat
{
private $_appid;
private $_appsecret;
private $_token;
public function __construct($appid, $appsecret, $token)
{
$this->_appid = $appid;
$this->_appsecret = $appsecret;
$this->_token = $token;
}
/**
*_request():发出请求
*@curl:访问的URL
*@https:安全访问协议
*@method:请求的方式,默认为get
*@data:post方式请求时上传的数据
**/
private function _request($curl, $https = true, $method = 'get', $data = null, $headers = null)
{
$ch = curl_init(); //初始化
curl_setopt($ch, CURLOPT_URL, $curl); //设置访问的URL
// curl_setopt($ch, CURLOPT_HEADER, false); //设置不需要头信息
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //只获取页面内容,但不输出
if ($https) {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不做服务器认证
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //不做客户端认证
}
if ($method == 'post') {
curl_setopt($ch, CURLOPT_POST, true); //设置请求是POST方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //设置POST请求的数据
}
$str = curl_exec($ch); //执行访问,返回结果
curl_close($ch); //关闭curl,释放资源
return $str;
}
/**
*_getAccesstoken():获取access token
**/
private function _getAccesstoken()
{
$file = './accesstoken'; //用于保存access token
if (file_exists($file)) { //判断文件是否存在
$content = file_get_contents($file); //获取文件内容
$content = json_decode($content); //json解码
if (time() - filemtime($file) < $content->expires_in) //判断文件是否过期
{
return $content->access_token;
}
//返回access token
}
$content = $this->_request(" . $this->_appid . "&secret=" . $this->_appsecret); //获取access token的json对象
file_put_contents($file, $content); //保存json对象到指定文件
$content = json_decode($content); //进行json解码
return $content->access_token; //返回access token
}
/**
*_getTicket():获取ticket,用于以后换取二维码
*@expires_secords:二维码有效期(秒)
*@type :二维码类型(临时或永久)
*@scene:场景编号
**/
public function _getTicket($expires_secords = 604800, $type = "temp", $scene = 1)
{
if ($type == "temp") { //临时二维码的处理
$data = '{"expire_seconds":' . $expires_secords . ', "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": ' . $scene . '}}}'; //临时二维码生成所需提交数据
return $this->_request(" . $this->_getAccesstoken(), true, "post", $data, ''); //发出请求并获得ticket
} else { //永久二维码的处理
$data = '{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": ' . $scene . '}}}'; //永久二维码生成所需提交数据
return $this->_request(" . $this->_getAccesstoken(), true, "post", $data, ''); //发出请求并获得ticket
}
}
/**
*_getQRCode():获取二维码
*@expires_secords:二维码有效期(秒)
*@type:二维码类型
*@scene:场景编号
**/
public function _getQRCode($expires_secords, $type, $scene)
{
$content = json_decode($this->_getTicket($expires_secords, $type, $scene)); //发出请求并获得ticket的json对象
$ticket = $content->ticket; //获取ticket
$image = $this->_request(" . urlencode($ticket)
); //发出请求获得二维码图像
//$file = "./".$type.$scene.".jpg";// 可以将生成的二维码保存到本地,便于使用
//file_put_contents($file, $image);//保存二维码
return $image;
}
public function valid() //检查安全性
{
$echoStr = $_GET["echostr"];
//valid signature , option
if ($this->checkSignature()) {
echo $echoStr;
exit;
}
}
public function responseMsg()
{
//get post data, May be due to the different environments
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //获得用户发送信息
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
switch ($postObj->MsgType) {
case 'event':
$this->_doEvent($postObj);
break;
case 'text':
$this->_doText($postObj);
break;
case 'image':
$this->_doImage($postObj);
break;
case 'voice':
$this->_doVoice($postObj);
break;
case 'video':
$this->_doVideo($postObj);
break;
case 'location':
$this->_doLocation($postObj);
break;
default:exit;
}
}
private function _doEvent($postObj)
{ //事件处理
switch ($postObj->Event) {
case 'subscribe': //订阅
$this->_doSubscribe($postObj);
break;
case 'unsubscribe': //取消订阅
$this->_doUnsubscribe($postObj);
break;
default:;
}
}
private function _doSubscribe($postObj)
{
$tpltext = '<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[%s]]></Content>
</xml>';
$access_token = $this->_getAccesstoken();
$userInfo = $this->getUserinfo($access_token, $postObj->FromUserName);
$str = sprintf($tpltext, $postObj->FromUserName, $postObj->ToUserName, time(), '欢迎您关注' . 'Geroge Zhang' . '的世界!');
//还可以保存用户的信息到数据库
echo $str;
}
private function _doUnsubscribe($postObj)
{
; //把用户的信息从数据库中删除
}
private function _doText($postObj)
{
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$keyword = trim($postObj->Content);
$time = time();
$textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>";
if (!empty($keyword)) {
// $data_add = "question=" . $keyword;
// $appcode = "2fd264cdc7914b308e51ab986f73fb86";
// $headers = array();
// array_push($headers, "Authorization:APPCODE " . $appcode);
// $contentStr = $this->_request("" . $data_add, false, "GET", '', $headers);
$data_add = urlencode($keyword);
$contentStr = $this->_request(";appid=0&msg=" . $data_add, false, "GET", '', '');
$contentStr = json_de

微信常用的php框架 php处理微信小程序request请求

微信小程序的开发需要掌握哪些开发语言?

1、学习html/css/js三件套

html:超文本标记语言(英语:HyperTextMarkupLanguage,简称:HTML)是一种用于创建网页的标准标记语言。您可以使用HTML来建立自己的WEB站点,HTML运行在浏览器上,由浏览器来解析。

css:css是CascadingStyleSheets的缩写,我们中文称为「串联样式表」,能让我们更精确的控制网页版面的文字、背景、字型等它能让我们只修正一个css文件,便可同时更新众多的网页版面外观及格式,还可以使html的文件内码更精简,缩小档案下载的速度。

js:js是Javascript的缩写形式,而Javascript是一种基于对象和事件驱动并且具有相对安全性的客户端脚本语言。它在Web开发中JS占据着举足轻重的地位,所有交互、逻辑层的代码都应该由它来实现。

2、PHP/JAVA语言开发

对于微信小程序而言,前端程序是唯一差异于网站建设技术的,因此,只要前端程序过得了关,能够写前端的接口,那么您使用PHP,又或者java,以及asp.net的程序语言都是完全支持的。一般对于企业而言,都是采用php程序开发微信小程序;技术要求高一点的可以采用java程序开发。这些开发方式成都锐美网络都已实践,且能保证效果。 我爱编程网

微信小程序常见使用“MINA”框架,ApacheMinaServer是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架,Mina可以帮助开发者快速开发高性能、高扩展性的网络通信应用,Mina提供了事件驱动、异步(Mina的异步IO默认使用的是JAVANIO作为底层支持)操作的编程模型。这个框架为微信小程序的运行提供了丰富的组件和API。微信小程序开发者要学会和掌握小程序的框架结构、数据绑定机制、模板、数据缓存、常用组件和API等相关知识。

微信常用的php框架 php处理微信小程序request请求

php处理微信小程序request请求

微信小程序的js后台只能执行一些简单的逻辑,遇到比较复杂的处理表单数据的功能或者网络功能就需要连接服务器来远程处理,实现方式就是调用小程序的 wx.request() 这一接口。

request请求 就是基本的HTTP请求,可以携带一些表单数据,交给服务器处理。
在小程序中的写法如下:

采用php作为服务器端语言,通过WAMP等框架可以很容易地搭建环境,服务器主要完成对请求数据的处理以及结果数据的返回。

请求数据的获取非常容易,直接访问相应的超全局数组,对于GET方法而言,通过下面的方式即可:

为了方便小程序端数据的处理,结果数据仍通过json格式返回,具体在php中的简单做法就是

这样返回的json数据就为

其中value1,value2等变量可以设置为多维数组,这样通过json_encode() 函数之后就可以得到相应的嵌套的json数据,从而方便处理。

通过php可以很容易地处理微信小程序的request请求,笔者是由于前一段时间需要进行微信小程序的开发,就研究了一下小程序的逻辑,然后尝试用php进行服务端处理,对于简单的请求处理起来觉得还不错,这篇文章可以作为初次接触微信小程序的一个参考。

以上就是我爱编程网整理的微信常用的php框架 php处理微信小程序request请求相关内容,想要了解更多信息,敬请查阅我爱编程网。
与“微信常用的php框架 php处理微信小程序request请求”相关推荐
php框架小程序 php处理微信小程序request请求
php框架小程序 php处理微信小程序request请求

用php如何生成小程序的小程序码在了解小程序开发到底需要多少钱之前,我们先了解下小程序开发的流程与配置等问题,最后我们才能估算小程序的开发成本。先看下小程序开发所需的人力和基本的功能需求,整个流程算下来,小程序定制开发的话,至少需要5万以上,开发周期至少一个月,功能复杂的化话,时间会更长。另外,小程序的正常运营还需服务器配置、域名备案和短信服务等提供基础设施,这部分是按年付费的

2023-09-10 12:33:49
小程序php框架 php处理微信小程序request请求
小程序php框架 php处理微信小程序request请求

微信小程序的开发需要掌握哪些开发语言?1、学习html/css/js三件套html:超文本标记语言(英语:HyperTextMarkupLanguage,简称:HTML)是一种用于创建网页的标准标记语言。您可以使用HTML来建立自己的WEB站点,HTML运行在浏览器上,由浏览器来解析。css:css是CascadingStyleSheets的缩写,我们中文称为「串联样式表」

2023-09-14 15:17:31
微信小程序php开源后端框架 php处理微信小程序request请求
微信小程序php开源后端框架 php处理微信小程序request请求

开发微信小程序需要用到什么技术和框架?首先前端老三样是必须的(HTML,CSS,JAVASCRIPT,如果掌握点es6的知识是最好的)第二熟读微信小程序的开发文档,你就会发现原来小程序就是一个类似于vue的框架(微信内部的一个小框架,我是这么理解的)第三电脑上下载并安装微信开发者工具,方便开发和调试如果需要后台那么需要掌握的就比较多了,后台语言比如java,node,ph

2023-10-06 23:08:29
小程序客服php框架 php处理微信小程序request请求
小程序客服php框架 php处理微信小程序request请求

微信小程序开发用什么语言和框架微信小程序开发一般有php语言和java语言两种语言、html/css/js三件套都要会。微信小程序常见使用“MINA”框架,这个框架为微信小程序的运行提供了丰富的组件和API。微信小程序开发者要学会和掌握小程序的框架结构、数据绑定机制、模板、数据缓存、常用组件和API等相关知识。php处理微信小程序request请求微信小程序的js后台只能执

2023-09-16 07:46:33
小程序后台php框架 php处理微信小程序request请求
小程序后台php框架 php处理微信小程序request请求

怎么在云服布置php小程序后端云服布置php小程序后端方法如下:1、买一个阿里云服务器。2、进入控制台,找到云服务器ECS。3、进入云服务器ECS,点击实例。4、点击更多,然后重置密码,重置密码后重启服务器。5、点击管理,配置好之后返回,云服布置php小程序后端完成。php处理微信小程序request请求微信小程序的js后台只能执行一些简单的逻辑,遇到比较复杂的处

2023-09-18 01:59:48
小程序服务端php框架 php处理微信小程序request请求
小程序服务端php框架 php处理微信小程序request请求

php处理微信小程序request请求微信小程序的js后台只能执行一些简单的逻辑,遇到比较复杂的处理表单数据的功能或者网络功能就需要连接服务器来远程处理,实现方式就是调用小程序的wx.request()这一接口。request请求就是基本的HTTP请求,可以携带一些表单数据,交给服务器处理。在小程序中的写法如下:采用php作为服务器端语言,通过WAMP等框架可

2023-10-04 19:42:55
php微信管理框架 微信小程序开发用什么语言和框架
php微信管理框架 微信小程序开发用什么语言和框架

微信小程序开发用什么语言和框架微信小程序开发一般有php语言和java语言两种语言、html/css/js三件套都要会。微信小程序常见使用“MINA”框架,这个框架为微信小程序的运行提供了丰富的组件和API。微信小程序开发者要学会和掌握小程序的框架结构、数据绑定机制、模板、数据缓存、常用组件和API等相关知识。PHP有哪些流行的框架PHP有哪些流行的框架?PHP有哪些流

2023-09-15 20:52:09
微信小程序php框架哪个好 微信小程序开发语言,微信小程序开发用什么语言
微信小程序php框架哪个好 微信小程序开发语言,微信小程序开发用什么语言

微信小程序开发用什么语言和框架微信小程序开发一般有php语言和java语言两种语言、html/css/js三件套都要会。微信小程序常见使用“MINA”框架,这个框架为微信小程序的运行提供了丰富的组件和API。微信小程序开发者要学会和掌握小程序的框架结构、数据绑定机制、模板、数据缓存、常用组件和API等相关知识。微信小程序的开发需要掌握哪些开发语言?1、学习html/css

2023-10-07 04:53:51