demo php 微信开发_微信小程序快速开发 demo - php - CSDN
  • 老版本的微信公众平台开发示例demo和新版本的微信公众平台开发示例demo
  • 微信开发DEMO

    2017-07-25 17:51:34
    <?php /** * wechat php test *///define your token ...//定义一个钥匙常亮,用于服务器和微信平台连接钥匙 define("TOKEN", "weixin"); define("appID", "wxa930bb7f1fd4ecdb"); define("appsecret", "cf3d83eb
    
    <?php
    /**
      * wechat php test
      */
    
    //define your token
    include_once('curl.php');
    //定义一个钥匙常亮,用于服务器和微信平台连接钥匙
    define("TOKEN", "weixin");
    define("appID", "wxa930bb7f1fd4ecdb");
    define("appsecret", "cf3d83eb7cc2d5b5cf2077549067e208");
    $wechatObj = new wechatCallbackapiTest();
    
    //验证服务器和公众平台是否连接成功
    //在服务器和公众平台验证成功之后把下面代码注释掉
    //$wechatObj->valid();
    
    $wechatObj->responseMsg();
    
    $wechatObj->createMenu();
    
    class wechatCallbackapiTest
    {    //验证
        public function valid()
        {
            $echoStr = $_GET["echostr"];
    
            //valid signature , option
            //验证成功 退出
            if($this->checkSignature()){
                header('content-type:text');
                echo $echoStr;
                exit;
            }
        }
          //公众平台发送给用户的信息
        public function responseMsg()
        {
            //get post data, May be due to the different environments
            //接收用户发送给公众平台信息 ,相当于$_POST,可以接受XML格式的数据
            $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 */
                   //只解析XML数据的主体部分,防止XXE攻击
                    libxml_disable_entity_loader(true);
                   //通过simplexml解析XML数据
                      $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                    //var_dump($postObj);die;
                    //获取手机用户的OpenID
                    $fromUsername = $postObj->FromUserName;
                    //开发者微信号 
                    $toUsername = $postObj->ToUserName;
                    //发送的文本消息的关键字
                    $keyword = trim($postObj->Content);
                    //获取用户发送的消息类型
                    $msgtype=$postObj->MsgType;
                    //获取用户的事件
                    $event=$postObj->Event;
                    //获取事件的key值
                    $eventkey=$postObj->EventKey;
                    $time = time();
    
                    //echo $keyword;die;
                    //发送文本信息的字符串模板
                    $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>"; 
                    //发送图片的字符串模板
                    $imageTpl="<xml>
                                <ToUserName><![CDATA[%s]]></ToUserName>
                                <FromUserName><![CDATA[%s]]></FromUserName>
                                <CreateTime>%s</CreateTime>
                                <MsgType><![CDATA[%s]]></MsgType>
                                <Image>
                                <MediaId><![CDATA[%s]]></MediaId>
                                </Image>
                                </xml>";
                    //发送图文消息的字符串模板
                    $newsTpl="<xml>
                                <ToUserName><![CDATA[%s]]></ToUserName>
                                <FromUserName><![CDATA[%s]]></FromUserName>
                                <CreateTime>%s</CreateTime>
                                <MsgType><![CDATA[%s]]></MsgType>
                                <ArticleCount>%s</ArticleCount>
                                <Articles>
                                 %s
                                </Articles>
                                </xml> ";
                        //发送音乐消息的字符串模板
                    $musicTpl="<xml>
                                <ToUserName><![CDATA[%s]]></ToUserName>
                                <FromUserName><![CDATA[%s]]></FromUserName>
                                <CreateTime>%s</CreateTime>
                                <MsgType><![CDATA[%s]]></MsgType>
                                <Music>
                                <Title><![CDATA[%s]]></Title>
                                <Description><![CDATA[%s]]></Description>
                                <MusicUrl><![CDATA[%s]]></MusicUrl>
                                <HQMusicUrl><![CDATA[%s]]></HQMusicUrl>
                                </Music>
                                </xml>";
    
                    //判断用户发送过来的消息类型
                    //如果公众号接收的是文本消息
                    if($msgtype=='text'){
                        if(!empty( $keyword ))
                        {
                               //定义发送消息的类型
                               if($keyword=='图片'){
                                     $msgType = "image";
                                     //公众平台发送给用户的信息
                                    $contentStr = "http://wxkflt.applinzi.com/3.jpg";
                                    //格式化字符串
                                    $resultStr = sprintf($imageTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                                    echo $resultStr;
                                    die;
                               }elseif($keyword=='单图文'){
                                      $msgType='news';
                                      $counts=1;
                                      $contentStr="<item>
                                    <Title><![CDATA[大家一起学习微信开发]]></Title> 
                                    <Description><![CDATA[微信开发是未来的发展方向,大家研究研究吧]]></Description>
                                    <PicUrl><![CDATA[http://1.ltwxgzpt.applinzi.com/3.jpg]]></PicUrl>
                                    <Url><![CDATA[http://http://1.ltwxgzpt.applinzi.com/3.jpg]]></Url>
                                    </item>";
                                     //格式化字符串
                                    $resultStr = sprintf($newsTpl, $fromUsername, $toUsername, $time, $msgType,$counts,$contentStr);
                                    echo $resultStr;
                                    die;
                               }elseif($keyword=='多图文'){
                                     $msgType='news';
                                      $counts=4;
                                      $contentStr='';
                                      for($i=2;$i<=5;$i++){
                                         $contentStr.="<item>
                                        <Title><![CDATA[大家一起学习微信开发]]></Title> 
                                        <Description><![CDATA[微信开发是未来的发展方向,大家研究研究吧。]]></Description>
                                        <PicUrl><![CDATA[http://1.ltwxgzpt.applinzi.com/{$i}.jpg]]></PicUrl>
                                        <Url><![CDATA[http://1.ltwxgzpt.applinzi.com/{$i}.jpg]]></Url>
                                        </item>";
                                      }
                                  //格式化字符串
                                 $resultStr = sprintf($newsTpl, $fromUsername, $toUsername, $time, $msgType,$counts,$contentStr);
                                 echo $resultStr;
                                 die;
                               }elseif($keyword=='音乐'){
                                  $msgType='music';
                                  $title='冰雪奇缘主题曲';
                                  $description='原声大碟';
                                  $music_url='http://www.yyzljg.com/wechat/music.mp3';
                                  $high_url='http://www.yyzljg.com/wechat/music.mp3';
                                 //格式化字符串
                                $resultStr = sprintf($musicTpl, $fromUsername, $toUsername, $time, $msgType,$title,$description,$music_url,$high_url);
                                echo $resultStr;
                                die;
                               }elseif($keyword=='帮助'){
                                 $msgType = "text";
                                 //公众平台发送给用户的信息
                                $contentStr = "客官,回复【音乐】【多图文】【单图文】这些字,或者直接发送一张照片、一段录音、一段小视频、您现在的定位,有惊喜等着你哦,多玩伤身哦~~~";
                                //格式化字符串
                                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                                echo $resultStr;
                                die;
                               }else{
                                    $msgType = "text";
                                    $curl="http://www.niurenqushi.com/app/simsimi/ajax.aspx";
                                    $contentStr =curl($curl,array('txt'=>$keyword),'POST',false,false);
                                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                                    echo $resultStr;
                                    die;
                               }
                        }else{
                                $msgType = "text";
                                $curl="http://www.niurenqushi.com/app/simsimi/ajax.aspx";
                                $contentStr =curl($curl,array('txt'=>$keyword),'POST',false,false);
                                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                                echo $resultStr;
                                die;
                        }
    
                }elseif($msgtype=='image'){
                  //定义发送消息的类型
                    $msgType = "text";
                    //公众平台发送给用户的信息
                    $contentStr = "您发送美女好漂亮啊~~~";
                    //格式化字符串
                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                    echo $resultStr;
                    die;
                }elseif($msgtype=='voice'){
                   //定义发送消息的类型
                    $msgType = "text";
                    //公众平台发送给用户的信息
                    $contentStr = "您的声音好沧桑啊~~~啦啦啦~~";
                    //格式化字符串
                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                    echo $resultStr;
                    die;
                }elseif($msgtype=='video'){
                    //定义发送消息的类型
                    $msgType = "text";
                    //公众平台发送给用户的信息
                    $contentStr = "呦,你发的什么片啊!哈哈~~~";
                    //格式化字符串
                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                    echo $resultStr;
                    die;
                }elseif($msgtype=='location'){
                    //定义发送消息的类型
                    $msgType = "text";
                    //公众平台发送给用户的信息
                    $contentStr = "你怎么跑到火星啦!哈哈哈~~";
                    //格式化字符串
                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                    echo $resultStr;
                    die;
                }elseif($event=='CLICK'&&$eventkey=='最新产品'){
                  //以图文消息回复最近的产品
                    $msgType='news';
                    //从数据库中查询最近5条数据
                    //连接数据库
                    mysql_connect('nvalglyjliip.rds.sae.sina.com.cn:25398','root','rootroot');
                    mysql_query('set names utf8');
                    mysql_query('use weixin');
                    $sql="select * from news limit 5";
                    $counts=4;
                    $res=mysql_query($sql);
                    $contentStr='';
                    while($row=mysql_fetch_assoc($res)){
                     $contentStr.="<item>
                    <Title><![CDATA[{$row['name']}]]></Title> 
                    <Description><![CDATA[{$row['miaosu']}]]></Description>
                    <PicUrl><![CDATA[{$row['img']}]]></PicUrl>
                    <Url><![CDATA[http://1408phpc.applinzi.com]]></Url>
                    </item>";        
                  }
                  //格式化字符串
                $resultStr = sprintf($newsTpl, $fromUsername, $toUsername, $time, $msgType,$counts,$contentStr);
                echo $resultStr;
                }elseif($event=='CLICK'&&$eventkey=='联系我们'){
                  //以文本消息进行回复
                    $msgType = "text";
                    //公众平台发送给用户的信息
                     $str="手机18665455185\n email:358288718@qq.com";
                    //格式化字符串
                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $str);
                    echo $resultStr;
                    die;
                }
    
                //首次关注自动回复
                $msgType = "text";
                $contentStr = "您好,欢迎首次关注!";
                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                echo $resultStr;
            }else {
                echo "";
                exit;
            }
        }
    
        //菜单
        public function createMenu(){
            //$url='https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wxa930bb7f1fd4ecdb&secret=cf3d83eb7cc2d5b5cf2077549067e208';
            $url='https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.appID.'&secret='.appsecret.'';
            $file=file_get_contents($url);
            $arr=json_decode($file,true);
            $Accesstoken=$arr['access_token'];
            $url="https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$Accesstoken;
            $data='{
                     "button":[
                     {
                          "type":"click",
                          "name":"今日歌曲",
                          "key":"V1001_TODAY_MUSIC",
                          "url":"http://www.xiami.com/"
                      },
                      {
                           "name":"菜单",
                           "sub_button":[
                           {    
                               "type":"view",
                               "name":"搜索",
                               "url":"http://www.soso.com/"
                            },
                            {
                               "type":"view",
                               "name":"视频",
                               "url":"http://v.qq.com/"
                            },
                            {
                               "type":"click",
                               "name":"赞一下我们",
                               "key":"V1001_GOOD"
         }]
                       }]
                    }';
            $this->weixinPost($url,$data,"POST");
        }
        private function weixinPost($url,$data,$method){
            $ch = curl_init();     //1.初始化
            curl_setopt($ch, CURLOPT_URL, $url); //2.请求地址
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);//3.请求方式
            //4.参数如下
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
            curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
            curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
    
            if($method=="POST"){//5.post方式的时候添加数据
                curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
            }
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            $tmpInfo = curl_exec($ch);//6.执行
    
            if (curl_errno($ch)) {//7.如果出错
                return curl_error($ch);
            }
            curl_close($ch);//8.关闭
            return $tmpInfo;
        }
    
    
    
        //验证
        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;
            }
        }
    }
    
    ?>
    展开全文
  • 会员免费看,...微信h5支付开发是子恒老师《子恒说微信开发》视频教程的第17部。详细讲解了微信H5支付开发,内容包含开通H5支付,实现微信h5支付,订单查询,关闭订单等等。欢迎反馈,微信号:QQ68183131
  • Wxpay----》wxpaymoney 该方法是下单的方法 方法最后面mweb_url 这个是支付链接 可以唤起微信微信支付界面 Wxpay----》getSign 签名方法中 秘钥一定要改成自己商户平台中的秘钥不然报签名错误 wxwap 下面是异步...
  • 微信硬件开发系列教程,微信公众号开发DEMO(airkiss/airsync),菜单的创建、信息交互、跳转到自定义HTML5页面等等
  • 微信h5支付开发-php开发微信h5支付demo 大秦电商创始人,专注网络技...

    订阅后:请点击此处观看视频课程

     

    视频教程-微信h5支付开发-php开发微信h5支付demo-微信开发

    学习有效期:永久观看

    学习时长:236分钟

    学习计划:4天

    难度:

     

    口碑讲师带队学习,让你的问题不过夜」

    讲师姓名:秦子恒

    CEO/董事长/总经理

    讲师介绍:大秦电商创始人,专注网络技术的电商应用。已经出品《1小时建站》《微博营销实战》《PHP采集》《网络招商系统》

    ☛点击立即跟老师学习☚

     

    「你将学到什么?」

    会员免费看,http://edu.csdn.net/lecturer/842右侧可办理会员卡。微信h5支付开发是子恒老师《子恒说微信开发》视频教程的第17部。详细讲解了微信H5支付开发,内容包含开通H5支付,实现微信h5支付,订单查询,关闭订单等等。欢迎反馈,微信号:QQ68183131

     

    「课程学习目录」

    第1章:微信h5支付与其它支付方式的联系和区别
    1.微信h5支付,移动网页支付新篇章
    2.开通微信h5支付
    3.设置接收退款结果的网址
    第2章:开通微信h5支付
    第3章:设置接收退款结果的网址
    第4章:微信h5支付统一下单
    1.实现日志记录功能,进行调试错误
    2.微信h5支付前端页面
    3.h5支付页面与web服务器通信
    4.微信h5支付配置文件说明
    5.php开发微信h5支付demo试看
    6.微信h5支付统一下单-完整版
    7.异步处理微信h5支付结果-试看
    8.异步处理微信h5支付结果-完整版
    第5章:查询订单信息
    1.微信h5支付开发-查询订单信息试看
    2.查询订单信息-完整版
    3.查询订单后的业务处理
    第6章:微信h5支付开发高级技巧
    1.微信h5支付关闭订单-试看
    2.微信h5支付关闭订单-完整版
    3.微信h5支付与其它支付方式的联系和区别

     

    7项超值权益,保障学习质量」

    • 大咖讲解

    技术专家系统讲解传授编程思路与实战。

    • 答疑服务

    专属社群随时沟通与讲师答疑,扫清学习障碍,自学编程不再难。

    • 课程资料+课件

    超实用资料,覆盖核心知识,关键编程技能,方便练习巩固。(部分讲师考虑到版权问题,暂未上传附件,敬请谅解)

    • 常用开发实战

    企业常见开发实战案例,带你掌握Python在工作中的不同运用场景。

    • 大牛技术大会视频

    2019Python开发者大会视频免费观看,送你一个近距离感受互联网大佬的机会。

    • APP+PC随时随地学习

    满足不同场景,开发编程语言系统学习需求,不受空间、地域限制。

     

    「什么样的技术人适合学习?」

    • 想进入互联网技术行业,但是面对多门编程语言不知如何选择,0基础的你
    • 掌握开发、编程技术单一、冷门,迫切希望能够转型的你
    • 想进入大厂,但是编程经验不够丰富,没有竞争力,程序员找工作难。

     

    「悉心打造精品好课,4天学到大牛3年项目经验」

    【完善的技术体系】

    技术成长循序渐进,帮助用户轻松掌握

    掌握微信开发知识,扎实编码能力

    【清晰的课程脉络】

    浓缩大牛多年经验,全方位构建出系统化的技术知识脉络,同时注重实战操作。

    【仿佛在大厂实习般的课程设计】

    课程内容全面提升技术能力,系统学习大厂技术方法论,可复用在日后工作中。

     

    「你可以收获什么?」

    能够掌握微信h5支付接口开发:h5支付统一下单,订单查询,关闭订单等。

     

    展开全文
  • 微信JS SDK PHP Demo

    2016-07-14 00:16:57
    微信JS SDK PHP Demo 微信JS-SDK PHP Demo JS接口安全域名 自定义分享接口 jsapi_ticket 分享到朋友圈 分享给朋友 分享到QQ  原文:http://www.cnblogs.com/txw1958/p/weixin-js-sdk-php-demo.html ...

    微信JS SDK PHP Demo

    微信JS-SDK PHP Demo JS接口安全域名 自定义分享接口 jsapi_ticket 分享到朋友圈 分享给朋友 分享到QQ 
    原文:http://www.cnblogs.com/txw1958/p/weixin-js-sdk-php-demo.html

    参考地址:

    http://www.cnblogs.com/txw1958/p/weixin-js-sdk-php-demo.html

    http://www.tuicool.com/articles/zI3Ura

    官方文档:https://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html


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

    主文件index.php

    <?php
    class JSSDK {
    private $appId;
    private $appSecret;


       public function __construct($appId = '', $appSecret = '') {
        $this->appId = $appId;
        $this->appSecret = $appSecret;
      }


      public function getSignPackage() {
        $jsapiTicket = $this->getJsApiTicket();
        $url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
        $timestamp = time();
        $nonceStr = $this->createNonceStr();


        // 这里参数的顺序要按照 key 值 ASCII 码升序排序
        $string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr&timestamp=$timestamp&url=$url";


        $signature = sha1($string);


        $signPackage = array(
     "appId"     => $this->appId,
     "nonceStr"  => $nonceStr,
     "timestamp" => $timestamp,
     "url"       => $url,
     "signature" => $signature,
     "rawString" => $string
        );
        return $signPackage; 
      }


      private function createNonceStr($length = 16) {
        $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        $str = "";
        for ($i = 0; $i < $length; $i++) {
          $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
        }
        return $str;
      }


      private function getJsApiTicket() {
        // jsapi_ticket 应该全局存储与更新,以下代码以写入到文件中做示例
        $data = json_decode(file_get_contents("jsapi_ticket.json"));
        if ($data->expire_time < time()) {
          $accessToken = $this->getAccessToken();
          //定义传递的参数数组
     $params['type'] = 'jsapi';
     $params['access_token'] = $accessToken;
          $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket";
          $res = json_decode($this->httpGet($url,$params));
          $ticket = isset($res->ticket) ? $res->ticket : NULL;
          if ($ticket) {
            $data->expire_time = time() + 7000;
            $data->jsapi_ticket = $ticket;
            $fp = fopen("jsapi_ticket.json", "w");
            fwrite($fp, json_encode($data));
            fclose($fp);
          }
        } else {
          $ticket = $data->jsapi_ticket;
        }
        return $ticket;
      }


      private function getAccessToken() {
        // access_token 应该全局存储与更新,以下代码以写入到文件中做示例
        $data = json_decode(file_get_contents("access_token.json"));
        if ($data->expire_time < time()) {
          //定义传递的参数数组
     $params['grant_type'] = 'client_credential';
     $params['appid'] = $this->appId;
     $params['secret'] = $this->appSecret;
          $url = "https://api.weixin.qq.com/cgi-bin/token";
          $res = json_decode($this->httpGet($url,$params));
          $access_token = isset($res->access_token) ? $res->access_token : NULL;
          if ($access_token) {
            $data->expire_time = time() + 7000;
            $data->access_token = $access_token;
            $fp = fopen("access_token.json", "w");
            fwrite($fp, json_encode($data));
            fclose($fp);
          }
        } else {
          $access_token = $data->access_token;
        }
        return $access_token;
      }


      private function httpGet($url,$params) {
      $URL = $url . '?' . http_build_query($params);
    $opts = array(
       CURLOPT_TIMEOUT        => 30,
       CURLOPT_RETURNTRANSFER => 1,
       CURLOPT_SSL_VERIFYPEER => false,
       CURLOPT_SSL_VERIFYHOST => false,
       CURLOPT_HTTPHEADER     => array(),
       CURLOPT_URL            => $URL
    );
        $curl = curl_init();
        curl_setopt_array($curl, $opts);
        $res = curl_exec($curl);
        curl_close($curl);
        return $res;
      }
    }

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

    HTML页面中

       wx.config({
    debug: false,
    appId: '<?php echo $signPackage["appId"];?>',
    timestamp: <?php echo $signPackage["timestamp"];?>,
    nonceStr: '<?php echo $signPackage["nonceStr"];?>',
    signature: '<?php echo $signPackage["signature"];?>',
    jsApiList: [
     'onMenuShareTimeline',
     'onMenuShareAppMessage'
    ]
    });
    wx.ready(function(){
    wx.onMenuShareTimeline({
       title: 'XXXXXXXXXXXXXXXXXXXXX', // 分享标题
       link: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX', // 分享链接
       imgUrl: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', // 分享图标
       success: function () { 
           // 用户确认分享后执行的回调函数
              alert('感谢您的参与');
       },
       cancel: function () { 
       }
    });
    wx.onMenuShareAppMessage({
       title: 'XXXXXXXXXXXXXXXXXXXX', // 分享标题
       desc: 'XXXXXXXXXXXXXXXXXXXXXXX, // 分享描述
       link: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXx', // 分享链接
       imgUrl: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX', // 分享图标
       type: '', // 分享类型,music、video或link,不填默认为link
       dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
       success: function () { 
           // 用户确认分享后执行的回调函数
              alert('感谢您的参与');
       },
       cancel: function () { 
           // 用户取消分享后执行的回调函数
       }
    });
           wx.error(function(res){
               // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,
               // 也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
               alert("errorMSG:"+res);
           });
            });


    注:

    1 要新建两个.php文件  分别为access_token和jsapi_ticket 存在同级目录下 目的为了比较是否过期

    2 httpGet 方法 是自己改进的 与原文不太一样 

    3 页面调用时在html最上面 写入

    <?php
    require_once "index.php";
    $jssdk = new JSSDK;
    $signPackage = $jssdk->GetSignPackage();
    ?>


    展开全文
  • 微信开发工具上编译小程序的代码。微信web开发者工具。 sublime 和 webstorm。 微信小程序开发工具0.7.0版本(下载链接http://pan.baidu.com/s/1nuIJnBV密码:ru3h) 微信小程序26个基础组件+60个开放api 微信小...

    > 微信小程序
     微信小程序,新的流量入口。
     在微信的开发工具上编译小程序的代码。微信web开发者工具。 sublime 和 webstorm。
     微信小程序开发工具0.7.0版本(下载链接http://pan.baidu.com/s/1nuIJnBV密码:ru3h)
     微信小程序26个基础组件+60个开放api
     微信小程序创建项目时选择无 AppID,但这样就只能在开发工具的模拟器上运行,不能在手机上运行也不能发布,要么参考 https://zhuanlan.zhihu.com/p/24810538 这篇文章钻个漏洞获取一个AppID,当然还是没办法发布,但至少能在手机上运行了。

    微信小程序官方文档(传送门)- https://developers.weixin.qq.com/miniprogram/dev/?t=1476434677599
      https://developers.weixin.qq.com/miniprogram/dev/api/

    GIF展示,wechat-weapp-gank- https://github.com/lypeer/wechat-weapp-gank
    微信小程序高仿手机QQ应用程序- https://github.com/xiehui999/SmallAppForQQ
    1)计算器 https://github.com/dunizb/wxapp-sCalc
    2)豆瓣图书 http://www.jianshu.com/p/c35084200470
    3)移动商城 https://github.com/liuxuanqiang/wechat-weapp-mall
    4)天气 http://swiftcafe.io/2016/10/03/wx-weather-app/
    5)空气质量查询 http://blog.csdn.net/yulianlin/article/details/52692066
    6)github客户端 https://blog.zhengxiaowai.cc/post/weapp-demo.html
    7)知乎日报 http://www.apkbus.com/forum.php?mod=viewthread&tid=268626&extra=page%3D1%26filter%3Dsortid%26sortid%3D12

    微信小程序--HotApp云笔记- https://github.com/hotapp888/hotapp-notepad

    微信小程序商城类实战项目- https://github.com/fujianlian/mall

    在Web端,需要html和css文件来共同完成。在小程序里面,对应的是WXML(WeiXin Markup Language)和WXSS(WeiXin Style Sheets):
     1.在WXML中通过组件(微信所提供的标签)构建页面结构,并且在其中完成数据绑定和事件绑定
     2.在WXSS中完成样式的定义,用以控制WXML中组件的样式。WXSS具有CSS大部分特性,同时也有部分扩充。

    > 微信公众平台
    微信公众平台开发其实最主要的费用:服务器费用,域名费用,程序开发,页面设计费用等
    微信公众平台上申请公众账号,地址是:https://mp.weixin.qq.com/
    要选组织,在为个人的只能申请订阅号,只有组织的才能申请服务号,订阅号是不能拿到用户发的消息的。

    微信公众平台开发- https://blog.csdn.net/binyao02123202/article/details/18446487

    展开全文
  • php微信h5支付demo

    2019-09-11 10:25:31
    在网上找了很多关于微信h5支付的demo都不可靠,后来,在找到的demo上面做了修改, 代码如下: <?php $money= 1;//充值金额 $userip = get_client_ip(); //获得用户设备IP $appid = "xxxxxxxx...
  • 首先声明,此demo不是直接可以跑通的,请把代码放到自己项目里,然后服务器端部署启动。 这一切的前提,请将微信公众平台 全部配好。(这个公众平台配明白,不容易的) 开发所需15个工具类 可以在我的资源中...
  • php开发微信demo

    2012-12-10 17:32:52
    已经没有搞php一年多了,除了几个简单的输出和方法外,其他的我都忘得差不多了! 今天贴出代码,供给那些懂的人去研究! <?php /** * wechat php test */ //define your token define("TOKEN", "weixin...
  • 》开发者文档》开始开发》接入指南》第二步最后 有个PHP实例下载。 在每次第第一次填写服务器配置的时候 ,都需要验证token发送echostr. 下面是代码:(官方提供的例子,有个函数有问题,本人调试了几个小时,终于...
  • 微信小程序入门教程+案例demo 尊重原创,转载请注明出处:原文查看惊喜更多 http://blog.csdn.net/qq137722697 首先摆在好姿态,——微信小程序开发也就那么回事。你只需要一点点css(真的只要一点点)的基础就...
  • 微信网页授权登录demo

    2018-12-22 19:20:48
    第一步:用户同意授权,获取code ...在确保微信公众账号拥有授权作用域(scope参数)的权限的前提下(服务号获得高级接口后,默认拥有scope参数中的snsapi_base和snsapi_userinfo),引导关注者打开如下页面: ...
  • 写在前面 服务号和订阅号URL配置创建... 最近公司在做微信开发,其实就是接口开发,网上找了很多资料,当然园友也写了很多教程,但都是理论说了一大堆,实用指导或代码很少。如果你自己仔细研究下,其实就那么
  • #说明:此为APP端集成微信调起流程的demo,可用于服务器没开发完成前APP接入流程调研。本demo参照微信官方demo抽取而成(大家知道官方demo是eclipse版的,不方便使用) #参数配置步骤如下: 1、配置包名和签名 包...
  • 二、开发流程 1、用户在商户侧完成下单,使用微信支付进行支付 2、由商户后台向微信支付发起下单请求(调用统一下单接口)注:交易类型trade_type=MWEB 3、统一下单接口返回支付相关参数给商户后台,如支付跳转...
  • 最近一直在研究微信小程序,跟随互联网新闻的热潮 从9月29日开发到现在,也算是把大部分API和组件都用到了   这个项目之所以想到把它开源,是因为之前在一个2000人小程序交流群中,发现很多demo都很简单 ...
  • 微信小程序 支付Demo

    2020-07-26 23:33:55
    该代码资源包,用于进行配置微信小程序支付功能,包括前后端核心代码。需要根据文章:https://blog.csdn.net/u011415782/article/details/80944832 进行参考配置。欢迎指摘,谢谢...
  • 微信公众平台开发微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等...
1 2 3 4 5 ... 20
收藏数 7,731
精华内容 3,092
关键字:

demo php 微信开发