PHP微信API接口页面代码

<?php

/**

* wechat php test

*/

//define your token

//定义TOKEN密钥(主要为了桥接微信服务器和自定义服务器)

//"weinxin"可以自己取名,比如取名为weixinabc

define("TOKEN", "weixin");

$wechatObj = new wechatCallbackapiTest();

//调用valid方法,主要用于微信验证。

//(第一步验证)验证完成后,记得加上//进行注销valid()方法。

//$wechatObj->valid();

//(第二步启动回复功能)

$wechatObj->responseMsg();

//wechatCallbackapiTest类,主要用于微信开发验证与回复

class wechatCallbackapiTest

{

//定义验证方法

public function valid()

{

//echostr随机字符串,接收随机字符串

$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

//$GLOBALS可以接受xml数据.

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

//extract post data

if (!empty($postStr)){

/* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,

the best way is to check the validity of xml by yourself */

//安全处理,解析xml时不解析外部实体,防止文件产生泄露(xxe泄露)

libxml_disable_entity_loader(true);

//载入xml文件到字符串

$postObj = simplexml_load_string($postStr, ‘SimpleXMLElement‘, LIBXML_NOCDATA);

//发送者(手机客户端)

$fromUsername = $postObj->FromUserName;

//接受者(微信公众号)

$toUsername = $postObj->ToUserName;

//定义一个接受类型

$msgType=$postObj->MsgType;

//接受到的关键词

$keyword = trim($postObj->Content);

//时间戳

$time = time();

//文本消息xml模板

$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 = "欢迎来到崎沙火山岛旅游信息平台";

$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);

echo $resultStr;

}else{

echo "Input something...";

}

}else {

echo "";

exit;

}

}

//验证数字签名

private function checkSignature()

{

// you must define TOKEN by yourself

//校验TOKEN密钥

if (!defined("TOKEN")) {

throw new Exception(‘TOKEN is not defined!‘);

}

//接收数字签名

$signature = $_GET["signature"];

//接收时间戳

$timestamp = $_GET["timestamp"];

//接收随机数

$nonce = $_GET["nonce"];

//定义$token变量,接收TOKEN密钥

$token = TOKEN;

//把$token,$timestamp,$nonce组成数组

$tmpArr = array($token, $timestamp, $nonce);

// use SORT_STRING rule

//字典法排序

sort($tmpArr, SORT_STRING);

//转换数组为字符串

$tmpStr = implode( $tmpArr );

//通过哈希算法进行加密

$tmpStr = sha1( $tmpStr );

//与发送过来的数字签名$signature进行比对,成功则返回ture,否则返回false!

if( $tmpStr == $signature ){

return true;

}else{

return false;

}

}

}

?>

时间: 2024-08-05 01:38:45

PHP微信API接口页面代码的相关文章

面向对象的全套“企业微信”api接口的代码实现,网上太多“面向过程”微信api接口的代码,这个开源给需要的人用

有段时间没有写文章了. 一直以来,微信的热门是看得到的,很多人都需要与微信的api对接. 今天我这里就分享全套的企业微信api接口的代码. 关于微信api,网上已经有很多实现的了. 但是我今天之所以还写这个,是因为网上基本上找不到面向对象的api接口实现的编程,几乎都是“面向过程”的. 本文章的代码,也许能带给你极大的方便,以及非常方便的扩展和应用. 1.如下图,在你的业务逻辑层中,将本文章附件的Weixin代码文件夹整套放进去 2.在你的页面中,类似于下图,插入下面的代码即可实现调用. 下图例

总结的一些微信API接口

本文给大家介绍的是个人总结的一些微信API接口,包括微信支付.微信红包.微信卡券.微信小店等,十分的全面,有需要的小伙伴可以参考下. 1. [代码]index.php <?php include_once 'lib.inc.php';   $wcObj = new WeChat("YOUKUIYUAN"); $wcObj->wcValid(); 2. [代码]微信入口类 <?php /**  * Description of wechat  *  * @author

微信API接口大全

微信入口绑定,微信事件处理,微信API全部操作包含在这些文件中. 微信支付.微信红包.微信卡券.微信小店. 1. [代码]index.php <?php include_once 'lib.inc.php';    $wcObj = new WeChat("YOUKUIYUAN"); $wcObj->wcValid(); 2. [代码]微信入口类 <?php /**  * Description of wechat  *  * @author Administrato

(微信API接口开发) 使用HttpWebRequest进行请求时发生错误:基础连接已关闭,发送时发生错误处理

最近调试原来的微信模拟登陆时发生了"基础连接已关闭,发送时发生错误"的错误提示,原来都是好好的,只是很久没用了. 出错代码如下: ? 1 2 3 4 5 6 7 HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("https://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm2-login&lang=zh_CN");///cgi-bin/loginpage?

【 微信API接口(全) - 微信支付/微信红包/微信卡券/微信小店/JSAPI】

微信入口绑定,微信事件处理,微信API全部操作包含在这些文件中. 微信支付.微信红包.微信卡券.微信小店. 源码地址 点击阅读 更多java,java学习,java面试题  http://techfoxbbs.com

快递查询API接口调用代码示例

快递查询接口是指快递查询网对外开放的应用程序接口,开发人员能够通过调用该接口与快递查询网进行交互,并基于该接口开发自己的快递查询应用程序.目前比较常用的接口有快递鸟.快递100.快递网等. 应用场景 (1)电商网站用户打开"我的订单"时调用此API显示物流信息详情.  (2)电商管理后台的物流系统,客服在对账前查询所有运单的签收状态,并追踪问题. 物流轨迹查询接口有即时查询和订阅查询两种,即时是请求即返回数据,订阅则是订阅快递单号到接口,有物流轨迹更新则全量返回数据. 快递鸟即时接口可

用python配合微信API接口将微信个人号变为聊天机器人

操作系统:Ubuntu16.04 首先我们先安装itchat: 这里我之前安装过了,先在又安装了一边 使用 python3 -c "import itchat" 检查是否安装成功了 如果没有任何输出,则表明安装成功了 然后我们需要去图灵注册一个账号,来获取key,这里给出链接图灵 现在开始编辑代码 新建一个文件:robot.py 完整代码+注释 1 1 import requests 2 2 import itchat 3 3 4 4 KEY = '××××××××××c24144a5

快递鸟API接口调用代码示例(免费不限量)

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEn

php 登录注册api接口代码

/** *一览(www.yl1001.com) * PHP开发API接口 服务端 */ require 'conn.php'; //连接数据库的文件 header('Content-Type:text/html;charset=utf-8'); $action = $_GET['action']; switch ($action) { //注册会员 case"adduserinfo"; $username = lib_replace_end_tag(trim($_GET['userna