图片 14

php微信开发接入_php技巧_脚本之家,微信公众平台开发

Wechat,想必我们都不素不相识,像支付宝相仿在暗中的退换我们的生活方式。伴随着这种新的生存格局,更多的微服务也开端进入大家的生活,大家得以采纳微信询问银行卡帐单、还款、支付,在最近的一回Wechat合营友人民代表大会上,Tencent向大伙儿服务号开松手荒效用与九大高端级接口,透过那一个接口,开辟者可以兑现利用应用微信摇控TV、双门双门电冰箱、洗烘一体机以至电饭锅,使用Wechat的微支付作用,仍是可以有益地在线购买电影票、手机充钱、收看互连网电视机付费节目等。

生机勃勃、 希图干活

率先步:申请音讯接口

在大众平台网址的高端效率 –
开荒情势页,点击“成为开垦者”开关,填写U中华VL和Token,此中U汉兰达L是开垦者用来选择微信服务器数据的接口U奥迪Q3L。Token可由开荒者大肆填写,用作生成签字(该Token会和接口U奥迪Q7L中包罗的Token实行比对,进而证实安全性)。 

图片 1

 

 

 

上面,就小编个人的询问,简单描述一下Wechat支付的第一步,如何与Wechat服务器对接。

a) 账号

第二步:验证URL有效性

开拓者提交消息后,Wechat服务器将发送GET央求到填写的U景逸SUVL上,GET需要引导几个参数:

参数 描述
signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp 时间戳
nonce 随机数
echostr 随机字符串

开辟者通过考验signature对央求举行校验(上边有校验情势)。若确认本次GET必要来自Wechat服务器,请原样再次来到echostr参数内容,则连接生效,成为开采者成功,不然接入失利。

加密/校验流程如下:
1. 将token、timestamp、nonce三个参数进行字典序排序
2. 将三个参数字符串拼接成一个字符串进行sha1加密
3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

图片 2图片 3

 1  /// <summary>
 2         /// 验证微信签名
 3         /// </summary>
 4         /// <returns></returns> 
 5         /*
 6          * 加密/校验流程如下:
 7             1. 将token、timestamp、nonce三个参数进行字典序排序
 8             2. 将三个参数字符串拼接成一个字符串进行sha1加密
 9             3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
10          */
11         private bool CheckSignature(string strToken)
12         {
13             string signature = System.Web.HttpContext.Current.Request.QueryString["signature"].ToString();
14             string timestamp = System.Web.HttpContext.Current.Request.QueryString["timestamp"].ToString();
15             string nonce = System.Web.HttpContext.Current.Request.QueryString["nonce"].ToString();
16             string[] ArrTmp = { strToken, timestamp, nonce };
17             //1. 将token、timestamp、nonce三个参数进行字典序排序
18             Array.Sort(ArrTmp);
19             string tmpStr = string.Join("", ArrTmp);
20             //对该字符串进行sha1加密
21             tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
22             tmpStr = tmpStr.ToLower();//对字符串中的字母部分进行小写转换,非字母字符不作处理
23             if (tmpStr == signature)//开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。开发者通过检验signature对请求进行校验,若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,否则接入失败
24             {
25                 return true;
26             }
27             else
28                 return false;
29         }

View Code

图片 4图片 5

 1  /*开发者通过检验signature对请求进行校验(下面有校验方式)。
 2          * 若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,
 3          * 则接入生效,成为开发者成功,否则接入失败。*/
 4 
 5 
 6         /// <summary>
 7         /// 返回echoStr
 8         /// </summary>
 9         public void Valid(string strToken)
10         {
11             if (System.Web.HttpContext.Current.Request.QueryString["echoStr"] != null)
12             {
13                 string echoStr = System.Web.HttpContext.Current.Request.QueryString["echoStr"].ToString();
14 
15                 if (CheckSignature(strToken))
16                 {
17                     if (!string.IsNullOrEmpty(echoStr))
18                     {
19                         System.Web.HttpContext.Current.Response.Write(echoStr);
20                         System.Web.HttpContext.Current.Response.End();
21                     }
22                 }
23             }
24         }

View Code

 

想要涉足Wechat支付,第一步正是要提请二个微信徒人号。公众号分为服务号和订阅号。服务号,故名思义,首若是对客户提供服务的,日常是同盟社或者服务产业用的超多,作用相对订阅号要强盛学一年级些,能够自定义客户菜单;但也是有不方便人民群众之处,正是服务号五个月只同意发送一条群新闻。订阅号,主要是提供新闻和音信,日常是媒体用的超多,功效相对服务号要弱一些,但足以每一日发送一条群音信。以下的陈述,都是以服务号为底子。

  1. 在SAE下边注册八个账号。
  2. 在Wechat大伙儿号支付平台地址 https://mp.weixin.qq.com  注册三个Wechat民众号。

其三步:成为开荒者

验证U奥迪Q5L有效性成功后即接入生效,成为开拓者。若是民众号项目为服务号(订阅号只能使用普通音讯接口),可以在大众平台网址中申请认证,认证成功的服务号将获取过多接口权限,以满足开辟者须求。

然后客户每一次向民众号发送消息、可能发生自定义菜单点击事件时,响应UENVISIONL将收获推送。

公众号调用各接口时,经常会获得不错的结果,具体结果可以看见对招待口的印证。重临错误时,可依靠重返码来询问错误原因。全局重回码表明

顾客向民众号发送新闻时,民众号方收到的音信发送者是一个OpenID,是选取客户Wechat号加密后的结果,种种客户对各类大伙儿号有多少个唯意气风发的OpenID。

除此以外请介怀,微信民众号接口只帮助80接口

Wechat民众号报名好以往,大家还供给贰个对外的WEB服务器,方便和Wechat服务器实行数据交互作用。这一步作者就不细讲了,百度和新浪都提供那些服务。

留意:1、个人只好申请到村办项目标订阅号。

登陆Wechat民众平台,在左边包车型大巴导航菜单中选拔“功用”–> “高等成效”,
Wechat为大家提供了二种“编辑形式”和“开荒形式”,这两种形式互斥,即若是张开了“编辑格局”,则供给将“开拓格局”关闭,反之亦然。“编辑格局”又称白痴情势,开采者能够一直在阳台上定蓬花菜单,设置自动还原等效用。这里定义的美食做法成效相比弱,客户点击自定同蒿单后,只可以够过来新闻可能展开叁个网页,要是急需依附客户点击的菜系做一些别的动作,则供给接纳到“开垦方式”。

2、Wechat公众号认证必要300金元。

使用”开荒格局“的前提是您必需申请成为开拓者。

  1. 提请公众号测量检验号地址

先是步要求钦定接受Wechat服务器数据的ULX570L,同时还须要钦赐贰个TOKEN,用于接入时的证实。

第二步要注脚您内定的UHighlanderL的平价,Wechat服务器会像您内定的U安德拉L发送三个GET央求,该央求教导三个参数。

 

开采者通过查看signature对央浼进行校验。若确认这次GET央求来自微信服务器,请原样重回echostr参数内容,则连接生效,成为开辟者成功,不然接入战败。

二、 Wechat公众账号介绍

valid(); class wechatCallbackAPI { private $token = "WEIXIN"; private $appId = "APPID"; private $appSecret = "APPSECRET"; private function checkSignature() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $tmpArr = array($this->token, $timestamp, $nonce); sort; $tmpStr = implode; $tmpStr = sha1; if($tmpStr == $signature) { return true; } else { return false; } } public function valid() { $echoStr = $_GET["echostr"]; //valid signature, option if($this->checkSignature{ echo $echoStr; exit; } } }?>

 图片 6

如上就是本文的全部内容,希望对我们的读书抱有助于,也期待我们多都赐教脚本之家。

 

服务号、订阅号、公司号的牵线(区别) 

1、订阅号:首要偏于为顾客传达资源信息(相通报纸杂志),认证前后都以每日只好群发一条音信;

2、服务号:首要偏于服务交互作用(相似银行,114,提供服务查询),认证前后都是各个月可群发4条消息;

3、集团号:首要用于集团里面通信应用,供给先有成员的电视发表音讯认证才得以关怀成功集团号;

和煦提示:

1、要是想差不离的出殡和下葬消息,到达宣传效果,提出可选取订阅号;

2、假若想实行商品出售,进行商品贩卖,建议可报名服务号;

3、假若想用来保管在那之中国集团业职员和工人、团队,对内接收,可报名公司号。

 图片 7

 

三、 Wechat数据收发原理以至音信数据格式

 

3、1 开拓者方式形成开垦者时的新闻校验原理

开荒者提交音信后,Wechat服务器将发送GET须求到填写的服务器地址U途胜L上,何况带上四个参数(signature、timestamp、nonce、echostr卡塔尔(قطر‎,开采者通过对具名(signature卡塔尔(英语:State of Qatar)的视察,来判断此条音讯的切实地工作。

表明成功未来,开辟者选择顾客新闻的时候,Wechat也都会带上前边多个参数(signature、timestamp、nonce卡塔尔(قطر‎访谈开拓者设置的UEvoqueL,开采者依然通过签订合同的校验剖断音讯的真正。

加密/校验流程如下:

1. 将token、timestamp、nonce多少个参数实行字典序排序

2. 将四个参数字符串拼接成贰个字符串进行sha1加密

3. 开拓者获得加密后的字符串可与signature相比,标记该诉求来源于Wechat

 

3、2 变为开荒者后消息收发的原理

Wechat音信收发原理图:

 图片 8

实则,大家需求做的专门的工作,正是对HTTP央浼,做出响应。也便是得到微信服务器给我们的数码,然后处理后再再次来到去。

 

上图的消息收发进程是如此的:顾客用手提式无线电话机发送二个?给Wechat公众号,Wechat服务器接纳到? 然后组装三个音信发送给大家团结的服务器,我们的服务器苏醒二个时刻,並且将时刻也信守一定的家有家规组装,回复给民众号,民众号所在的服务器再苏醒给客户。

 

 

四、 接入指南

紧接Wechat民众号平台开采,供给依据如下步骤:

1、 填写服务器配置

2、 验证服务器地址的得力

3、 凭仗接口文书档案完成专门的学业逻辑

 

先是步:填写服务器配置

走入Wechat公众平台https://mp.weixin.qq.com

在左边列表中最下方,找到着力配置,点击步向

 图片 9

 

点击启用,即使编辑方式开启了。那就先把编辑格局关闭。

 图片 10

点击“更正配置”开关,依照需求填写。

参数表达:

里头ULANDL是开采者用来选用Wechat音信和事件的接口U杰路驰L。

Token是开拓者自便填写的,但是填写的要与代码中的大器晚成致。Token是用作签字(填写的Token会和接口U智跑L中饱含的Token实行对照,进而证实安全性卡塔尔,Token是为着用来验证发送大家的新闻是或不是来自Wechat服务器。

 

第二步:验证服务器地址的管用

开辟者提供新闻后,Wechat服务器将发送GET供给到填写的服务器地址U翼虎L上,GET诉求带领八个参数:

 

开采者通过查看signature对央求举办校验。若确认本次GET需要来自Wechat服务器,供给原样重回echostr参数的内容。那样就接通成功了,不然接入失败。

 

对接的代码如下:

//得到参数 signature nonce token timestamp echostr

$nonce     = $_GET['nonce'];

$token     = 'imooc';

$timestamp = $_GET['timestamp'];

$echostr   = $_GET['echostr'];

$signature = $_GET['signature'];

//第一步:产生数组,然后按字典序排序

$array = array();

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

sort($tmpArr,SORT_STRING);

//第二步:拼接成字符串,sha1加密 ,然后与signature实行校验

$str = sha1( implode( $tmpArr ) );

//第三步:拿到加密后的字符串与signature相比较 

if( $str  == $signature && $echostr ){

    //第一次接入weixin api接口的时候

    echo  $echostr;

    exit;

}

其三部:依附接口文书档案达成职业逻辑

验证UHighlanderL有效性后即接入生效,成为开拓者。

涉世过第一遍证实后,今后客户每一趟向大伙儿号发送音讯、恐怕产生自定蒿子杆单点击事件时,开荒者填写的服务器配置ULX570L将获取微信服务器推送过来的消息和事件,然后开拓者能够依靠本人专门的学业逻辑举办相应,比如回复音信等。

 

别的供给驾驭的:

1、 顾客向公众号发送新闻时,群众号接到的音信发送者是叁个OpenID,每种客商对各类公众号有叁个唯意气风发的OpenID。

2、 Wechat群众号接口只帮衬80端口

五、 接收平凡新闻

当普通Wechat客户向Wechat大伙儿账号发新闻时,微信服务器将POST新闻的XML数据发送到我们友好的服务器上,也正是我们在Wechat大伙儿平台填写的U福特ExplorerL

 图片 11

 

平常音讯有:文本新闻、图片音信、语言音讯、录制新闻、地理地方音讯。

 

收受文本音信的XML格式

<xml>

    <ToUserName><![CDATA[toUser]]></ToUserName>

    <FromUserName><![CDATA[fromUser]]></FromUserName>

    <CreateTime>1348831860</CreateTime>

    <MsgType><![CDATA[text]]></MsgType>

    <Content><![CDATA[this is a test]]></Content>

    <MsgId>1234567890123456</MsgId>

</xml>

 

当Wechat服务器接纳到客商发送的消息,Wechat服务器再把那条新闻通过XML格式组装后,发送给大家的服务器。那么,假若大家想要回复文本新闻。大家也需求把音信通过XML格式组装好发送给Wechat服务器,Wechat服务器再发送给顾客。

 

过来文本音讯的XML格式:

<xml>

    <ToUserName><![CDATA[toUser]]></ToUserName>

    <FromUserName><![CDATA[fromUser]]></FromUserName>

    <CreateTime>12345678</CreateTime>

    <MsgType><![CDATA[text]]></MsgType>

    <Content><![CDATA[你好]]></Content>

</xml>

实例代码:

 图片 12

 

在乎,$toUser 是指将以此新闻重返给哪个人。因为我们是将音信回复给顾客的,所以

$toUser = $this->postObj->FromUserName;//获取到发送消息给微信公众号的用户openId 

资料处理

新扩张一时素材

公众号平时需求使用一些权且的多媒体素材的景观,比方在行使接口特别是发送音讯时,对多媒体文件、多媒体音信的拿到和调用等操作,是因此media_id来进行的。素材管理接口对全部认证的订阅号和劳务号支付。通过本接口,民众号能够猛增部分一时半刻素材(即上传不时多媒体文件)。

请注意:

1、对于临时素材,每个素材(media_id)会在开发者上传或粉丝发送到微信服务器3天后自动删除(所以用户发送给开发者的素材,若开发者需要,应尽快下载到本地),以节省服务器资源。

2、media_id是可复用的。

3、素材的格式大小等要求与公众平台官网一致。具体是,图片大小不超过2M,支持bmp/png/jpeg/jpg/gif格式,语音大小不超过2M,长度不超过60秒(公众平台官网可以在文章中插入小于30分钟的语音,但这些语音不能用于群发等场景,只能放在文章内,这方面接口暂不支持),支持mp3/wma/wav/amr格式

4、需使用https调用本接口。

 

调用接口地址

 

别的需求专一的主题素材:

1、 文件上传时通过CUTucsonL POST格局提交的,POST内容需倘若数组格式。

 图片 13

2、 上传的文本必得先在你的服务器,然后拿走到上传文件所在服务器的相对路径。况兼供给在相对路线后边加上@以示区分。

3、 在Window服务上,路线分隔符为斜杠,例子:@D:softlogo.jpg

而在Linux服务器上,路线分隔符为反斜杠/ 例子:@/tmp/logo.jpg

 

代码示例:

 图片 14

 

 

获取有时素材

万众号能够使用本接口从Wechat服务器下载偶尔的多媒体素材。

接口调用ULX570L

http央浼情势: GET,https调用

参数表明

参数

是否必须

说明

access_token

调用接口凭证

media_id

媒体文件ID

 

 

 

 

 

回去表达

是的意况下的回到HTTP头如下:

HTTP/1.1 200 OK

Connection: close

Content-Type: image/jpeg

Content-disposition: attachment; filename=”MEDIA_ID.jpg”

Date: Sun, 06 Jan 2013 10:20:18 GMT

Cache-Control: no-cache, must-revalidate

Content-Length: 339721

curl -G
“”

 

 

发送音讯
出殡客服音讯

当客商积极发新闻给民众号的时候(满含发送音讯、点击自定桐花菜单、订阅事件、扫描二维码事件),Wechat将会把新闻数据推送给开辟者,开采者在一段时间内足以调用客性格很顽强在费力劳苦或巨大压力面前不屈消息接口,通过POST二个JSON数据包来发送新闻给普通客户,在48小时内不限量发送次数。此接口首要用来客服等有人工音信处理环节的作用,方便开荒者为顾客提供更为杰出的劳动。

 

调用的接口U景逸SUVL

切实参考文书档案

有关缘何须要客服接口呢?

因为Wechat公众平台向来还没推动手提式有线话机客服端,除了程序的自动回复,运维者还亟需有些人工恢复生机,而人工恢复最近貌似都以透过计算机端操作,有了客性格很顽强在艰难险阻或巨大压力面前不屈接口能够使运转者使用手提式有线电话机回复。

获取顾客基本消息

在关心者与公众号发生音信交互作用后,公众号可得到关心者的OpenID(加密后的Wechat号,每一个客户对各个民众号的OpenID是唯意气风发的。对于不一样民众号,同后生可畏客商的openid不一样)。公众号可由此本接口来依据OpenID获取客户基本消息,包罗别名、头像、性别、所在城市、语言和关切时间。

转自:

发表评论

电子邮件地址不会被公开。 必填项已用*标注