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


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 相关文章推荐
输出控制类
Oct 09 PHP
phpMyAdmin 链接表的附加功能尚未激活的问题
Aug 01 PHP
Thinkphp中的volist标签用法简介
Jun 18 PHP
浅析get与post的一些特殊情况
Jul 28 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
Feb 12 PHP
php实现转换ubb代码的方法
Jun 18 PHP
php给图片加文字水印
Jul 31 PHP
yii2中添加验证码的实现方法
Jan 09 PHP
Yii2针对指定url的生成及图片等的引入方法小结
Jul 18 PHP
PHP实现APP微信支付的实例讲解
Feb 10 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
Aug 09 PHP
laravel返回统一格式错误码问题
Nov 04 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版微信公众平台红包API
2015/04/02 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
2016/12/15 PHP
PHP图片水印类的封装
2017/07/06 PHP
js判断浏览器的比较全的代码
2007/02/13 Javascript
JavaScript 模仿vbs中的 DateAdd() 函数的代码
2007/08/13 Javascript
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
javascript下4个跨浏览器必备的函数
2010/03/07 Javascript
js禁止小键盘输入数字功能代码
2011/08/01 Javascript
基于jquery的一个拖拽到指定区域内的效果
2011/09/21 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
2013/01/08 Javascript
js实现的map方法示例代码
2014/01/13 Javascript
一些老手都不一定知道的JavaScript技巧
2014/05/06 Javascript
jQuery select表单提交省市区城市三级联动核心代码
2014/06/09 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
2014/09/03 Javascript
究竟什么是Node.js?Node.js有什么好处?
2015/05/29 Javascript
javascript实现表单验证
2016/01/29 Javascript
JS基于面向对象实现的多个倒计时器功能示例
2017/02/28 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
浅谈vue引入css,less遇到的坑和解决方法
2018/01/20 Javascript
vue3.0 CLI - 2.5 - 了解组件的三维
2018/09/14 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
js prototype和__proto__的关系是什么
2019/08/23 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
2019/11/04 jQuery
jQuery实现小火箭返回顶部特效
2020/02/03 jQuery
[52:20]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
Python中如何获取类属性的列表
2016/12/26 Python
详解Python pygame安装过程笔记
2017/06/05 Python
PyCharm更改字体和界面样式的方法步骤
2019/09/27 Python
Python无头爬虫下载文件的实现
2020/04/02 Python
Python 必须了解的5种高级特征
2020/09/10 Python
HTML5 device access 设备访问详解
2018/05/24 HTML / CSS
审计主管岗位职责
2014/01/31 职场文书
2014年无财产无子女离婚协议书范本
2014/10/09 职场文书
导游词格式
2015/02/13 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
新学期家长寄语2016
2015/12/03 职场文书