微信公众号平台开发教程_微信公众号制作教程

微信公众号平台开发教程_微信公众号制作教程关键字:微信公众平台开发入门作者:贝创工作室原文:http://www.cnblogs.com/imaker/p/5491433.html背景知识:微信公众平台的开发需要有一定的PHP基础知识,PHP是一种HTML内嵌式的语言,广泛用于网站开发。微信服务器和开发者的服务器间有两种数据传输方式,分别是XML和JSON。其中XML主要用在接受发送普通消息和事件推送…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

 

关键字:微信公众平台开发入门

作者:贝创工作室

原文: http://www.cnblogs.com/imaker/p/5491433.html

 

      背景知识:微信公众平台的开发需要有一定的PHP基础知识,PHP是一种HTML内嵌式的语言,广泛用于网站开发。微信服务器和开发者的服务器间有两种数据传输方式,分别是XML和JSON。其中XML主要用在接受发送普通消息和事件推送中,而用户管理、创建自定义菜单和高级群发等则需要用到JOSN格式数据。

 

在这篇微信公众平台开发教程中,你可以跟着教程一起在整体上感性了解微信公众平台的开发框架,可以帮助你更好的去入手。

我们将使用微信公众账号西安校园创客空间作为讲解的例子,二维码见底部。

这个入门教程将引导你学会完成如下任务:

    1. 申请新浪云计算并创建平台应用
    2. 申请虚拟主机及为微信平台搭建环境
    3. 进入微信公众平台开发模式与接入服务器
    4. 接口的调用与常用功能的实现

 

                                                     第一节

 

申请新浪云计算并创建平台应用

 

    1. 创建新浪云计算SAE应用引擎

      申请新浪云账号

      如果我们使用SAE新浪云计算平台作为服务器资源,并且申请PHP环境+MySQL数据库作为程序运行环境。
      则申请地址为:

      http://www.sinacloud.com/

      直接点击上述网址,可以看到右上角微博登录的链接。

      微信公众号平台开发教程_微信公众号制作教程

      点击进入之后,使用新浪微博账号进行登录 

      微信公众号平台开发教程_微信公众号制作教程

      登录之后,按照提示注册个人信息即可。 

      创建新应用 

      回到首页,在菜单顶部选择 控制台 ,再选择 云应用SAE 

    2. 微信公众号平台开发教程_微信公众号制作教程

      进入SAE应用列表

    3. 微信公众号平台开发教程_微信公众号制作教程

      点击下侧的创建新应用,这时会弹出提示, 禁止放置违法违规内容,点击继续创建,弹出如下窗口。

      微信公众号平台开发教程_微信公众号制作教程

      选择一个未使用的appid,如果老是已经被使用不知道该什么好,就填写你的QQ号或者手机号吧。

      填写二级域名AppID、应用名称、验证码,开发语言选择PHP5.3,全部应用和框架下面选择第一个【PHP 空应用】。然后点击左下方的创建应用

      微信公众号平台开发教程_微信公众号制作教程

      应用创建成功。并自动跳转到应用列表中,可以看到已经有刚才创建的西安校园创客空间这个应用。

      微信公众号平台开发教程_微信公众号制作教程

      创建版本 

      点击刚才创建的应用名称,进入应用主页。

      点击左侧的应用管理下面的代码管理,

      微信公众号平台开发教程_微信公众号制作教程

       

    4.  

      跳转到代码管理

      微信公众号平台开发教程_微信公众号制作教程

      点击右侧的“创建版本”

      微信公众号平台开发教程_微信公众号制作教程

      我创建的是520,但是版本号默认为1,输入后点击创建,会弹出安全登录,需要输入安全密码,如果不知道或者忘记了,就点里面的找回密码,重新设置一下就行了。

      微信公众号平台开发教程_微信公众号制作教程

      验证通过之后,如下所示

      微信公众号平台开发教程_微信公众号制作教程

      到这里,就成功创建了一个域名URL为 http://1.xaxymaker.applinzi.com/ 的应用了,记住你的这个URL,后面开发模式接入时将会用到。

      上传代码 

      下述代码是一个微信接口文件,看不懂没有关系,你把代码拿去直接用就行了,后面你可能慢慢会明白!

    5.  1 <?php
       2 //判断用户发送消息类型 贝创工作室 CopyRight 2016
       3 
       4 
       5 define("TOKEN", "weixin");
       6 // $conn=mysql_connect('localhost','job','G2yI2zFR'); // 使用数据表 a_news
       7 // mysql_select_db('sqljob',$conn);
       8 // mysql_query("SET NAMES 'UTF8'"); 
       9 // mysql_query("SET CHARACTER SET UTF8"); 
      10 // mysql_query("SET CHARACTER_SET_RESULTS=UTF8'");
      11 
      12 $wechatObj = new wechatCallbackapiTest();
      13 if (!isset($_GET['echostr'])) {
      14 // $wechatObj->responseMsg();
      15 $wechatObj->responseMsg();
      16 // $test->jianyan();
      17 }else{
      18 $wechatObj->valid();
      19 }
      20 
      21 class wechatCallbackapiTest
      22 {
      23 public $fromUsername='';
      24 public $toUsername='';
      25 public function valid()
      26 {
      27 $echoStr = $_GET["echostr"];
      28 if($this->checkSignature()){
      29 echo $echoStr;
      30 exit;
      31 }
      32 }
      33 
      34 private function checkSignature()
      35 {
      36 $signature = $_GET["signature"];
      37 $timestamp = $_GET["timestamp"];
      38 $nonce = $_GET["nonce"];
      39 $token = TOKEN;
      40 $tmpArr = array($token, $timestamp, $nonce);
      41 sort($tmpArr, SORT_STRING);
      42 $tmpStr = implode($tmpArr);
      43 $tmpStr = sha1($tmpStr);
      44 
      45 if($tmpStr == $signature){
      46 return true;
      47 }else{
      48 return false;
      49 }
      50 }
      51 
      52 public function responseMsg(){
      53 $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
      54 $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
      55 $fromUsername = $postObj->FromUserName;
      56 $toUsername = $postObj->ToUserName;
      57 $type = $postObj->MsgType;
      58 $event=$postObj->Event;
      59 $Event_Key=$postObj->EventKey;
      60 $mid=$postObj->MediaId;
      61 $link=$postObj->Url;
      62 
      63 $latitude = $postObj->Location_X;
      64 $longitude = $postObj->Location_Y;
      65 $keyword = trim($postObj->Content);
      66 $time = time();
      67 $textTpl = "<xml>
      68 <ToUserName><![CDATA[%s]]></ToUserName>
      69 <FromUserName><![CDATA[%s]]></FromUserName>
      70 <CreateTime>%s</CreateTime>
      71 <MsgType><![CDATA[text]]></MsgType>
      72 <Content><![CDATA[%s]]></Content>
      73 </xml>"; 
      74 if($keyword!=''){ $contentStr=$keyword;}
      75 elseif($type=="image"){
             
             $contentStr="您发送的是图片消息,消息的MediaId是".$mid;}
      76 elseif($type=="voice"){
             
             $contentStr="您发送的是语音消息,消息的MediaId是".$mid;}
      77 elseif($type=="video"){
             
             $contentStr="您发送的是视频消息,消息的MediaId是".$mid;}
      78 elseif($type=="location"){
             
             $contentStr="您发送的是地理位置消息,您的地理位置是:经度".$latitude."维度:".$longitude;}
      79 elseif($type=="link"){
             
             $contentStr="您发送的是链接消息,消息链接为".$link;}
      80 elseif($type=="event" && $event=="subscribe"){
             
             $contentStr="欢迎关注西安校园创客空间的微信公众账号,带你进入奇妙有趣的微信公众号开发之旅";}
      81 elseif($type="event" && $event=="unsubscribe"){
             
             $contentStr="期待您再次关注西安校园创客空间微信公众账号。";}
      82 else{
             
             echo "";}
      83 
      84 $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $contentStr);
      85 echo $resultStr;
      86 
      87 }
      88 
      89 }
      90 
      91 
      92 ?>

      Jetbrains全家桶1年46,售后保障稳定

      我们将使用上述代码与微信公众平台对接。

       

    6. 将上述代码用专业的软件存为utf-8格式的index.php文件后再使用WinRAR压缩为index.zip,或者关注西安校园创客空间微信公众号免费获取为您打包好的丰富微信公众平台开发代码与开发教程。( 直接下载我们已经压缩好的上述代码的zip文件  下载 
    7. 回到SAE的代码管理界面中。

      微信公众号平台开发教程_微信公众号制作教程

      再选择“上传代码包”,点击上传文件,选择刚才的index.zip文件,点击上传,上传成功后中间是一个绿色的横条,如下所示

      微信公众号平台开发教程_微信公众号制作教程

      如果没有绿色的横条,表示上传失败,需要重试。可以考虑在Chrome浏览器下重试一下。

      点击编辑代码按钮,

      微信公众号平台开发教程_微信公众号制作教程

       有时候需要输入自己的安全密码,如果不记得了就点击“找回密码”。

      微信公众号平台开发教程_微信公众号制作教程

      安全验证成功后继续之前的操作。

      我们可以看到index.php已经上传成功,双击可以查看编辑里面的代码

      微信公众号平台开发教程_微信公众号制作教程

      新浪云应用的创建就成功了。

      充值(本步骤可选择性进行)

      新浪云SAE实行的是配额免费+超额付费的方式,相关标准请查看SAE价格体系介绍。初期对于大部分用户来说免费配额已够用,如果您将来使用量比较大建议预先至少充值100元获得10000云豆,以免超额后应用被禁用而影响业务。

 

 

      第二节  申请虚拟主机及为微信平台搭建环境

  1.   申请虚拟主机

         这里我使用的是云邦互联的虚拟空间为大家作以演示,首先,打开网站如下图:

               微信公众号平台开发教程_微信公众号制作教程

 

          然后在右上角按照提示注册即可,选择使用1G的免费空间。

    2、开通空间之后打开控制面板,就可以看到主机信息了。

         微信公众号平台开发教程_微信公众号制作教程

   3、接下来我们用 8uftp 登陆虚拟空间。

       微信公众号平台开发教程_微信公众号制作教程

 

 

    4、登录之后,用 8uftp   将 index.php 文件上传到虚拟空间的根目录中的web文件夹下,如下:

       微信公众号平台开发教程_微信公众号制作教程

      至此,你使用虚拟空间为微信公众平台搭建服务器就成功了,后续只要将实现相应功能的代码通过8uftp上传上去即可。

 

 

 

第三节 启用开发模式与接入服务器

微信公众平台开发模式

高级功能

微信公众平台地址:https://mp.weixin.qq.com

登录微信公众平台后台,在左侧列表中最下方,找到“ 基本配置 ”,点击进入

微信公众号平台开发教程_微信公众号制作教程

进入服务器配置填写框。

微信公众号平台开发教程_微信公众号制作教程

点击“修改配置”按钮,则出现下图。

微信公众号平台开发教程_微信公众号制作教程

此处的URL为上篇中介绍的云应用的域名,而Token在index.php中定义为weixin。EncodingAESKey则不用填,点击“随机生成”让自动生成一个,消息加解密方式选择“明文模式”,然后点击“提交”按钮。

微信公众号平台开发教程_微信公众号制作教程

在弹出的提示框中,点击“确定”

微信公众号平台开发教程_微信公众号制作教程

配置修改后如图所示,再点击“启用”按钮

微信公众号平台开发教程_微信公众号制作教程

询问“是否确定开启服务器配置”,点击“确定”

如果提示“token验证失败”,可以先重次几次,微信服务器有时候不稳定。如果使用新浪SAE可能要求进行实名认证,请先上传身份证进行实名认证并通过审核后再试!

 

 

                   

 

 

                     如果还是失败,请先用微信调试器测试一下url和token是否正确。(直接在百度搜索 会有好多免费的哦)

    1. 微信公众号平台开发教程_微信公众号制作教程

      成功启用后如上图。

      这使的你是否有一股兴奋与惊喜,你已经成功的启用微信开发模式。

       

第四节   接口的调用与常用功能的实现

             

   示例1:API调用之百度翻译

        申请百度翻译API接口

下面介绍如何使用百度翻译 API 制作拥有翻译功能的公众账号。

    1、首先,登陆申请成为百度开发者,申请链接地址为 http://developer.baidu.com/ 。申请成为开发者之后,登陆该网站,在管理控制台的下拉菜单中选择开发者服务管理,如下图所示。

   

  1. 我们通过调用百度翻译的API可以实现英文翻译中文,中文翻译英文,中文翻译日文,日文翻译中文。目前百度AIP支持这三种语言的翻译

    微信公众号平台开发教程_微信公众号制作教程

  2. 首先进入百度翻译的网页,网站如下箭头所示

    微信公众号平台开发教程_微信公众号制作教程

  3. 进入后点击“使用指南”

    微信公众号平台开发教程_微信公众号制作教程

  4. 进入使用智能页面后,网下浏览页面,在页面中间部分,即可看到百度翻译的API接口

    微信公众号平台开发教程_微信公众号制作教程

  5. 根据上面的接口,我们可以构建接口代码:

    http://openapi.baidu.com/public/2.0/bmt/translate?client_id=uA6zT1kh5O1UXvTrUuFjFHiK&q={$keyword}&from=auto&to=auto

    “9peNkh97N6B9GGj9zBke9tGQ”这一串为自己的百度密钥,在百度的应用中心单击基本信息可以看到

    微信公众号平台开发教程_微信公众号制作教程

  6. 关键代码为:

    case “text”;

    $tranurl=”http://openapi.baidu.com/public/2.0/bmt/translate?client_id=uA6zT1kh5O1UXvTrUuFjFHiK&q={$keyword}&from=auto&to=auto”;//百度翻译地址

                    $transtr=file_get_contents($tranurl);//读入文件

    $transon=json_decode($transtr);//json解析

    //print_r($transon);

    $contentStr = $transon->trans_result[0]->dst;//读取翻译内容

    break;

    微信公众号平台开发教程_微信公众号制作教程

  7. 登录手机微信,最后实现的结果如下:

    微信公众号平台开发教程_微信公众号制作教程

     所用代码如下:
 1 <?php
 2 // 百度翻译  贝创工作室  CopyRight 2016 
 3 define("TOKEN", "weixin");
 4 $wechatObj = new wechatCallbackapiTest();
 5 if (!isset($_GET['echostr'])) {
 6     $wechatObj->responseMsg();
 7 }else{
 8     $wechatObj->valid();
 9 }
10 
11 class wechatCallbackapiTest
12 {
13     public $fromUsername='';
14     public $toUsername='';
15  public function valid()
16     {
17         $echoStr = $_GET["echostr"];
18         if($this->checkSignature()){
19             echo $echoStr;
20             exit;
21         }
22     }
23 
24     private function checkSignature()
25     {
26         $signature = $_GET["signature"];
27         $timestamp = $_GET["timestamp"];
28         $nonce = $_GET["nonce"];
29         $token = TOKEN;
30         $tmpArr = array($token, $timestamp, $nonce);
31         sort($tmpArr, SORT_STRING);
32         $tmpStr = implode($tmpArr);
33         $tmpStr = sha1($tmpStr);
34 
35         if($tmpStr == $signature){
36             return true;
37         }else{
38             return false;
39         }
40     }
41 
42     public function responseMsg(){
43         $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
44             $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
45                 $fromUsername = $postObj->FromUserName;
46                 $toUsername = $postObj->ToUserName;
47                 $type = $postObj->MsgType;
48                 $event=$postObj->Event;
49                 $Event_Key=$postObj->EventKey;
50                 $mid=$postObj->MediaId;
51                 $link=$postObj->Url;
52             
53                 $latitude  = $postObj->Location_X;
54                 $longitude = $postObj->Location_Y;
55                 $keyword = trim($postObj->Content);
56                 $time = time();
57                  $textTpl = "<xml>
58                             <ToUserName><![CDATA[%s]]></ToUserName>
59                             <FromUserName><![CDATA[%s]]></FromUserName>
60                             <CreateTime>%s</CreateTime>
61                             <MsgType><![CDATA[text]]></MsgType>
62                             <Content><![CDATA[%s]]></Content>
63                             </xml>"; 
64                             if($keyword!=''){
65                             $id="R90FXoW4OPtCbLkD9Aiaihz0";
66 $url="http://openapi.baidu.com/public/2.0/bmt/translate?client_id=$id&q=$keyword&from=auto&to=auto";
67 $res=file_get_contents($url);
68 $res=json_decode($res,true);
69 $contentStr=$res['trans_result'][0]['dst'];
70 }                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $contentStr);
71                     echo $resultStr;
72   }
73 }
74 ?>

 

 

           

   示例2:API调用之小黄鸡

1、注册simsimi 账号

URL: http://developer.simsimi.com/signUp

微信公众号平台开发教程_微信公众号制作教程

2、 激活账号

微信公众号平台开发教程_微信公众号制作教程

3、 获取API Key

微信公众号平台开发教程_微信公众号制作教程

   4、   具体实现

         调用小黄鸡API 实现

调用simsim($keyword) 函数处理,将其中的“Your API Key” 换成申请到的API Key。

  //小黄鸡   贝创工作室   CopyRight 2016
    public function simsim($keyword){

        $key="41250a68-3cb5-43c8-9aa2-d7b3caf519b1";
        $url_simsimi="http://sandbox.api.simsimi.com/request.p?key=".$key."&lc=ch&ft=0.0&text=".$keyword;
        
        $json=file_get_contents($url_simsimi);  // 把整个文件读入一个字符串中

        $result=json_decode($json,true);  // 对JSON 格式的字符串进行编码

        //$errorCode=$result['result'];  // 调试用

        $response=$result['response'];  // 回复的消息

        if(!empty($response)){
            return $response;
        }else{
            $ran=rand(1,5);
            switch($ran){
                case 1:
                    return "小鸡鸡今天累了,明天再陪你聊天吧。";
                    break;
                case 2:
                    return "小鸡鸡睡觉喽~~";
                    break;
                case 3:
                    return "呼呼~~呼呼~~";
                    break;
                case 4:
                    return "你话好多啊,不跟你聊了";
                    break;
                case 5:
                    return "感谢您关注西安校园创客空间"."\n"."微信号:xaxymaker"."\n";
                    break;
                default:
                    return "感谢您关注西安校园创客空间"."\n"."微信号:xaxymaker"."\n";
                    break;
            }
        }
    }

 

 

       同时,微信公众号还可以实现 天气查询 火车查询 快递查询 会员卡、优惠券、大转盘、微网站、3G相册之类的。微菜单,微网站,微会员,微团购,微调研,微相册,微推送,微统计,微支付,微客服,等等功能。

          

 

 

 以上便是简单的微信公众平台基本教程,如果你用心感悟了,感觉你有所收获了,一切始于实践,请按照教程入手,开启你的微信开发之旅吧!!  如果还有什么不懂的,请扫一扫公众号二维码关注,回复“代码”、“微信教程” …   全部视频教程 代码资料 等着你!!!

微信公众号平台开发教程_微信公众号制作教程

         感谢你的阅读,请用心感悟!希望可以帮到初学的您!!分享也是一种快乐!!!请接力。。。

                               

                                            更多相关教程  传送门  (点击 传送门 即可到达)

 

                               版权声明:本博客内容版权为贝创工作室博客与博客园共有,若您需要引用、转载,需要注明来源及原文链接,如涉及大面积转载,请来信告知,获取授权。

 

转载于:https://www.cnblogs.com/imaker/p/5491433.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/234964.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • tomcat闪退

    tomcat闪退原因:①首先考虑端口占用问题      ②环境变量问题         startup.bat文件默认读取的是系统配置的环境变量         可以修改其环境变量         (1) startup.bat开头加上两句话        SETJAVA_HOME=C:\ProgramFiles\Java\jdk1.8.0…

  • 2268大约是多少_什么是时态

    2268大约是多少_什么是时态小 Q 在电子工艺实习课上学习焊接电路板。一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字 1,2,3… 进行标号。电路板的各个节点由若干不相交的导线相连接,且对于电路板的任何两个节点,都存在且仅存在一条通路(通路指连接两个元件的导线序列)。在电路板上存在一个特殊的元件称为“激发器”。当激发器工作后,产生一个激励电流,通过导线传向每一个它所连接的节点。而中间节点接收到激励电流后,得到信息,并将该激励电流传向与它连接并且尚未接收到激励电流的节点。最终,激励电流将到达一些“终止节点”——

  • 什么是SOAP?SOAP有什么用?什么时候会用到SOAP?[通俗易懂]

    什么是SOAP?SOAP有什么用?什么时候会用到SOAP?[通俗易懂]什么是SOAPSOAP(SimpleObjectAccessProtocol)一般指简单对象访问协议,简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语

  • 步进电机驱动A4988,步进电机驱动程序编写

    步进电机驱动A4988,步进电机驱动程序编写     今天早上6点10分起床,吃完早饭就来到了实验室。经查询,A4988资料如下:  DIR:控制正反转,=1:正转,=0:反转;STEP:接PWM,每个脉冲转对应一个角度;sleep,reset:通常短接;    (RESET这个端口的配置,必须至高电平,否则脉冲被忽视,至于需不需要供地,这个没看板子的线路图,不过不需要自己去共地。所 以你们电机不动的原因不在于共…

  • C# IsBackground作用

    C# IsBackground作用https://blog.csdn.net/snakorse/article/details/43888847要点:1、当在主线程中创建了一个线程,那么该线程的IsBackground默认是设置为

  • 程序员真是太太太太太有趣了

    程序员真是太太太太太有趣了点击上方“程序员小明”,选择“星标”今晚可以不加班!网络上虽然已经有了很多关于程序员的话题,但大部分人对这个群体还是很陌生。我们在谈论程序员的时候,究竟该聊些什么呢?各位…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号