2014-03-07 10:06:31 u013129789 阅读数 916
  • 微信公众平台应用开发(开发模式

    微信公众平台开发教程,该课程内容包括本地调试:业务逻辑测试、消息接收与响应、测试流程;符号表情,微信开发模式,消息加解密等。 讲师:刘运强,网名柳峰,计算机硕士研究生,畅销书《微信公众平台应用开发:方法、技巧与案例》作者。 本课程主要面向有一定Java基础、对微信公众平台开发感兴趣的人员,能够帮助他们入门微信公众平台开发,少走弯路。

    8581 人正在学习 去看看 CSDN讲师

1 申请公众账号

地址mp.weixin.qq.com

    

//注册微信公众平台 需要身份证信息 和 手机号码 

下面是注册完成的微信界面


选择高级功能 关闭编辑模式  选择开发模式 开启 点击进入


2 申请服务器资源

我选择的是新浪的云SAE 使用新浪微博登陆

申请成功后 登陆 SAE 创建新的应用

创建完成后

点击应用进入 创建一个新的版本

上传下面的代码 index.php

?php

define("TOKEN", "weiixn");  //与微信设置的TOKEN一致
$wechatObj = new wechatCallbackapiTest();
if (isset($_GET['echostr'])) {
    $wechatObj->valid();
}else{
    $wechatObj->responseMsg();
}

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;
        }
    }

    public function responseMsg()
    {
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

        if (!empty($postStr)){
            $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($keyword == "?" || $keyword == "?")
            {
                $msgType = "text";
                $contentStr = date("Y-m-d H:i:s",time());
                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                echo $resultStr;
            }
        }else{
            echo "";
            exit;
        }
    }
}
?>

打包上传代码 压缩文件格式zip GZ TRG.GZ 文件大小不能大于20M

扫描自己的微信公众号二维码  关注  输入‘?’ 


返回的是现在的时间




2018-06-22 17:57:18 tym3515 阅读数 570
  • 微信公众平台应用开发(开发模式

    微信公众平台开发教程,该课程内容包括本地调试:业务逻辑测试、消息接收与响应、测试流程;符号表情,微信开发模式,消息加解密等。 讲师:刘运强,网名柳峰,计算机硕士研究生,畅销书《微信公众平台应用开发:方法、技巧与案例》作者。 本课程主要面向有一定Java基础、对微信公众平台开发感兴趣的人员,能够帮助他们入门微信公众平台开发,少走弯路。

    8581 人正在学习 去看看 CSDN讲师

 

微信开发者工具:

当前系统代理不是安全代理?

命令行输入regedit或按快捷键win+R然后输入regedit,打开注册表编辑器------通过下面的路径打开

HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings

这时把里面所有的Proxy开头的项都删除掉,如ProxyEnable,ProxyOverride

 

    删除后电脑一定要注销或者重启

 

微信分享ios:

1,分享配置的参数link中如果有变量,不能是中文如果有中文就会在ios失效,安卓没毛病;

2,imgurl必须是固定的字符串


 
    wx.ready(function(){
        wx.hideMenuItems({
            menuList: ["menuItem:share:qq",
            'menuItem:share:QZone',
            "menuItem:editTag",
            "menuItem:delete",
            "menuItem:copyUrl","menuItem:openWithQQBrowser","menuItem:openWithSafari"]
            // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3 
        });

        wx.onMenuShareAppMessage({
            title: '', // 分享标题
            desc: '', // 分享描述
            link: location.protocol+'//'+location.host+'/', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
            imgUrl: '', // 分享图标
            type: 'link', // 分享类型,music、video或link,不填默认为link
            dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
            success: function () {
                // 用户点击了分享后执行的回调函数
                // alert('分享')
            }
        });
        wx.onMenuShareTimeline({//分享到朋友圈
            title: '', // 分享标题
            link: location.protocol+'//'+location.host+'/', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
            imgUrl:'',// 分享图标
        });   
      

    });

 

2018-11-16 14:58:14 jal517486222 阅读数 897
  • 微信公众平台应用开发(开发模式

    微信公众平台开发教程,该课程内容包括本地调试:业务逻辑测试、消息接收与响应、测试流程;符号表情,微信开发模式,消息加解密等。 讲师:刘运强,网名柳峰,计算机硕士研究生,畅销书《微信公众平台应用开发:方法、技巧与案例》作者。 本课程主要面向有一定Java基础、对微信公众平台开发感兴趣的人员,能够帮助他们入门微信公众平台开发,少走弯路。

    8581 人正在学习 去看看 CSDN讲师

PHP版接入微信开发者模式,进行Token验证


一、登录微信公众号的后台,鼠标滚动到最下方,然后点击开发->基本配置,然后点击绿色的启用按钮,内容不着急填写

在这里插入图片描述


二、下载微信公众平台提供的PHP版本介入实例文件:

这是微信公众平台提供的下载链接,请点击
懒得下载的人可以将下面的代码拷贝下来,放入PHP文件里,命名为configToken.php

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

//define your token
define("TOKEN", "weixin");//此处的TOKEN就是接下来需要填在微信的配置里面的token,需要保持严格一致
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();

class wechatCallbackapiTest
{
	public function valid()
    {
        $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;
		}
	}
}

?>

三、建一个PHP项目,我起的名称叫做WeiXinWeb,将刚才下载的wx_sample文件解压缩,然后重命名为configToken.php(就是我上面的代码)放到项目的根目录中(我的项目中还有其他几个文件都是从git上克隆下来的,你们的项目中没有也没关系,只需要有configToken.php就行了)

在这里插入图片描述


四、将这个项目放到公网能访问的服务器上,开发人员都懂该怎么操作吧,没有服务器的可以自己去各个云购买去,此处默认你有公网服务器


五、回到第一步微信公众平台的开发者的配置下面,点击“修改配置”, 将服务器地址写上你的configToken.php能被访问到的路径,我中间的马赛克是我的服务器域名,你们修改成自己的即可。此处的token就是刚才填在configToken的TOKEN,需要保持严格一致

在这里插入图片描述

到此就大功告成了,分分钟就解决问题,庆祝一下~

2018-08-27 16:20:02 a190943540 阅读数 895
  • 微信公众平台应用开发(开发模式

    微信公众平台开发教程,该课程内容包括本地调试:业务逻辑测试、消息接收与响应、测试流程;符号表情,微信开发模式,消息加解密等。 讲师:刘运强,网名柳峰,计算机硕士研究生,畅销书《微信公众平台应用开发:方法、技巧与案例》作者。 本课程主要面向有一定Java基础、对微信公众平台开发感兴趣的人员,能够帮助他们入门微信公众平台开发,少走弯路。

    8581 人正在学习 去看看 CSDN讲师

最近学习微信开发,测试号的接口配置搞得我头大.

后来看了柳峰老大的微信公众账号开发教程第3篇.简直是曙光.

由于老大的文章是2013年的所以我稍微改动,以ssm框架记录.以防忘记.

首先域名.没有域名的小伙伴下载natapp内网穿透工具(官网有教程).

natapp启动后:

高光部分复制到URL中,后面再追加项目名和请求地址如:

之后就是接收请求,官方文档提示

编辑一个工具类

public class CheckSignature {
    
    static String token = "ligy0510";
    
    /**
     * 签名验证
     * @param signature
     * @param timestamp
     * @param nonce
     * @return
     */
    public static boolean checkSignature(String signature, String timestamp, String nonce) {
        // 1.将token、timestamp、nonce三个参数进行字典序排序
        String[] arr = new String[] { token, timestamp, nonce };
        Arrays.sort(arr);

        // 2. 将三个参数字符串拼接成一个字符串进行sha1加密
        StringBuilder content = new StringBuilder();
        for (int i = 0; i < arr.length; i++) {
            content.append(arr[i]);
        }
        MessageDigest md = null;
        String tmpStr = null;
        try {
            md = MessageDigest.getInstance("SHA-1");
            // 将三个参数字符串拼接成一个字符串进行sha1加密
            byte[] digest = md.digest(content.toString().getBytes());
            tmpStr = byteToStr(digest);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }

        content = null;
        // 3.将sha1加密后的字符串可与signature对比,标识该请求来源于微信
        return tmpStr != null ? tmpStr.equals(signature.toUpperCase()) : false;
    }
    
    /**
     * 将字节数组转换为十六进制字符串
     * 
     * @param byteArray
     * @return
     */
    private static String byteToStr(byte[] byteArray) {
        String strDigest = "";
        for (int i = 0; i < byteArray.length; i++) {
            strDigest += byteToHexStr(byteArray[i]);
        }
        return strDigest;
    }
 
    /**
     * 将字节转换为十六进制字符串
     * 
     * @param mByte
     * @return
     */
    private static String byteToHexStr(byte mByte) {
        char[] Digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
        char[] tempArr = new char[2];
        tempArr[0] = Digit[(mByte >>> 4) & 0X0F];
        tempArr[1] = Digit[mByte & 0X0F];
 
        String s = new String(tempArr);
        return s;
    }

controller中调用CheckSignature

@GetMapping("/check.do")
    @ResponseBody
    public String ckeck(String signature, String timestamp, String nonce,String echostr) {
        if(CheckSignature.checkSignature(signature, timestamp, nonce)){
            return echostr;
        }
        return "";
    }

完成后点击 提交 

成功!!

 

工具类代码均来自:https://blog.csdn.net/godhexin/article/details/81084239  侵删

2018-03-09 14:14:03 qq_38038920 阅读数 854
  • 微信公众平台应用开发(开发模式

    微信公众平台开发教程,该课程内容包括本地调试:业务逻辑测试、消息接收与响应、测试流程;符号表情,微信开发模式,消息加解密等。 讲师:刘运强,网名柳峰,计算机硕士研究生,畅销书《微信公众平台应用开发:方法、技巧与案例》作者。 本课程主要面向有一定Java基础、对微信公众平台开发感兴趣的人员,能够帮助他们入门微信公众平台开发,少走弯路。

    8581 人正在学习 去看看 CSDN讲师

1.  点击打开链接  找到第二步的位置

2.

3.   

   3.1 获取appsecret           3.2  根据要求填写服务器的ip地址 

4.   

     打开修改配置看第五步

5.    根据要求修改下面的内容(注:通过url必选能读取待文件才能成功 )


微信开发

阅读数 60

勉强看看

博文 来自: zhaokang491460192
没有更多推荐了,返回首页