2015-08-01 08:20:30 Iccmo 阅读数 857
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27747 人正在学习 去看看 秦子恒

               

   目录

   一、申请微信公众账号

   二、申请空间并上传代码

   三、接入微信公众平台

   四、发送一条微信信息并得到回复

没玩过微信公众账号的朋友看完之后也可以打造自己的微信公众号了。

 下面是今天要实现的效果:

 


  下面咱们来一步一步讲解。

  马上动手来搭建我们的微信公众号吧!


一.申请微信公众账号

①.如果你还没有自己的微信公众号,赶紧去注册一个 点击这里去注册(是微信公众号哦,不是微信号)如果你已经申请了,请跳过着一步,直接看第二步。

 

点击上面的蓝色字体,跳转到如下页面。

 

② 填写基本信息,如下图所示



③到我们的邮箱所填写的邮箱去激活

④选择我们的公众号类型,如果我们只是个人拿来玩玩的话,我们选择订阅号就可以了,服务号是一个单位或组织申请的,如果你想玩服务号的话呢,也可以.直接花十几块钱在淘宝买一个(万能是淘宝\(^o^)/~)。 

   


⑤最后一步

到这里我们的公众账号就注册好了。因为我之前注册过,所以身份证实名验证就不用了,一个身份证可以申请5个微信公众账号,之前实名认证的时候得等几天,如果你不想等,直接淘宝一个好了,到这里咱们的微信公众账号就注册号了

 

 

 

 二.申请空间

 △ 什么是空间?

  空间就是服务器或者虚拟主机,通俗一点讲就是咱们待会放代码的地方。如果想深入了解,请自行百度。

现在有很多免费的空间或者虚拟主机,比如新浪的SAE新浪云,百度的BAE,万网阿里云京东云各种云什么的。

貌似现在都不免费了( ⊙ o ⊙ )!。

咱们来申请一个新浪的SAE。

①点击新浪云跳转到注册页面。

用你的微博账号登录。登录之后填写基本信息。注意:要记住你填写的安全密码,后面会用到,这里有一张图我少截了。

注册成功之后点击进入用户中心,再点击导航栏上面的控制台,选择云应用SAE

跳转到如下界面:点击创建新应用

下面开始来创建我们的应用,也就是我们放代码的地方。域名你随意填,开发语言选PHP5.3。本篇主要用PHP开发。简单容易,快速上手。然后选择空应用。点击创建新应用。

到这里我们的空间就申请并创建好了。O(∩_∩)O哈哈~

三.接入微信公众平台

首先我们来弄清楚微信公众号的通信原理。

当我们给微信公众账号发一个消息的时候,这个消息是去了哪里,最后回复的消息是怎么回到咱们的手机的。

看看下面这种图。

 

当我们发送一条消息出去的时候,这条消息首先到了微信的服务器,微信的服务器收到消息之后处理之后再转发到我们的微信公众平台,咱们的微信平台接收到消息之后再处理然后返回一条处理结果给微信公众平台,微信公众平台再发给我们手机客户端的微信。微信的服务器只是起的转发的作用。  

那微信公众平台和我们的公众平台是怎么通信的呢.下面我们就来配置一下,把我们的微信公众账号接入微信公众平台。

 

①上传代码到新浪云SAE


   登录到咱们的新浪云,点击之前创建好应用(图中画线的地方)。




点击代码管理   

             

点击右边的创建一个新版本按钮

                      输入之前设置的安全密码。

跳转之后点击操作 选择上传代码包。(代码包在这里点击下载) 点击上传附件。   跳转之后咱们把这个链接给复制下来:

http://1.myiccmo.sinaapp.com/

到这里,代码上传完成。

登录咱们之前注册号的微信公众账号。

点击开发者中心

                                

勾选我同意,成为开发者。


            

跳转之后往下拉,点击修改配置。到这里可能会跳转到资料不全跳转到不全资料界面。我们把资料补全再返回上一步。


设置地址的时候注意要设置到具体的地址,这一步的截图我就不贴了。

继续返回开发者中心,点击修改配置。 

△注意:  这里的URL填刚才我们刚才复制的url。

   Token填写:weixin(待会再解释为什么)。

 EncodingAESKey:点击随机生成

 消息加密方式:选择明文。然后提交。

这里需要注意的是,可能会出现Tonken验证失败。

为什么会出现这个情况呢?因为你的SAE没有实名认证,然后在验证接口的时候,sae给微信服务器多回复了一些js代码。那怎么解决这个问题呢。有两种办法:一.实名认证,2.最直接最快最有效的就是:在输出 $echoStr之前加上header('content-type:text')。

四 .万事具备,咱们来玩一把

      用咱们的微信关注咱们的微信公众号,咱们随便发送一条消息,它就会给咱们返回同样的消息。

今天就写到这里了,如果有什么问题,联系我:qq:648988391备注:iccmo,QQ群:429207338,定期分享资料。

下面是完整的代码:

 

<?php
/**
  * wechat php test
  */




//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
if (isset($_GET['echostr'])) {
    $wechatObj->valid();
}else{
  $wechatObj->responseMsg();  
}





class wechatCallbackapiTest
{
 public function valid()
    {    




        header('content-type:text');
        $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
  $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 */
                libxml_disable_entity_loader(true);
               $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                $fromUsername = $postObj->FromUserName;
                $toUsername = $postObj->ToUserName;
                $keyword = trim($postObj->Content);
                $time = time();
                $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 = "Welcome to wechat world!";
                 $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
        if (!defined("TOKEN")) {
            throw new Exception('TOKEN is not defined!');
        }
        
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
          
  $token = TOKEN;
  $tmpArr = array($token, $timestamp, $nonce);
        // use SORT_STRING rule
  sort($tmpArr, SORT_STRING);
  $tmpStr = implode( $tmpArr );
  $tmpStr = sha1( $tmpStr );
  
  if( $tmpStr == $signature ){
   return true;
  }else{
   return false;
  }
 }
}




?>






2013-06-20 15:44:47 iteye_21288 阅读数 33
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27747 人正在学习 去看看 秦子恒
2014-03-14 11:03:24 u013961450 阅读数 43
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27747 人正在学习 去看看 秦子恒
本系列属作者原创,请尊重作者的劳动成果,转载请注明出处 , 谢谢!

我的博客地址:[url]http://blog.csdn.net/qicong7[/url]

[b][color=red][size=large]免费的专业微信开发教程&源码: [url]www.weixinpy.com[/url][/size][/color][/b]


前3篇文字主要介绍了通过微信公众平台中的微信公众账号如何添加消息、菜单等;描述的比较简单,相信很多朋友看着觉得太基础;但是只有了解微信公众平台提供的基本功能,我们再进行公众账号接口进行开发才能更得心应手;

从这篇文章开始,我们就开始详细的介绍微信开发者,以及提供一些设计思路、开发源码等。今天主要介绍开发入门一些知识。

一、微信公众账号消息原理图

如果一个用户关注了公众账号,那么当给公众账号发送消息的时候,公众账号就会回复一条消息,原理如上图,这个是通过微信公众平台服务器实现的,对于收到的消息的详情页面也是由微信公众平台提供的;

详细的流程是这样的:

1、当用户给公众账号发送一条消息的时候,微信公众平台会根据公众账号定义的消息规则回复用户一条消息;

2、用户接收到消息后,查看消息详情,详情页面由微信公众平台服务器提供;

那么开发者公众账号的原理是什么样的呢?

二、微信公众账号开发者原理图

从上图可以看出,对于开发者账号来说,消息的回复、消息详情页面都是由开发者服务器提供的;

详细的流程是这样的:

1、当用户给公众账号发送一条消息的时候,微信公众平台会判断该账号是否是开发者账号,并且是否开通了开发者模式,

2、如果不是开发者账号或者使用的编辑模式,那么微信公众平台就会回复用户一条消息; 消息的详情页面也是由微信公众平台提供;

3、如果是开发者账号并开通了开发者模式,那么微信公众平台会把用户发送过来的消息转发给开发者服务器url(成为开发者时需要提供url和tocken);开发者服务器这时候根据用户发送的消息,准备消息回复给用户,也就是说开发者可以根据自己的业务准备消息,可以是图文、文本、图片、视频 等等格式,也可以是多条消息; 消息准备完毕后,将消息发送给微信公众平台,微信公众平台再返回给用户;用户收到消息后,查看消息详情的时候,消息详情页面由开发者服务器提供;

三、成为开发者账号需要什么?

这也是很多朋友经常问的,现在在这里做一下解释:

从上图可以看出如果成为开发者账号需要有自己的服务器,那么还需要哪些必须的条件呢?

1、开发者服务器;

此服务器要求可以在外网访问到,主要是微信公众平台需要调用开发者服务器的url,

2、开发者当然要会编码(IT从业人员);

针对用户发送的消息,公众账号需要准备回复消息,此消息需要通过调用微信公众平台的接口实现,所以开发者需要懂编程技术,调用微信公众平台消息接口,回复给用户;

3、部属开发者账号应用;

此应用主要是和微信公众接口对接,实现消息接收、回复、菜单创建、获取订阅用户信息、auth2.0认证、支付等等;并且此应用需要提供一个网页,展现消息的详细信息;

四、URL 和 Tocken

关于url 和 tocken,很多朋友都问这个到底是什么?

url:开发者服务器应用提供的一个网址,微信公众平台可以访问到这个网址,这样微信公众平台服务器和开发者服务器才可以通信;此url必须是外网可以访问到;

tocken:我们只给微信公众平台提供了一个url还是不够的,还需要一个标记(tocken),此tocken和url代表唯一的公众账号;

当我们提供给了微信公众平台url 和 tocken之后,公众平台会请求这个url,并发送一些数据(echostr、signature、timestamp、nonce),开发者服务器收到微信公众平台发送的数据后,进行处理加密核对数据(signature),然后将echostr发送给微信平台公众,微信公众平台进行校验,如果正确,那么就成功成为开发者了;

关于url 和 tocken 的详细设计,我们下一篇进行详细描述;敬请期待
2018-01-18 14:19:45 BuFanQi_Info 阅读数 380
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27747 人正在学习 去看看 秦子恒

公众号

本文笔者采用的公众号为订阅号,开发为微信测试号

公众号申请

笔者可在微信公众平台申请公众号

测试号申请

  • 申请测试号
    这里写图片描述
    这里写图片描述

开发配置

公众号基础配
模板消息配
API接口权限
网页授权配置

2019-04-02 23:01:34 weixin_38361347 阅读数 90
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27747 人正在学习 去看看 秦子恒

微信测试账号申请

由于用户体验和安全性方面的考虑,微信公众号的注册有一定门槛,某些高级接口的权限需要微信认证后才可以获取。

所以,为了帮助开发者快速了解和上手微信公众号开发,熟悉各个接口的调用,我们推出了微信公众帐号测试号,通过手机微信扫描二维码即可获得测试号。

打开网址扫码登陆 :

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421137522

然后设置自己的服务器地址和 token

在这里插入图片描述

没有更多推荐了,返回首页