微信开发入门

微信开发需要搭建PHP环境

参考链接:Apache2.2与php5.3.5如何整合?如何能够被使用_百度经验

搭建的过程出现了很多坑,只能小心,重复搭建了,错误原因可能是VC9或VC11环境没有配置的原因,多试试才行。

然后通过基本配置修改微信服务器配置,这样发送的消息就会发送到我们的URL,而不是微信官方的,从而实现自定义微信。

接入微信公众平台开发,开发者需要按照如下步骤完成:

1、填写服务器配置
2、验证服务器地址的有效性
3、依据接口文档实现业务逻辑

第一步:填写服务器配置

登录微信公众平台官网后,在公众平台后台管理页面 - 开发者中心页,点击“修改配置”按钮,填写服务器地址(URL)、Token和EncodingAESKey,其中URL是开发者用来接收微信消息和事件的接口URL。Token可由开发者可以任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)。EncodingAESKey由开发者手动填写或随机生成,将用作消息体加解密密钥。

同时,开发者可选择消息加解密方式:明文模式、兼容模式和安全模式。模式的选择与服务器配置在提交后都会立即生效,请开发者谨慎填写及选择。加解密方式的默认状态为明文模式,选择兼容模式和安全模式需要提前配置好相关加解密代码,详情请参考消息体签名及加解密部分的文档。

此处的URL为自定义的云应用的IP或域名,而Token在index.php中定义为weixin,由你自己定义,也可以为其他的。EncodingAsKey
不用填,可以直接生成,

第二步:验证服务器地址的有效性

开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带四个参数:

signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp 时间戳
nonce 随机数
echostr 随机字符串

在开发者首次提交验证申请时,微信服务器将发送GET请求到填写的URL上,并且带上四个参数(signature、timestamp、nonce、echostr),开发者通过对签名(即signature)的效验,来判断此条消息的真实性。

此后,每次开发者接收用户消息的时候,微信也都会带上前面三个参数(signature、timestamp、nonce)访问开发者设置的URL,开发者依然通过对签名的效验判断此条消息的真实性。效验方式与首次提交验证申请一致。

下面的代码实现了输入一个?返回当前时间的功能,其中valid的方法,是用于验证接口的,responseMsg方法用于返回消息

<?php
/*方倍工作室 http://www.cnblogs.com/txw1958/CopyRight 2013 www.fangbei.org  All Rights Reserved
*/define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
if (isset($_GET['echostr'])) {$wechatObj->valid();
}else{$wechatObj->responseMsg();
}class wechatCallbackapiTest
{public function valid(){$echoStr = $_GET["echostr"];if($this->checkSignature()){header('content-type:text');echo $echoStr;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;}}public function responseMsg(){$postStr = $GLOBALS["HTTP_RAW_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($keyword == "?" || $keyword == "?"){$msgType = "text";$contentStr = date("Y-m-d H:i:s",time());$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);echo $resultStr;}}else{echo "";exit;}}
}
?>

第三步:依据接口文档实现业务逻辑
这里就在于自己开发了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493953.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实现计算机界“大满贯”,芮勇博士再获技术成就大奖

来源&#xff1a;联想研究院近日&#xff0c;国际计算机协会&#xff08;ACM&#xff09;多媒体专委会&#xff08;Special Interest Group on Multimedia&#xff0c;简称SIGMM&#xff09;2018技术成就奖揭晓了。在全球众多的候选人当中&#xff0c;该奖最终花落联想集团首席…

PHP之MVC学习

代码架构进货过程 one&#xff0c;混编 嵌入式脚本语言PHP html与php混编的编码方式 two&#xff0c;显示和逻辑相分离 最后&#xff0c;需要将显示和逻辑的结果放在一起&#xff01; 需要在 php页面&#xff0c;将html代码 载入才可以&#xff01; <?php // 业务…

机器人流程自动化崛起,中国是否准备好迎接智能自动化时代?

来源&#xff1a;亿欧智库摘要&#xff1a;机器人流程自动化&#xff08;Robotic Process Automation, RPA&#xff09;正迅速成为企业改善服务、提高效率和降低成本的关键工具。对此&#xff0c;PWC针对国内RPA市场展开了调查&#xff0c;预计未来45%的工作活动可以实现自动化…

PHP之MVC项目实战

本文主要包括以下内容 类文件自动加载 路径管理 页面跳转 注册自动加载方法 配置文件系统 cookie session 类文件自动加载 在PHP中使用别的类时&#xff0c;需要载入类文件&#xff0c;如果类很多的话&#xff0c;需要重复写很多代码&#xff0c;所以利用__autoload魔法方法…

加州伯克利大学:自动驾驶中虚拟到现实的强化学习|厚势汽车

来源&#xff1a;同济智能汽车研究所UCB 提出了虚拟场景到真实场景的翻译网络&#xff0c;解决强化学习用于自动驾驶虚拟测试中与现实测试的差异。强化学习需要大量的试错&#xff0c;而真实的自动驾驶车辆&#xff08;AV&#xff09;无法提供大量的试错为此 AV 强化学习使用虚…

Effective C++ 第二版 1)const和inline 2)iostream

条款1 尽量用const和inline而不用#define >"尽量用编译器而不用预处理" Ex. #define ASPECT_R 1.653 编译器永远不会看到ASPECT_R这个符号名, 在源码进入编译器之前, 就被预处理程序去掉, ASPECT_R 不会被加入到符号列表中; 编译报错时, 报错信息指向1.653, 让…

PHP之MVC项目实战(二)

本文主要包括以下内容 GD库图片操作 利用GD库实现验证码 文件上传 缩略图 水印 GD库图片操作 <?php$img imagecreatetruecolor(500, 300); //var_dumP($img); // //分配绿色 $green imagecolorallocate($img, 0, 0xff, 0x0); //var_dump($green);//fill $result ima…

2019年机器学习:追踪人工智能发展之路

作者&#xff5c;Hussain Fakhruddin编译&#xff5c;专知整理&#xff5c;Yingying&#xff0c;李大囧摘要&#xff1a;“智能助理”的时代已经到来了。机器学习已经成为全球数字化转型的关键要素之一 ,在企业领域&#xff0c;机器学习用例的增长在过去几年中也是显著的。预计…

PHP之MVC项目实战(三)

本文主要包括以下内容 标准错误错误处理 http操作 PDO 文件操作 标准错误错误处理 PHP在语法层面上发生的错误 两个过程&#xff1a; 触发阶段&#xff08;发生一个错误&#xff09; 处理阶段&#xff08;如何处理该错误&#xff09; 触发阶段 系统触发&#xff0c;…

价值2950亿美元的「量子霸权」,技术水平到了哪个阶段

来源&#xff1a;36Kr摘要&#xff1a;谁掌握了量子计算机&#xff0c;谁就可能引领下一次信息革命。当前经典计算体系&#xff0c;并不能解决所有问题。量子计算将给现有的计算理论带来深刻变革&#xff0c;将极大加深人类对物质与信息的理解&#xff1b;将是一种前所未有的计…

微信开发简单实例

本文主要包括以下内容 1. 微信聊天机器人 微信聊天机器人 利用图灵机器人接口实现微信聊天机器人 <?phpdefine("TOKEN", "weixin"); $wechatObj new wechatCallbackapiTest(); if (isset($_GET[echostr])) {$wechatObj->valid(); }else{$wec…

开放政府数据价值:内涵、评价与实践

来源&#xff1a;《政府数据开放研究》作者&#xff1a;陈美 湖北工业大学经济与管理学院分析开放政府数据的价值与评价&#xff0c;有助于政府数据开放更高效地开展。文章在界定开放政府数据价值内涵与层次划分的基础上&#xff0c;介绍国外开放政府数据价值评价进展&#xff…

Smarty模板技术学习

模板引擎技术&#xff1a;使得php代码和html代码分离的技术就称为“模板引擎技术” 自定义smarty模板技术实现 <?php//迷你smarty原理 class MiniSmarty{public $var_arr array();public $template_dir "./view/";public $compile_dir "./view_c/"…

vc++深入详解学习-NO.3

c的多态性&#xff0c;基于虚函数的多态性技术&#xff0c;在成员函数的定义前面加上virtual关键字申明的函数叫做虚函数&#xff0c;当c编译器在编译的时候&#xff0c;发现类中的虚函数&#xff0c;这个时候c就好采用迟邦定技术&#xff0c;在运行期间依据对象的类型确定调用…

50大产业链全景图(高清完整版)

来源&#xff1a;新材料在线摘要&#xff1a;机器人、无人驾驶、VR、光伏、核电、半导体……50大产业链全景图&#xff0c;让你一次纵观全局。&#xfeff;&#xff08;点击图片查看大图&#xff09;—1—全国各省新材料产业链全景图—2—飞机产业链全景图—3—高铁产业链全景图…

3D打印,智能砖,竹子城市……改变未来建筑业的8项技术

来源&#xff1a;资本实验室科学技术正在彻底改现代生活的方方面面&#xff0c;并且每天都在不断进步&#xff0c;没有任何减速的迹象。绝大多数行业已经并且正在受到技术进步的影响&#xff0c;并越来越接近未来。对于建筑行业而言&#xff0c;以下8种新技术将改变未来建筑业的…

Smarty模板技术学习(二)

本文主要包括以下内容 公共文件引入与继承 内容捕捉 变量调剂器 缓存 Smarty过滤器 数据对象、注册对象 与已有项目结合 公共文件引入与继承 可以把许多模板页面都用到的公共页面放到单独文件里边&#xff0c;通过模板就可以直接调用&#xff0c;类似php里边通过include指令…

分布式服务框架 Zookeeper -- 管理分布式环境中的数据

安装和配置详解 本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础&#xff0c;最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取&#xff0c;Zookeeper 的安装非常简单&#xff0c;下面将从单机模式和集群模式两个方面介绍 Zookeeper 的安装和配置。 单机…

AI“重造”麻省理工学院!今宣布投资10亿美元成立全新计算学院,近70年来最大结构调整...

来源&#xff1a;Deep Tech深科技摘要&#xff1a;近日&#xff0c;世界顶尖名校麻省理工学院通过学校官方网站宣布重磅消息。近日&#xff0c;世界顶尖名校麻省理工学院通过学校官方网站宣布重磅消息&#xff1a;投资 10 亿美元以引领计算机技术和人工智能技术的发展及全球影响…

经验分享:10个简单实用的 jQuery 代码片段

尽管各种 JavaScirpt 框架和库层出不穷&#xff0c;jQuery 仍然是 Web 前端开发中最常用的工具库。今天&#xff0c;向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段。 您可能感兴趣的相关文章精心挑选12款优秀 jQuery Ajax 分页插件分享60款绚丽的 jQuery 幻灯片…