2016-05-30 14:57:38 sj452857582 阅读数 12697
  • 微信支付开发-微信公众号开发12-微信开发php

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

    27840 人正在学习 去看看 秦子恒
昨天跟朋友谈到微信公众号的事情,说到帮他做一个微信公众号,于是今天在折腾这个,在微信页面添加服务器配置之后,点提交,自己搭建的web服务器收到了微信转发过来的请求,然后按要求返回传过来的随机字符串之后,微信页面提示请求URL超时,于是就觉得很奇怪,服务器已经接收了请求了啊,也返回随机字符串。在网上搜了一下可能是ip变化的原因,因为用的自己电脑做的外网映射,用的nat123工具,可能是这个原因,多提交几次就成功了,只是不稳定而已,前期自己开发测试一下够了。
2013-02-18 13:50:55 AKmumu2010 阅读数 17992
  • 微信支付开发-微信公众号开发12-微信开发php

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

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

注册微信公众平台后要成为开发者,token可以随意定义,url输入的不行就通过不了,会提示url超时,或者你的服务器没有正确响应Token验证,请阅读消息接口使用指南,下面你要有你的主机,写一个php文件,内容如下,将此php文件的url地址写上就ok了


<?php
define ( "TOKEN", "dismath" );
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();

class wechatCallbackapiTest
{
    public function valid()
    {
        $echoStr = $_GET["echostr"];        //随机字符串
        if($this->checkSignature()){
            echo $echoStr;
            exit;
        }
    }
	private function checkSignature() {
      $signature = $_GET ["signature"];
      $timestamp = $_GET ["timestamp"];
      $nonce = $_GET ["nonce"];
      $token = TOKEN;
      $tmpArr = array (
            $token,
            $timestamp,
            $nonce
      );
      sort ( $tmpArr );
      $tmpStr = implode ( $tmpArr );
      $tmpStr = sha1 ( $tmpStr );
      
      if ($tmpStr == $signature) {
        return true;
      } else {
        return false;
      }
    }   
}  



2014-11-10 23:14:57 u010307690 阅读数 1200
  • 微信支付开发-微信公众号开发12-微信开发php

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

    27840 人正在学习 去看看 秦子恒
域名了一半天,后来将mysql  地址改为 127.0.0.1后来就好了
2017-07-17 23:29:00 lxw1844912514 阅读数 14
  • 微信支付开发-微信公众号开发12-微信开发php

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

    27840 人正在学习 去看看 秦子恒
原因在index.php入口文件中必须有define('APP_NAME', 'Weixin');
服务器url:http://bxu2713700584.my3w.com/Weixin/Index/index
2018-12-26 14:35:41 lxc_yinfengpolang 阅读数 674
  • 微信支付开发-微信公众号开发12-微信开发php

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

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

这段时间研究微信公众号,发现了很多坑,现在贴出来做个记录

1、微信公众号在做开发的时候,首先就是对微信的服务接口的配置。让微信能够响应我们的接口。官方的接口文档吧可以这么说,你懂的或者了解他了吧可以说简单些,但是当你刚接触的时候,你会感觉写的是啥啊,压根看不懂。

好了步入正题

首先接口配置,这个就不多说了,图上标的很清楚

这个配置好了就是后台接收微信的 验证参数了先来看看微信对这个接口的说明吧

就四个参数,你需要对这几个参数进行加解密啊等操作,然后确认是不是微信发送来的请求,完事后,看到图片上标红的地方了吧,原样返回。

1、什么是原样返回,我接收的string类型,那么我这个接口返回spring类型就ok了,但是问题来了 验证token是吧

2、继续怀疑微信发来的参数都是加密的,需不需要给他解密下返回原来样子了(猜想,但是我明显勾选的的是明文啊),还是token验证失败

3、换个思路,是不是我这就return这种echostr不对了。那就像原来最老的那种返回,咱们把参数直接write到response里面

上图

@GetMapping("/welcome")
  public void checkName(@RequestParam(name = "signature") String signature,
                        @RequestParam(name = "timestamp") String timestamp,
                        @RequestParam(name = "nonce") String nonce,
                        @RequestParam(name = "echostr") String echostr,
                        HttpServletResponse response) throws IOException, AesException {
      System.out.println("-----------------------开始校验------------------------");
      //排序
      String sortString = CheckoutUntil.sort(TOKEN, timestamp, nonce);
      //加密
      String myString = CheckoutUntil.sha1(sortString);
      //校验
      if (myString != null && myString != "" && myString.equals(signature)) {
          System.out.println("签名校验通过");
          //如果检验成功原样返回echostr,微信服务器接收到此输出,才会确认检验完成。
          PrintWriter out = null;
          try {
              out = response.getWriter();
              // 通过检验signature对请求进行校验,若校验成功则原样返回echostr,否则接入失败
              out.print(echostr);
          } catch (IOException e) {
              e.printStackTrace();
          } finally {
              out.close();
          }
      }

这样返回,发现验证成功了。

网上的说法五法八门的,有的说是要返回xml文本,有的说返回的格式不对,还有的说返回的编码格式不对。最后这种直接写的方法我是配置成功了。后来有人问我为啥一直配置失败,我把我的这个给他,反正他也成功了,记录下。你要成功了点个赞吧哈哈哈 

 

 

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