我设置的前提条件:

已购买阿里云服务器,开通了80端口,且网站已备案。

1、在网站文件中新建index.php文件。该文件内容如下:

把 define("TOKEN", "weixin"); 中的weixin,改成自定义字符串,比如 mytoken

  1. <?php
  2. /**
  3. * wechat php test
  4. */
  5. //define your token
  6. define("TOKEN", "weixin");
  7. $wechatObj = new wechatCallbackapiTest();
  8. $wechatObj->valid();
  9. class wechatCallbackapiTest
  10. {
  11. public function valid()
  12. {
  13. $echoStr = $_GET["echostr"];
  14. //valid signature , option
  15. if($this->checkSignature()){
  16. echo $echoStr;
  17. exit;
  18. }
  19. }
  20. public function responseMsg()
  21. {
  22. //get post data, May be due to the different environments
  23. $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
  24. //extract post data
  25. if (!empty($postStr)){
  26.  
  27. $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
  28. $fromUsername = $postObj->FromUserName;
  29. $toUsername = $postObj->ToUserName;
  30. $keyword = trim($postObj->Content);
  31. $time = time();
  32. $textTpl = "<xml>
  33. <ToUserName><![CDATA[%s]]></ToUserName>
  34. <FromUserName><![CDATA[%s]]></FromUserName>
  35. <CreateTime>%s</CreateTime>
  36. <MsgType><![CDATA[%s]]></MsgType>
  37. <Content><![CDATA[%s]]></Content>
  38. <FuncFlag>0</FuncFlag>
  39. </xml>";
  40. if(!empty( $keyword ))
  41. {
  42. $msgType = "text";
  43. $contentStr = "Welcome to wechat world!";
  44. $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
  45. echo $resultStr;
  46. }else{
  47. echo "Input something...";
  48. }
  49. }else {
  50. echo "";
  51. exit;
  52. }
  53. }
  54. private function checkSignature()
  55. {
  56. $signature = $_GET["signature"];
  57. $timestamp = $_GET["timestamp"];
  58. $nonce = $_GET["nonce"];
  59.  
  60. $token = TOKEN;
  61. $tmpArr = array($token, $timestamp, $nonce);
  62. sort($tmpArr);
  63. $tmpStr = implode( $tmpArr );
  64. $tmpStr = sha1( $tmpStr );
  65. if( $tmpStr == $signature ){
  66. return true;
  67. }else{
  68. return false;
  69. }
  70. }
  71. }
  72. ?>

2、回到申请测试号页面,url一栏就填写上一步的文件网址。比如http://xxxxxx/index.php

3、token 就填写 第一步中自定义的字符串,比如 mytoken

微信公众测试号中的url和token的更多相关文章

  1. Thinkphp框架----微信公众测试号开发

    最开始的一个步骤.注册一个微信公众测试号.URL:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login; 接口配置的信息,对新手 ...

  2. 微信公众号中的支付宝支付与微信支付 && 支付宝支付问题(微信bug)

    一般,在微信公众号中的商城都是需要支持微信支付和支付宝支付的,当然,较大的公司对于鹅厂和阿里的站队就不说了,所以这里简单记录一下支付宝支付和微信支付的主要流程.说是简单介绍,这是因为确实不难,因为前端 ...

  3. 微信公众平台中添加qq在线聊天代码

    微信公众平台是个不错的媒体,可以和你的小伙伴们即时交流,但你的小伙伴们是用手机上的微信,打字自然就慢了:有人说用微信网页版,那个也不习惯,再说也不一定所有人都知道网页版微信.(2014.01.22更新 ...

  4. 微信公众平台中临时二维码的scene_id为32位非0整型

    原文:微信公众平台中临时二维码的scene_id为32位非0整型                                        微信公众平台中临时二维码的scene_id为32位非0整 ...

  5. 带领技术小白入门——基于java的微信公众号开发(包括服务器配置、java web项目搭建、tomcat手动发布web项目、微信开发所需的url和token验证)

    微信公众号对于每个人来说都不陌生,但是许多人都不清楚是怎么开发的.身为技术小白的我,在闲暇之余研究了一下基于java的微信公众号开发.下面就是我的实现步骤,写的略显粗糙,希望大家多多提议! 一.申请服 ...

  6. CentOS7+Python3.6利用web.py库进行微信公众平台服务器简易配置,token验证

    1.安装配置Python CentOS7 自带 Python2.7, 我用的是Python3.6.5,需要CentOS7安装配置Python3并和Python2共存的,请看以下教程: CentOS7安 ...

  7. 【云速建站】微信公众平台中维护IP白名单

    [摘要] 介绍获取接入IP白名单的操作步骤 网站后台对接微信公众号.支付等都依赖于白名单,接下来就介绍一下白名单的配置. 1.1      为什么要设置白名单 为了提高公众平台开发者接口调用的安全性, ...

  8. 微信公众号开发 包括服务器配置、java web项目搭建、tomcat手动发布web项目、微信开发所需的url和token验证 2017.12.2

    https://www.cnblogs.com/klmei/p/7060879.html  基础配置很全面

  9. JAVA微信公众号网页开发——将文章群发到微信公众号中(文章使用富文本,包含图片)

    SendTextToAllUserAct.java package com.weixin.sendmessage; import org.apache.commons.lang.StringUtils ...

随机推荐

  1. Seay源代码审计系统使用

    Seay源代码审计系统简介 Seay源代码审计系统使用 如何使用"Seay源代码审计系统"扫描源代码漏洞 Seay源代码审计系统下载安装 github-Seay源代码审计系统

  2. PHP核心配置基础解读

    PHP核心配置 原为引用 <代码审计企业级web代码安全架构>尹毅  第一章内容 Register_globals(全局变量开关) 会直接把用户GET.POST等方式提交上来的参数注册成为 ...

  3. sql字段长度等于

    select count(*) from boc_loan_apply where length(birthday)=7;

  4. 看完这篇还不会 Elasticsearch 搜索,那我就哭了!

    本文主要介绍 ElasticSearch 搜索相关的知识,首先会介绍下 URI Search 和 Request Body Search,同时也会学习什么是搜索的相关性,如何衡量相关性. Search ...

  5. Java-Netty前菜-NIO

    NIO NIO主要有三个核心部分组成: buffer缓冲区 Channel管道 Selector选择器 在NIO中并不是以流的方式来处理数据的,而是以buffer缓冲区和Channel管道配合使用来处 ...

  6. Python命令行参数定义及注意事项

    在命令行中运行python代码是很常见的,下面介绍如何定义命令后面跟的参数. 常规用法 Python代码中主要使用下面几行代码来定义并获取需要在命令行中赋值的参数: import argparse p ...

  7. Ubuntu\Linux 下编写及调试C\C++

    一.在Ubuntu\Linux 下编写及调试C\C++需要配置基本的环境,即配置gcc编译器.安装vim编译器,具体配置安装步骤我在这里就不多说了. 二.基本环境配置完了我们就可以进入自己的程序编写了 ...

  8. 使用django的用户表进行登录管理

    改写用户基本表 ... AUTH_USER_MODEL = 'appjwt.User' ... setting.py from django.db import models from django. ...

  9. PyQt(Python+Qt)学习随笔:QMainWindow的takeCentralWidget对QDockWidget作用案例图解

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 QMainWindow的takeCentralWidget方法作用是将 ...

  10. PyQt编程实战:画出QScrollArea的scrollAreaWidgetContents内容部署层的范围矩形

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 在<PyQt(Python+Qt)学习随笔:QScrollArea滚动区域详解> ...