美文网首页程序员
微信公众平台开发-起航篇

微信公众平台开发-起航篇

作者: 不是加多宝的宝 | 来源:发表于2016-05-06 13:51 被阅读856次

      Hello,读者姥爷们,大家好。我是不是加多宝的宝,一个程序员,主要使用的语言是PHP(有时候会写一些android的程序)。我是一个毕业不到两年的大学生,所以也不能说教大家什么,在这里分享一些自己的学习经历,希望和大家一起进步。

      好了,其他的不多说了,本篇的目的是让大家快速入门微信公众平台的api开发。文中案例自然使用我最熟悉的PHP + Mysql作为开发语言和数据库。

      本篇不讲什么是微信公众号等之类的科普内容 和 微信公众号申请相关的内容,相信大家也已经非常熟悉了。本篇主要讲如何接入微信并验证token。

      我们不申请微信公众号,而是使用微信官方提供的 【微信测试号】 作为开发平台。他的好处是:免得浪费你一个邮箱,不用你的微信绑定银行卡,拥有众多的权限,不会让大家申请了订阅号,不认证的话权限就会很少。下面放出微信测试号的地址,只需要使用微信登陆即可。戳这里:)

      登陆完之后会看到一个“测试号管理”的页面,下面我们需要配置一下我们的微信测试号。如下图所示,在测试号管理中我们可以查看我们的appID,appsecret和配置我们的测试号。想要开发,你还需要一个服务器空间 和 域名(注意,微信公众平台接口仅支持80端口)。填写的url必须是公网可访问的才行。token是我们和微信服务器的一个约定字符串,自己随便写就好了。

测试号管理界面部分-1

      然后我们需要编写一个test.php文件传到我们的服务器上来让微信验证我们的接口。(参考文档:《微信文档:接入指南》)当我们提交验证的时候(当然现在还没有编写好验证脚本,不要提交哦)微信服务器会给我们填写的接口URL发送一个GET请求,并传递四个参数:timestamp(时间戳),nonce(一个随机数),signature(微信加密签名),echostr(随机字符串)。例如:

http://www.exmple.com/test.php?timestamp=1472583690&nonce=123456&signature=a1sb2a5d334b&echostr=1a3e2c5b4d80

讲解其中两个参数:

1.signature :这是我们需要验证的加密签名。他是由timestamp,nonce和token(我们自己填写的)按照字典序排序之后拼接成字符串然后用sha1算法加密后的字符串。我们要做的就是把接到的timestamp,nonce和我们定义的token如此操作之后和微信给我们传来的signature做比较。

2.echostr : 它的作用是当我们加密签名验证通过之后输出出来。(只有第一次验证服务器的时候微信才会给我们发送这个参数,以后会利用到这一现象)。

接下来我们开始编码吧。

<?php

define('TOKEN','rainlu');//定义我们的token

$timestamp = $_GET['timestamp'];//接受时间戳

$nonce = $_GET['nonce'];//接受随机数

$signature = $_GET['signature'];//接受签名

$echostr = $_GET['echostr'];//接受随机字符串

$tmpArr = array($timestamp,$nonce,TOKEN);//将时间戳,token,随机数放到数组里,方便排序

sort($tmpArr,SORT_STRING);//字典序排序数组

$tmpStr = sha1(implode($tmpArr));//拼接字符串并用sha1算法加密

if($tmpStr == $signature){

      echo $echostr;//验证成功,输出echostr

      exit;

}else{

      echo 'error';

      exit;

}

      这样,一个最简单的验证脚本就写好了(下一篇我们将优化这个脚本)。下一步将他传入到我们的服务器,然后手动去输入地址看通不通。通的话就回到“测试号管理”页面提交配置,如果提示“token验证失败”,请多提交两次试试,如果还不行就检查自己的脚本看哪里编写的有问题。

      小作业:将验证脚本写到一个微信类中去。

      这一篇到这里就结束了,喜欢的话点个赞啊,投个硬币(并不)啊都可以。

      参考文献:《微信官方文档》 ,《php官方手册》

大家周末愉快,转载请注明出处。by 2016-05-06 over。

相关文章

  • 微信公众平台开发-起航篇

    Hello,读者姥爷们,大家好。我是不是加多宝的宝,一个程序员,主要使用的语言是PHP(有时候会写一些and...

  • 微信公众平台开发(二)网页开发

    以前写过一篇《微信公众平台开发的一点收获》,这一篇说说微信公众平台网页开发的知识。微信公众平台应该是国内最大的开放...

  • 微信开发者

    官网 微信开放平台微信公众平台微信云 微信开发者大本营吧微信开发吧 学习 方倍工作室 微信公众平台开发入门教程_新...

  • 小程序个人总结最佳实践

    一、开发环境 1.成为微信公众平台开发者 成为微信公众平台的开发者,是小程序开发的首要条件。只有成为微信公众平台的...

  • 公众号开发笔记一

    前言 微信公众平台开发: 微信公众平台是提供资讯和服务的平台,其中公众平台开发的接口是提供服务的基础. 在公众平台...

  • 微信小程序开发实战教程(1)--持续更新

    1.成为微信公众平台开发者 成为微信公众平台的开发者,是小程序开发的首要条件。只有成为微信公众平台的开发者,才可以...

  • 01微信公众平台之开发中心

    1.微信公众平台的开发中心 微信公众平台的开发中心 在微信公众平台-开发-服务器配置,设置好服务器地址等配置信息,...

  • 常见问题

    为了帮助开发者快速熟悉微信公众号开发,我们推出了微信公众平台开发者问答系统。 进入微信公众平台开发者问答系统

  • 微信公众平台

    开发文档 微信公众平台测试号申请 微信公众平台接口调试工具

  • 微信公众号开发原理

    微信开发,是指“微信公众号”开发。是使用微信公众平台开发者文档的说明,调用数据接口完成。 原理就是,用...

网友评论

    本文标题:微信公众平台开发-起航篇

    本文链接:https://www.haomeiwen.com/subject/apkjrttx.html