2018-09-10 19:36:14 u010785811 阅读数 126
  • 微信支付开发-微信公众号开发12-微信开发php

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

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

开发者ID是默认分配的,传说的AppId,开发过程中经常用到

AppSecret 就是app的key  密钥  改密码在申请的时候出现一次,以后查询不到请牢记,因为微信仅提供的重置接口。不支持找回。

IP白名单是微信和你服务器操作的白名单,如果需要在线小工具测试,最好把你当前电脑的IP也放入白名单。

 

服务器URL地址就是上文中鉴权的地址 包括消息恢复也会通过它。

 

想使用接口首先你要拿到授权,服务号的授权比较全, 订阅号很少,而且大部分接口都有调用次数限制

2019-04-26 11:47:03 qq_41662696 阅读数 625
  • 微信支付开发-微信公众号开发12-微信开发php

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

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

微信公众号开发详细教程

公众号的关键词回复是一个最基本的功能,大部分的关键词回复可以在授权的第三方平台(微微校、腾讯微校等)去进行管理,配置开发服务器之后,微信平台的自动回复和自定义菜单会失效,而在开发服务器里面管理这些又过于繁琐,第三方平台解决了这个问题,而且第三方平台功能很多,如微信公众号上墙功能,可以去看看。

微信公众测试号

URL:验证的时候会携带参数以GET方法去请求这个url。而验证成功之后,微信公众号用户发送数据时,微信服务器会将数据以POST方法发送到这个url。

所以说我们应该写两个相同路径,请求方法不同的controller。

 @RequestMapping(value="/wxserver",method={RequestMethod.GET});
 @RequestMapping(value="/wxserver",produces={"application/xml;charset=UTF-8;"},method={RequestMethod.POST})

普通消息

文本消息事例

<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>
参数 描述
ToUserName 开发者微信号
FromUserName 发送方帐号(一个OpenID)
CreateTime 消息创建时间 (整型)
MsgType 消息类型,文本为text
Content 文本消息内容
MsgId 消息id,64位整型

MsgType:消息类型,文本为text,图片为image,语音为voice等。可以去官方文档里去查看。

推送事件

菜单点击事件事例

用户点击自定义菜单后,微信会把点击事件推送给开发者,请注意,点击菜单弹出子菜单,不会产生上报。

点击菜单拉取消息时的事件推送

推送XML数据包示例:

<xml>
  <ToUserName><![CDATA[toUser]]></ToUserName>
  <FromUserName><![CDATA[FromUser]]></FromUserName>
  <CreateTime>123456789</CreateTime>
  <MsgType><![CDATA[event]]></MsgType>
  <Event><![CDATA[CLICK]]></Event>
  <EventKey><![CDATA[EVENTKEY]]></EventKey>
</xml>

参数说明:

参数 描述
ToUserName 开发者微信号
FromUserName 发送方帐号(一个OpenID)
CreateTime 消息创建时间 (整型)
MsgType 消息类型,event
Event 事件类型,CLICK
EventKey 事件KEY值,与自定义菜单接口中KEY值对应

微信公众号工具包依赖

       <!-- 微信开发工具包 -->
        <dependency>
            <groupId>me.chanjar</groupId>
            <artifactId>weixin-java-mp</artifactId>
            <version>1.3.3</version>
        </dependency>
        <dependency>
            <groupId>me.chanjar</groupId>
            <artifactId>weixin-java-common</artifactId>
            <version>1.3.3</version>
        </dependency>

开发代码

    @ResponseBody()
    @RequestMapping(value="/wxserver",produces={"application/xml;charset=UTF-8;"},method={RequestMethod.POST})
    public  String  receive(HttpServletRequest request, HttpServletResponse response)  throws  Exception{
        //因为微信服务器返回的是xml  所以我们需要解析
        //获取消息流
        WxMpXmlMessage message=WxMpXmlMessage.fromXml(request.getInputStream());
        //消息类型
        String messageType=message.getMsgType();
        if("text".equals(messageType)){
           String res= wxTextReceiveService.receiveText(message);
           return res;
        }
         else if("event".equals(messageType)){
           String res= wxEventReceiveService.receiveClick(message);
          return  res;
        }
         return "";
    }

 

自定义类WxTextReceiveService 中的处理方法

    /**
     * 接收微信用户发送的普通文本消息  并且回复
     */
    @Override
    public String receiveText(WxMpXmlMessage message) {

        String str="";
        String fromUserName = message.getFromUserName();
        String toUserName = message.getToUserName();
        //文本消息  文本内容
        String content = message.getContent();
        
        //将回复消息按格式封装成xml 
        //toUser(fromUserName).fromUser(toUserName)  发送者变成接受者
        WxMpXmlOutTextMessage text = WxMpXmlOutTextMessage.TEXT().toUser(fromUserName).fromUser(toUserName).content("hello word"+content ).build();
        str = text.toXml();
        return str;
    }

 整个简单的交互过程就已经完成了。

2017-03-15 11:07:00 weixin_30877181 阅读数 10
  • 微信支付开发-微信公众号开发12-微信开发php

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

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

---恢复内容开始---

  本人在俩周前接到开发微信公众号的任务,在前辈的帮助下,基本功能已经实现,现在记录下自己的实现过程。

1.首先申请一个微信公众平台接口测试帐号,url:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

2.登入之后,你会发现下图。

其中appID,appsecret是你即将开发的公众号的唯一标识,将来很多操作都需要一个参数Token(俩个小时时效性,过期失效,一天生成上限为2000次),Token就是由appID,appsecret所生成的。怎么生成你可以在http://mp.weixin.qq.com/wiki/14/9f9c82c1af308e3b14ba9b973f99a8ba.html中查到。但在这里,我向大家推荐一个第三方API,他向我们提供了全套的方法,并且很好的解决了Token的时效性,第三方API url https://github.com/liyiorg/weixin-popula

3.生成菜单, https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN,这里面的ACCESS_TOKEN就是上述所说的Token,请求为POST请求,请求参数如下

 或者使用第三方菜单生成工具 http://sdk.weixin.senparc.com/Menu

 

在这里建议自己生成Token,而不是使用他提供的方法。

输入正确的Token会出现下图:

你就可以操作你的菜单(要看好上边对菜单要求

如果你菜单的url 使用是本地的路径,那必须在你自己的测试公众号中配置域名

不带http请求

 

---恢复内容结束---

转载于:https://www.cnblogs.com/yibin-xie/p/6553133.html

2017-06-20 18:26:52 maobois 阅读数 4880
  • 微信支付开发-微信公众号开发12-微信开发php

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

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

问题描述:
微信公众号中点击自定义菜单或者关键字回复获取图文消息的时候第一条消息正常返回。约几秒钟后又继续返回了一条“该公众号暂时无法提供服务,请稍候再试”。感觉就是回复了两次第二次多余。

该问题去年出现过两次,最近四天连续出现。最近四天的每次都是晚上零点之后自行恢复。

调试过程:
修改请求代码 无论何种请求直接返回success(按api推荐的方式)参考微信API

这么修改以后微信公众号对话框中 自定义菜单和关键字获取图文第一条正常返回的消息没有了,仅返回“该公众号暂时无法提供服务,请稍候再试”

期间拿其他账号测试没有问题,把服务器转发url配到另外的测试公众号都正常。唯独这两个号就有异常!

咨询了腾讯客服,说不提供技术支持。叫自行查看API,好生气哦。但是还是要保持微笑。有句MMP不知当讲不当讲。已经快绝望了。

如有遇到过类似经历的童鞋还希望能慷慨指点一二。感激不尽!

如果这个问题能解决一定要去买个鸡腿庆祝一下!

———————–2017年6月21日11:22:00———————-
昨天晚上零点后异常又恢复了。
今天10点半左右又出现这个异常。
试着把服务器系统时间调成23:58:00 再一看居然又正常了。又调回正确的当前时间。还不确定是否是更改了这个生效的。还是偶然又好了。待继续观察!

实践和系统时间没有半毛线关系,也不知为何刚刚那短暂的几分钟内为何又恢复了。

优化了服务器tomcat连接数。15:00重启了服务器问题依旧

2017年6月21日16:57:38
把订阅号服务器转发url配置成本地(用了花生壳)的后 还是同样回复2次 第二次无法提供服务
日志中记录一次请求也只返回一次。没有多次进入方法。没有多次请求。

把测试账号订阅号转发url配置成本地的后 一切正常!
这里让我困惑的是为什么测试的订阅号一切正常。唯独这个订阅号有问题。总感觉是腾讯的bug。

检查到后台显示 接口调用统计,失败率自问题出现的17号之后一直很高!

现在不知道是什么原因导致17号以后接口调用失败率很高!

观察到失败率始终是50%左右,也容易理解,因为每次回复2条消息,第二条就是无法提供服务。所以失败率50%。这里说明是调用了接口的。证明一次请求是有两次调用接口。今天在本地调试的时候一次请求确实只有一次返回。不明白这个第二次请求是哪里来的,真心怀疑是腾讯的bug!

难道和粉丝数有关系吗?粉丝数太大导致的?我猜今天零点以后又会恢复,明天9点多这个问题又会出现。

要被这个问题搞吐了!

我再梳理下

今天把服务器转发url 配到本地上,用花生壳实现的。观察到的依旧是回复两次第二次提示无法提供服务。这说明和我线上服务器没有关系对么?

第二条证据:我把测试订阅号的服务器转发url配成有问题的订阅号线上的,测试订阅号消息回复都正常,说明服务器端是OK的对么?把测试订阅号的服务器转发URL配到本地,测试服务号也正常。 感觉这个异常和账号属性有关系啊!

2014-02-21 15:23:06 ioriliao 阅读数 3342
  • 微信支付开发-微信公众号开发12-微信开发php

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

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

使用客服API就可以了,没错就是使用客服

API,哈哈。。。你懂的。。。




PS

群名称是微信公众平台交流群
  27959149

微信交流公众平台:YCYC0662

二维码:


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