微信公众平台开发之配置与请求


Posted in PHP onAugust 26, 2015

一、配置参数

define('WEIXIN_APPID', 'wxzzzzzzzz');
define('WEIXIN_APPSECRET', 'ouewjdsaudsamkh');
define('WEIXIN_TOKEN', '9973833232232');
define('WEIXIN_NOTIFY_URL', 'http://xx.com/xx/xx');
define('WEIXIN_MCHID', '322221121');
define('WEIXIN_KEY', 'xddsdswewew');

1)微信公众号开发中ID

WEIXIN_APPID: 应用ID

WEIXIN_APPSECRET: 应用密钥

进入到公众平台首页,点击开发者中心,赫然就能看到,配置页面中的,这两个默认就是有的。

2)服务器配置

WEIXIN_TOKEN,也就是token令牌,自定义的,必须为英文或数字,长度为3-32字符。

URL服务器地址,也就说微信公众号的入口地址。在这个页面中,我将做 签名验证 或接收事件消息, 点击查看微信相关文档 。

1、签名验证: 当做修改配置的时候,是需要通过这个地址做签名验证的

2、接收事件消息: 是指当关注的时候推送一些消息过来,以及可以做一些特定的逻辑操作

3)微信支付配置

点击微信支付菜单

WEIXIN_MCHID: 商户号,在商户信息中可以查看到

WEIXIN_NOTIFY_URL: 微信支付异步回调API,可以做更新订单状态,发推送等逻辑

WEIXIN_KEY: 设置这个支付密钥得登录微信支付商户平台,登录后点击进入API安全,然后下载证书和自己设置密钥,就OK了。

二、请求与调试

php中有个很方便的 curl ,这里提下CURLOPT_SSL_VERIFYPEER。一开始没加这个属性,请求微信服务器的时候每次返回数据是false。后面用firefox的HttpRequester模拟请求了一下,可以返回到数据,查找资料后发现要设置下这个属性。

CURLOPT_SSL_VERIFYPEER:是否检测服务器的证书是否由正规浏览器认证过的授权CA颁发的
/**
 * 原始POST
 * @param $url 请求的url地址
 * @param $raw 原始数据,可以为字符串或数组
 * @return mixed 返回请求值
 */
public function rawpost($url, $raw)
{
  $resource = curl_init();
  curl_setopt($resource, CURLOPT_POST, true);
  curl_setopt($resource, CURLOPT_URL, $url);
  curl_setopt($resource, CURLOPT_POSTFIELDS, $raw);
  curl_setopt($resource, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($resource, CURLOPT_SSL_VERIFYHOST, false);
  curl_setopt($resource, CURLOPT_SSL_VERIFYPEER, false);
  //curl_setopt($resource, CURLOPT_HTTPHEADER, array('Expect:'));
  $data = curl_exec($resource);
  curl_close($resource);
  return $data;
}

这里推荐下HttpRequester,这个插件,可以模拟post、get等各种提交,content type也可以选择。

微信开发也提供了在线测试接口的地方。 点击查看微信公众平台接口调试工具 。

在请求调试的时候,微信会返回各种返回码。 点击查看全局返回码说明 。

PHP 相关文章推荐
PHP生成HTML静态页面实例代码
Aug 31 PHP
php 数据库字段复用的基本原理与示例
Jul 22 PHP
浅析PKI加密解密 OpenSSL
Jul 01 PHP
PHP变量内存分配问题记录整理
Nov 27 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
Jan 14 PHP
php 伪静态之IIS篇
Jun 02 PHP
ThinkPHP多语言支持与多模板支持概述
Aug 22 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
Mar 27 PHP
变量在 PHP7 内部的实现(一)
Dec 21 PHP
PHP设计模式之观察者模式实例
Feb 22 PHP
Zend Framework框架中实现Ajax的方法示例
Jun 27 PHP
thinkPHP中U方法加密传递参数功能示例
May 29 PHP
php基础教程
Aug 26 #PHP
php面向对象与面向过程两种方法给图片添加文字水印
Aug 26 #PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
Aug 25 #PHP
百度地图API使用方法详解
Aug 25 #PHP
PHP实现生成唯一会员卡号
Aug 24 #PHP
PHP实现微信发红包程序
Aug 24 #PHP
php 利用socket发送HTTP请求(GET,POST)
Aug 24 #PHP
You might like
如何使用PHP获取网络上文件
2006/10/09 PHP
Codeigniter校验ip地址的方法
2015/03/21 PHP
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
用javascript实现画板的代码
2007/09/05 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
关于全局变量和局部变量的那些事
2013/01/11 Javascript
JavaScript实现的石头剪刀布游戏源码分享
2014/08/22 Javascript
浅谈JavaScript的事件
2015/02/27 Javascript
jQuery采用连缀写法实现的折叠菜单效果
2015/09/18 Javascript
Angular2学习教程之组件中的DOM操作详解
2017/05/28 Javascript
详细分析JS函数去抖和节流
2017/12/05 Javascript
webpack多入口文件页面打包配置详解
2018/01/09 Javascript
微信小程序input框中加入小图标的实现方法
2018/06/19 Javascript
layui的table中显示图片方法
2018/08/17 Javascript
详解jQuery设置内容和属性
2019/04/11 jQuery
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
2019/09/06 Javascript
结合axios对项目中的api请求进行封装操作
2020/09/21 Javascript
vue-cli3配置favicon.ico和title的流程
2020/10/27 Javascript
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
Python标准库defaultdict模块使用示例
2015/04/28 Python
安装ElasticSearch搜索工具并配置Python驱动的方法
2015/12/22 Python
PyCharm 设置SciView工具窗口的方法
2019/01/15 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
2019/08/02 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
python的slice notation的特殊用法详解
2019/12/27 Python
HTML5实现音频和视频嵌入的方法
2018/08/22 HTML / CSS
四年级下册教学反思
2014/02/01 职场文书
餐厅楼面主管岗位职责范本
2014/02/16 职场文书
公司司机岗位职责范本
2014/03/03 职场文书
项目合作协议书
2014/04/16 职场文书
小学生节约用水倡议书
2014/05/15 职场文书
质量负责人任命书
2014/06/06 职场文书
解除租赁合同协议书
2016/03/21 职场文书
Python通过loop.run_in_executor执行同步代码 同步变为异步
2022/04/11 Python
nginx 配置指令之location使用详解
2022/05/25 Servers