澳门娱乐6165並且填写oauth2的回调地址

作者:澳门娱乐

创建卡卷:
public function createcard(){//新建卡卷
    $appid=C('APPID');
         $appsecret=C('SCRETID');
        $asstonek = $this->get_token($appid,$appsecret);
        $url = ";
        $pjson ='{ "card": {
"card_type": "GROUPON",
"groupon": {
"base_info": {
"logo_url":
"",
"brand_name":"海底捞123",
"code_type":" CODE_TYPE_TEXT ",
"title": "132 元双人火锅套餐",
"sub_title": "",
"color": "Color010",
"notice": "使用时向服务员出示此券",
"service_phone": "020-88888888",
"description": "不可与其他优惠同享n 如需团购券发票, 请在消费时向商户提出n 店内均可
使用,仅限堂食n 餐前不可打包,餐后未吃完,可打包n 本团购券不限人数,建议 2 人使用,超过建议人
数须另收酱料费 5 元/位n 本单谢绝自带酒水饮料",
"date_info": {
"type": 2,
"fixed_term": 30,
"fixed_begin_term": 0
},
"sku": {
"quantity": 500000
},
"get_limit": 3,
"use_custom_code": false,
"bind_openid": false,
"can_share": true,
"can_give_friend": true,
"location_id_list" : [123, 12321, 345345],
"custom_url_name": "立即使用",
"custom_url": "",
"custom_url_sub_title": "6 个汉字 tips",
"promotion_url_name": "更多优惠",
"promotion_url": "",
"source": "大众点评"
},
"deal_detail": "以下锅底 2 选 1(有菌王锅、麻辣锅、大骨锅、番茄锅、清补凉锅、酸菜鱼锅可
选):n 大锅 1 份 12 元n 小锅 2 份 16 元n 以下菜品 2 选 1n 特级肥牛 1 份 30 元n 洞庭?鱼卷 1 份
20 元n 其他n 鲜菇猪肉滑 1 份 18 元n 金针菇 1 份 16 元n 黑木耳 1 份 9 元n 娃娃菜 1 份 8 元n 冬
瓜 1 份 6 元n 火锅面 2 个 6 元n 欢乐畅饮 2 位 12 元n 自助酱料 2 位 10 元"}
}
}';
 
 
$re3 = $this->curlp($url,$pjson);
        $re3arr = json_decode($re3,true);
        dump($re3arr);
    
    }
卡卷领取测试:(二维码)
public function tcard(){//卡卷测试
    header ( "Content-Type: text/html; charset=UTF-8" );
    
    
        $appid=C('APPID');
         $appsecret=C('SCRETID');
        $asstonek = $this->get_token($appid,$appsecret);    
        $ticket = $this->get_card_ticket($asstonek);
        dump($asstonek);
        dump($ticket);
        
        
        /*  获取卡卷列表
        $url = ";
        $jsondata = '{"offset":0,"count":10}';
        $re = $this->curlp($url,$jsondata);
        dump($re);
        */
        
        //  获取卡卷详情
        $url3 = ";
        $getcardinfo = '{
"card_id":"pYKCus2uC2fwIf3STA-agJ_XhqfI"
}';
 
    $re3 = $this->curlp($url3,$getcardinfo);
        $re3arr = json_decode($re3,true);
        dump($re3arr);
        //  status =  CARD_STATUS_VERIFY_OK  卡卷审核通过
        //  获取卡卷详情
        
        
        $fcardjson = '{
"action_name": "QR_CARD",
"action_info": {
"card": {
"card_id": "pYKCus2uC2fwIf3STA-agJ_XhqfI",
"is_unique_code": false ,
}
}
}';
 
$url2 = ";
$re2 = $this->curlp($url2,$fcardjson);
$re2arr = json_decode($re2,true);
$ewmticket = $re2arr['ticket'];
if($re2arr['errmsg']!='ok') exit($re2arr['errmsg']);
dump($re2arr);
echo '<img src=";';
        
        
        
    }
卡卷投放(领取):html5 js api
public function get_h5_card($data=array()){
    $appid=$this->appid;
    $appsecret=$this->appsecret;
    $asstonek = $this->get_token($appid,$appsecret);    
    $ticket = $this->get_card_ticket($asstonek);
    $data['api_ticket']=$ticket;
    $data['timestamp']=time();
    $data['signature'] = self::getSign($data); 
    //echo $ticket;
    $data2['card_id']=$data['card_id'];
    unset($data['api_ticket']);
    unset($data['card_id']);
    $data2['card_ext']=json_encode($data);
    return $data2;
    dump($data);
}  
    
 
public function tcard1(){//html5 js api 卡卷投放
        $card = new OrgUtilCard('wx37445*******3ae8','6854f901**********4f9a3');
        $cardid = 'pYKCus4Tmp_sBh6eiqfG-hN_ySzc';
        $data['card_id']=$cardid;
        $data['code']='';
        $data['openid']='';
        $data2 = $card->get_h5_card($data);
        $this->assign('carddata',json_encode($data2));
        //dump(($data2));
        $this->siteDisplay ( 'card' );
需要完整卡卷投放接口请淘宝联系我。

注意,要使用微信在第三方网页登录是需要“服务号”才可以哦,所以必须到官方申请。

一开始你需要进入微信公众平台开启开发模式,并且填写oauth2的回调地址,地址填写你项目的域名就可以了.比如:www.baidu.com或zhidao.baidu.com.如果你的项目在二级域名就写二级域名

  前端url授权地址,在url中填写appid与你项目中方法中的oauth的地址,具体在下面的代码中可以看到.

<ahref="https://open.weixin.qq.com/connect/oauth2/authorize?appid=appid&redirect_uri=;
  再说后台逻辑,首先调用微信接口的SDK.(后面会有)

include('./Card/Common/class_weixin_adv.php');
  之后填入微信官方给的的appid与secret

$weixin=new class_weixin_adv("appid", "secret");
  初始化SDK的类,取到code,利用获取到的code在获取出openid 看下面代码注释!

$url="";
$res = $weixin->https_request($url);//调用SDK方法获取到res 从中可以得到openid
$res=(json_decode($res, true));//转换成array 方便调用openid

 

  继续调用SDK方法,获取到用户信息.此时$row已经获得用户信息了 可以var_dump下看看键值方便存入数据库

$row=$weixin->get_user_info($res['openid']);
  获取用户信息就大功告成了,但这还不够.我们需要的是无需注册!所以需要利用openid,openid属于唯一凭证,每个用户对不同的公众号都有不同的openid.可以理解成用户账号的感觉.我这里用的是把openid存入cookie的解决方案,类似用户登陆的感觉,一些关键数据验证只需要与数据库中的openid进行对比.其他的一些利用方法可以发挥大家的想象!可以跟我留言交流!

关于之前的a链接的授权,大家也可以判断cookie是否存在openid,从而让未授权用户直接跳转到该地址,省却了用户的一步操作.

下面是完整逻辑代码,大家可以参考下!

     public function oauth2(){
           include('./Card/Common/class_weixin_adv.php');
            $weixin=new class_weixin_adv("appid", "secret");
            if (isset($_GET['code'])){
                $url="";
                $res = $weixin->https_request($url);
                $res=(json_decode($res, true));
                $row=$weixin->get_user_info($res['openid']);
               
                if ($row['openid']) {
                   //这里写上逻辑,存入cookie,数据库等操作

 

                    cookie('weixin',$row['openid'],25920);
                  
                }else{
                    $this->error('授权出错,请重新授权!');
                }
            }else{
                echo "NO CODE";
            }
            $this->display();
        }

SDK代码:微信官方有手册,我就不多讲了,自己研究,很简单的!.

<?php

/**
 * 微信SDK
 * pan041ymail@gmail.com
 */

class class_weixin_adv
{
    var $appid = "";
    var $appsecret = "";

    //构造函数,获取Access Token
    public function __construct($appid = NULL, $appsecret = NULL)
    {
        if($appid){
            $this->appid = $appid;
        }
        if($appsecret){
            $this->appsecret = $appsecret;
        }

       
        $this->lasttime = 1395049256;
        $this->access_token = "nRZvVpDU7LxcSi7GnG2LrUcmKbAECzRf0NyDBwKlng4nMPf88d34pkzdNcvhqm4clidLGAS18cN1RTSK60p49zIZY4aO13sF-eqsCs0xjlbad-lKVskk8T7gALQ5dIrgXbQQ_TAesSasjJ210vIqTQ";

        if (time() > ($this->lasttime + 7200)){
            $url = ";
            $res = $this->https_request($url);
            $result = json_decode($res, true);
           
            $this->access_token = $result["access_token"];
            $this->lasttime = time();
        }
    }
//获取用户基本信息
    public function get_user_info($openid)
    {
        $url = "";
        $res = $this->https_request($url);
        return json_decode($res, true);
    }

//https请求
    public 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);
澳门娱乐6165,            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        }
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($curl);
        curl_close($curl);
        return $output;
    }
}

本文由澳门娱乐6165发布,转载请注明来源

关键词: