微信登录58同城代码

微信登录58同城代码_第1张图片

根据上图所示,我们需要准备的代码不是单一的,而是好几个配合的。代码有:ajax长连接的js代码、ajax长连接数据判断代码、微信公众号api配置、微信二维码生成代码、数据库处理代码等。

效果就如http://ce.67zixue.com

要实现这功能需要用到六个文件分别处理数据,和一个sql数据库

文件分别有:index.php,wxqr.php,send.php,weixin.php,config.php,wxlogin.php

数据库:67zixue_ce.sql


首页当然就是index.php










用微信扫我登录



微信二维码生成文件wxqr.php




微信服务器处理代码weixin.php


valid();
$wechatObj->responseMsg();

class wechatCallbackapiTest
{
	public function valid()
    {
        $echoStr = $_GET["echostr"];

        //valid signature , option
        if($this->checkSignature()){
        	echo $echoStr;
        	exit;
        }
    }

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

      	//默认处理代码
		if (!empty($postStr)){
                libxml_disable_entity_loader(true);
              	$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                $fromUsername = $postObj->FromUserName;
                $toUsername = $postObj->ToUserName;
                $keyword = trim($postObj->Content);
                $eventkey = $postObj->EventKey;
                $time = time();
                $textTpl = "
							
							
							%s
							
							
							0
							";             

				$msgType = "text";
				/*组装反馈的内容*/
				$login_url = "http://ce.67zixue.com/wxlogin.php?login_token=$eventkey&user=$fromUsername";	//$eventkey就是带参数的二维码扫描后反馈的login_token
				//参考网站http://mp.weixin.qq.com/wiki/2/5baf56ce4947d35003b86a9805634b1e.html#.E6.89.AB.E6.8F.8F.E5.B8.A6.E5.8F.82.E6.95.B0.E4.BA.8C.E7.BB.B4.E7.A0.81.E4.BA.8B.E4.BB.B6
				$contentStr = "点击登录";
				//html组装,用a标签,不多说
				/*组装反馈的内容*/
				$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
				echo $resultStr;


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

?>



微信反馈的页面wxlogin.php



登录成功



最后就是我们的配置文件,config.php 进行各种数据配置的配置




最后就是sql文件了,67zixue_ce.sql


-- phpMyAdmin SQL Dump
-- version 3.3.7
-- http://www.phpmyadmin.net
--
-- 主机: localhost
-- 生成日期: 2015 年 05 月 04 日 12:33
-- 服务器版本: 5.5.36
-- PHP 版本: 5.2.17p1

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- 数据库: `67zixue_ce`
--

-- --------------------------------------------------------

--
-- 表的结构 `ajax`
--

CREATE TABLE IF NOT EXISTS `ajax` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `token` varchar(255) DEFAULT NULL,
  `ticket` varchar(32) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=30 ;

-- --------------------------------------------------------

--
-- 表的结构 `token`
--

CREATE TABLE IF NOT EXISTS `token` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `token` varchar(128) DEFAULT NULL,
  `time` varchar(32) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=179 ;



代码呢~留个言~

点我下载

那个微信的配置如下图,仅供参考

微信登录58同城代码_第2张图片

转自67自学网

你可能感兴趣的:(微信登录58同城代码)