【微信】通过用户交互 获取用户的经纬度

Continue Read..

1.采用weiphp开发的

 

 

Application/Home/Controller/WeixinController.class.php  

文件 里面

//记录地址位置

if ($data['MsgType'] == 'event'  && $data['Event'] = 'LOCATION' ) {

$add['token'] = $w["token"] = $data ['ToUserName'];

$add['openid'] = $w["openid"] = $data ['FromUserName'];

$add['guiji'] = $data['Latitude'].",".$data['Longitude'].",".$data['Precision'];

$add['mTime'] = time();

$guiji = M("dd_guiji");

$row = $guiji->where($w)->find();

if(empty($row)){

$guiji->add($add);

}else{

$guiji->where($w)->save($add);

}

 

 

我新建了一个表来记录  当前用户 的经纬度  openid等

 

/**

*  说明: 根据两点间的经纬度计算距离

*  @param float $lat 纬度值

*  @param float $lng 经度值

*/

 function getDistance($lat1, $lng1, $lat2, $lng2) {

     $earthRadius = 6367000; 

 

     $lat1 = ($lat1 * pi() ) / 180;

     $lng1 = ($lng1 * pi() ) / 180;

 

     $lat2 = ($lat2 * pi() ) / 180;

     $lng2 = ($lng2 * pi() ) / 180;

 

     $calcLongitude = $lng2 - $lng1;

     $calcLatitude = $lat2 - $lat1;

     $stepOne = pow(sin($calcLatitude / 2), 2) + cos($lat1) * cos($lat2) * pow(sin($calcLongitude / 2), 2);  

     $stepTwo = 2 * asin(min(1, sqrt($stepOne)));

     $calculatedDistance = $earthRadius * $stepTwo;

 

     return round($calculatedDistance);

 }

/*

 * 根据客户openid 和配送人的Openid  查询二者之前的距离

 */

 

function getJuli($kehu_openid,$psr_openid){

$guiji = M("dd_guiji");

    $gj['kehu'] = $guiji->where(array("openid"=>$kehu_openid))->order("id desc")->find();

    $gj['peisongren'] = $guiji->where(array("openid"=>$psr_openid))->order("id desc")->find();

    

    

    $k = explode(",",$gj['kehu']['guiji']);

    $p = explode(",",$gj['peisongren']['guiji']);

    $a = getDistance($k[0], $k[1], $p[0], $p[1]);

//    $a = getDistance('39.916155', '116.396885', '39.910329', '116.396443');

    return $a;

    

    

}


 

 

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

【php】数字和字符串互转

Continue Read..
 /**
* 将字符串转换为数组
*
* @param string $data 字符串
* @return array 返回数组格式,如果,data为空,则返回空数组
*/
function string2array($data) {
if($data == '') return array();
@eval("\$array = $data;");
return $array;
}
/**
* 将数组转换为字符串
*
* @param array $data 数组
* @param bool $isformdata 如果为0,则不使用new_stripslashes处理,可选参数,默认为1
* @return string 返回字符串,如果,data为空,则返回空
*/
function array2string($data, $isformdata = 1) {
if($data == '') return '';
if($isformdata) $data = new_stripslashes($data);
return addslashes(var_export($data, TRUE));

/**
 * 返回经stripslashes处理过的字符串或数组
 * @param $string 需要处理的字符串或数组
 * @return mixed
 */
function new_stripslashes($string) {
if(!is_array($string)) return stripslashes($string);
foreach($string as $key => $val) $string[$key] = new_stripslashes($val);
return $string;
}

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

【微信】微信获取openid(必须要用服务号)

Continue Read..
//这里是在微信给用户推送消息的函数里面调用

$psurl = addons_url ( 'PeiSong://PeiSong/peisonglist/');
        $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf7f38b4a13482c18&redirect_uri=".$psurl ."&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
        
        $content = "您有".count($ids)."条新的订单需要配送\n".date("Y-m-d H:i:s")."\n<a href='".$url."'>点击查看</a>";



//这里就是上面函数跳转的链接
虽然是用里面都写的php  但是这是个.html文件

<?php



$code = $_REQUEST['code'];
$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=wxf7f38b4a13482c18&secret=dd6aa3a6618ea6472a6abc1d42020e0d&code=$code&grant_type=authorization_code";

$res = https_request($url);
$result = json_decode($res, true);
function https_request($url, $data = null){
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    if (!empty($data)){
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    }
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $output = curl_exec($curl);
    curl_close($curl);
    return $output;
}

$openid = $result['openid'];

?>



声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

【微信】微信里面加播放器

Continue Read..
<iframe class="video_iframe" style="   z-index:1; " height="200" width="300" frameborder="0"  allowfullscreen="" src="http://v.qq.com/iframe/player.html?vid=w0135hxgaii&amp;width=300&amp;height=200&amp;auto=0"></iframe>

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

【weiphp】获取用户的详细信息

Continue Read..

基于weiphp开发

通过服务号,获取用户的详细信息

 

原理是  先根据服务号获取用户的信息 但是头像文件 微信服务器不能长期保存 所以想办法存到本地

weiphp都是在非图片表 存图片ID的  那么我就把微信图片的地址转成本地的  然后 插入图片表 返回当前id  存入用户表的图片字段

 

1.在用户第一次关注的时候 通过服务号把用户的详细信息加入用户表(Follow)

Application/Common/Model/FollowModel.class.php

 

$m = M("follow");

$dao = $this->getWeixinUserInfo($param ['openid'],$param ['token']); 

$m->where ( $param )->save($dao);

 

 

        // 通过openid获取微信用户基本信息,此功能只有认证的服务号才能用

    function getWeixinUserInfo($openid, $token) {

    //    $param ['appid'] = $GLOBALS ['user'] ['appid'];

    //    $param ['secret'] = $GLOBALS ['user'] ['secret'];

        $param ['appid'] = "wxf7f38b4a13482c18";

        $param ['secret'] = "dd6aa3a6618ea6472a6abc1d42020e0d";

        $param ['grant_type'] = 'client_credential';

        $url = 'https://api.weixin.qq.com/cgi-bin/token?' . http_build_query ( $param );

        $content = file_get_contents ( $url );

        $content = json_decode ( $content, true );

        

        $param2 ['access_token'] = $content ['access_token'];

        $param2 ['openid'] = $openid;

        $param2 ['lang'] = 'zh_CN';

        

        $url = 'https://api.weixin.qq.com/cgi-bin/user/info?' . http_build_query ( $param2 );

        $content = file_get_contents ( $url );

        $content = json_decode ( $content, true );

        return $content;

    }

2.把微信用户的头像转换成本地路径

http://www.cnblogs.com/txw1958/p/weixin77-download-picture.html  参考网址

//直接放微信图片的地址   这里的URL就是上面的$dao ['headimgurl']

function downloadImageFromQzone($url)

{

    $ch = curl_init($url);

    curl_setopt($ch, CURLOPT_HEADER, 0);    

    curl_setopt($ch, CURLOPT_NOBODY, 0);    //只取body头

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    $package = curl_exec($ch);

    $httpinfo = curl_getinfo($ch);

    

    curl_close($ch);

    $imageAll = array_merge(array('imgBody' => $package), $httpinfo); 

    $filename = time ();

    $object = './Uploads/User/'.$filename.'.jpg';

$local_file = fopen($object, 'w');

if (false !== $local_file){

   if (false !== fwrite($local_file, $imageAll["imgBody"])) {

       fclose($local_file);

   }

}

//因为weiphp里面的图片都是已ID的形式存在其他的表的  这里就需要在picture 表里面加一条记录 然后把当前返回的ID 替换 根据OPENID 返回的详细信息 的图片

$Ming = M("picture");

        

        $Madd['path'] = substr($row['headimgurl'],1);

        $Madd['status'] = 1;

        $Madd['md5'] =  md5($Madd['path']);

        $Madd['sha1'] =  md5($Madd['path']);

        $Madd['create_time'] = time();

        $Ming->add($Madd);

        $headimgurl = $Ming->getLastInsID();

return  $headimgurl;

}

 

3.在微信列表上显示图片 

Application/Common/Common/function.php   首先在这个文件里面加一个函数  

//获取对应的图片

 

function get_cover_url_img($cover_id){

    $img = get_cover_url($cover_id);   //因为该文件自带get_cover_url函数  这个函数可以根据图片的id  获取图片的url

    $str = "<img width='50' height='50' src='".$img."'   />";

    return $str;

}

 

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

jquery 分辨率自适应列表内容的高度

Continue Read..

脚本:

//分辨率自适应列表内容的高度

        function ReloadingWindow() {

            var ContentHeight;

            var WindowHeight;

            var HeadHeight;

            var FootHeight;

            WidowHeight = $(window).height();

            HeadHeight = parseInt($("#top").css("height"), 10);

            FootHeight = parseInt($("#footer").css("height"), 10);

            ContentHeight = WidowHeight - HeadHeight - FootHeight;

            //, "height": '"'+ContentHeight / 2 + '!important"' 

            $(".lists-table").css({ "height": ContentHeight / 2, "min-height": ContentHeight / 2 });

        }

$(function () {

//分辨率自适应列表内容的高度

                    $(window).resize(function () {

                        ReloadingWindow();

                    });

                    ReloadingWindow();

});

 

样式:

<style>

        .lists-table{height:0px!important;}

    </style>

HTML:

<div class="lists-table" style="overflow:scroll;overflow-x:hidden;">

。。。内容

</div>

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

【JS】验证文本框只能输入正整数

Continue Read..
onkeypress="return (event.keyCode<=57 && event.keyCode>=49)||event.keyCode==46"  onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')"

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权