微信API接口大全
微信入口绑定,微信事件处理,微信API全部操作包含在这些文件中。
微信支付、微信红包、微信卡券、微信小店。
1.[代码]index.php
<?php include_once'lib.inc.php'; $wcObj=newWeChat("YOUKUIYUAN"); $wcObj->wcValid();
2.[代码]微信入口类
<?php /** *Descriptionofwechat * *@authorAdministrator */ classWeChatextendsWxApi{ public$token=""; //putyourcodehere publicfunction__construct($token=""){ parent::__construct(); $this->token=$token; } publicfunctionwcCheckSignature(){ try{ if(empty($this->token)){ thrownewException('TOKENisnotdefined!'); } $signature=$_GET["signature"]; $timestamp=$_GET["timestamp"]; $nonce=$_GET["nonce"]; $token=$this->token; $tmpArr=array($token,$timestamp,$nonce); //useSORT_STRINGrule sort($tmpArr,SORT_STRING); $tmpStr=implode($tmpArr); $tmpStr=sha1($tmpStr); if($tmpStr==$signature){ returntrue; }else{ returnfalse; } } catch(Exception$e){ echo'Message:'.$e->getMessage(); } } publicfunctionwcValid(){ $echoStr=isset($_GET["echostr"])&&!empty($_GET["echostr"])?addslashes($_GET["echostr"]):NULL; if(is_null($echoStr)){ $this->wcMsg(); } else{ //validsignature,option if($this->wcCheckSignature()){ echo$echoStr; exit; } else{ exit(); } } } publicfunctionwcMsg(){ //getpostdata,Maybeduetothedifferentenvironments $postStr=isset($GLOBALS["HTTP_RAW_POST_DATA"])&&!empty($GLOBALS["HTTP_RAW_POST_DATA"])?$GLOBALS["HTTP_RAW_POST_DATA"]:""; if(!empty($postStr)){ libxml_disable_entity_loader(true); $postObj=simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA); $this->zcLog(TRUE,$postObj); $fromUsername=$postObj->FromUserName; $toUsername=$postObj->ToUserName; $MsgType=$postObj->MsgType; if($MsgType=='event'){//执行事件相应 $Event=$postObj->Event; switch($Event){ case'subscribe'://关注 break; case'unsubscribe'://取消关注 break; case'SCAN'://扫描 break; case'LOCATION'://地址 break; case'CLICK'://点击时间 break; case'VIEW'://跳转 break; case'card_pass_check'://卡券审核通过 break; case'card_not_pass_check'://卡券审核失败 break; case'user_get_card'://用户领取卡券 break; case'user_del_card'://用户删除卡券 break; case'user_view_card'://用户浏览会员卡 break; case'user_consume_card'://用户核销卡券 break; case'merchant_order'://微小店用户下单付款 break; default: break; } } else{ switch($MsgType){ case'text'://文本格式 break; case'image'://图片格式 break; case'voice'://声音 break; case'video'://视频 break; case'shortvideo'://小视频 break; case'location'://上传地理位置 break; case'link'://链接相应 break; default: break; } } //////////////////////////////////////////////////////////////////// $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="Welcometowechatworld!"; $resultStr=sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr); echo$resultStr; } else{ echo"Inputsomething..."; } //////////////////////////////////////////////////////////////////// } else{ echo"暂时没有任何信息!"; exit; } } //日志LOG publicfunctionzcLog($errcode,$errmsg){ $this->returnAy=array(); $this->returnAy['errcode']=$errcode; $this->returnAy['errmsg']=$errmsg; $this->returnAy['errtime']=date("Y-m-dH:i:s",time()); $logfile=fopen("logfile_".date("Ymd",time()).".txt","a+"); $txt=json_encode($this->returnAy)."\n"; fwrite($logfile,$txt); fclose($logfile); //return$this->returnAy; } }
3.[代码]微信操作类-更新了自定义菜单部分
<?php /******************************************************** *@authorKylerYou<QQ:2444756311> *@linkhttp://mp.weixin.qq.com/wiki/home/index.html *@version2.0.1 *@uses$wxApi=newWxApi(); *@package微信API接口陆续会继续进行更新 ********************************************************/ classWxApi{ //constappId=""; //constappSecret=""; constappId=""; constappSecret=""; //constmchid="";//商户号 //constprivatekey="";//私钥 public$parameters=array(); publicfunction__construct(){ } /**************************************************** *微信提交API方法,返回微信指定JSON ****************************************************/ publicfunctionwxHttpsRequest($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; } /**************************************************** *微信带证书提交数据-微信红包使用 ****************************************************/ publicfunctionwxHttpsRequestPem($url,$vars,$second=30,$aHeader=array()){ $ch=curl_init(); //超时时间 curl_setopt($ch,CURLOPT_TIMEOUT,$second); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); //这里设置代理,如果有的话 //curl_setopt($ch,CURLOPT_PROXY,'10.206.30.98'); //curl_setopt($ch,CURLOPT_PROXYPORT,8080); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false); //以下两种方式需选择一种 //第一种方法,cert与key分别属于两个.pem文件 //默认格式为PEM,可以注释 curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM'); curl_setopt($ch,CURLOPT_SSLCERT,getcwd().'/apiclient_cert.pem'); //默认格式为PEM,可以注释 curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM'); curl_setopt($ch,CURLOPT_SSLKEY,getcwd().'/apiclient_key.pem'); curl_setopt($ch,CURLOPT_CAINFO,'PEM'); curl_setopt($ch,CURLOPT_CAINFO,getcwd().'/rootca.pem'); //第二种方式,两个文件合成一个.pem文件 //curl_setopt($ch,CURLOPT_SSLCERT,getcwd().'/all.pem'); if(count($aHeader)>=1){ curl_setopt($ch,CURLOPT_HTTPHEADER,$aHeader); } curl_setopt($ch,CURLOPT_POST,1); curl_setopt($ch,CURLOPT_POSTFIELDS,$vars); $data=curl_exec($ch); if($data){ curl_close($ch); return$data; } else{ $error=curl_errno($ch); echo"callfaild,errorCode:$error\n"; curl_close($ch); returnfalse; } } /**************************************************** *微信获取AccessToken返回指定微信公众号的at信息 ****************************************************/ publicfunctionwxAccessToken($appId=NULL,$appSecret=NULL){ $appId=is_null($appId)?self::appId:$appId; $appSecret=is_null($appSecret)?self::appSecret:$appSecret; $data=json_decode(file_get_contents("access_token.json")); if($data->expire_time<time()){ //echo$appId,$appSecret; $url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appId."&secret=".$appSecret; $result=$this->wxHttpsRequest($url); //print_r($result); $jsoninfo=json_decode($result,true); $access_token=$jsoninfo["access_token"]; 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; } /**************************************************** *微信获取AccessToken返回指定微信公众号的at信息 ****************************************************/ publicfunctionwxJsApiTicket($appId=NULL,$appSecret=NULL){ $appId=is_null($appId)?self::appId:$appId; $appSecret=is_null($appSecret)?self::appSecret:$appSecret; $data=json_decode(file_get_contents("jsapi_ticket.json")); if($data->expire_time<time()){ $url="https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=".$this->wxAccessToken(); $result=$this->wxHttpsRequest($url); $jsoninfo=json_decode($result,true); $ticket=$jsoninfo['ticket']; 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; } /**************************************************** *微信通过OPENID获取用户信息,返回数组 ****************************************************/ publicfunctionwxGetUser($openId){ $wxAccessToken=$this->wxAccessToken(); $url="https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$wxAccessToken."&openid=".$openId."&lang=zh_CN"; $result=$this->wxHttpsRequest($url); $jsoninfo=json_decode($result,true); return$jsoninfo; } /**************************************************** *微信生成二维码ticket ****************************************************/ publicfunctionwxQrCodeTicket($jsonData){ $wxAccessToken=$this->wxAccessToken(); $url="https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=".$wxAccessToken; $result=$this->wxHttpsRequest($url,$jsonData); return$result; } /**************************************************** *微信通过ticket生成二维码 ****************************************************/ publicfunctionwxQrCode($ticket){ $url="https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=".urlencode($ticket); return$url; } /**************************************************** *发送自定义的模板消息 ****************************************************/ publicfunctionwxSetSend($touser,$template_id,$url,$data,$topcolor='#7B68EE'){ $template=array( 'touser'=>$touser, 'template_id'=>$template_id, 'url'=>$url, 'topcolor'=>$topcolor, 'data'=>$data ); $jsonData=json_encode($template); $result=$this->wxSendTemplate($jsonData); return$result; } /**************************************************** *微信设置OAUTH跳转URL,返回字符串信息-SCOPE=snsapi_base//验证时不返回确认页面,只能获取OPENID ****************************************************/ publicfunctionwxOauthBase($redirectUrl,$state="",$appId=NULL){ $appId=is_null($appId)?self::appId:$appId; $url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appId."&redirect_uri=".$redirectUrl."&response_type=code&scope=snsapi_base&state=".$state."#wechat_redirect"; return$url; } /**************************************************** *微信设置OAUTH跳转URL,返回字符串信息-SCOPE=snsapi_userinfo//获取用户完整信息 ****************************************************/ publicfunctionwxOauthUserinfo($redirectUrl,$state="",$appId=NULL){ $appId=is_null($appId)?self::appId:$appId; $url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appId."&redirect_uri=".$redirectUrl."&response_type=code&scope=snsapi_userinfo&state=".$state."#wechat_redirect"; return$url; } /**************************************************** *微信OAUTH跳转指定URL ****************************************************/ publicfunctionwxHeader($url){ header("location:".$url); } /**************************************************** *微信通过OAUTH返回页面中获取AT信息 ****************************************************/ publicfunctionwxOauthAccessToken($code,$appId=NULL,$appSecret=NULL){ $appId=is_null($appId)?self::appId:$appId; $appSecret=is_null($appSecret)?self::appSecret:$appSecret; $url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appId."&secret=".$appSecret."&code=".$code."&grant_type=authorization_code"; $result=$this->wxHttpsRequest($url); //print_r($result); $jsoninfo=json_decode($result,true); //$access_token=$jsoninfo["access_token"]; return$jsoninfo; } /**************************************************** *微信通过OAUTH的Access_Token的信息获取当前用户信息//只执行在snsapi_userinfo模式运行 ****************************************************/ publicfunctionwxOauthUser($OauthAT,$openId){ $url="https://api.weixin.qq.com/sns/userinfo?access_token=".$OauthAT."&openid=".$openId."&lang=zh_CN"; $result=$this->wxHttpsRequest($url); $jsoninfo=json_decode($result,true); return$jsoninfo; } /**************************************************** *创建自定义菜单 ****************************************************/ publicfunctionwxMenuCreate($jsonData){ $wxAccessToken=$this->wxAccessToken(); $url="https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$wxAccessToken; $result=$this->wxHttpsRequest($url,$jsonData); $jsoninfo=json_decode($result,true); return$jsoninfo; } /**************************************************** *获取自定义菜单 ****************************************************/ publicfunctionwxMenuGet(){ $wxAccessToken=$this->wxAccessToken(); $url="https://api.weixin.qq.com/cgi-bin/menu/get?access_token=".$wxAccessToken; $result=$this->wxHttpsRequest($url); $jsoninfo=json_decode($result,true); return$jsoninfo; } /**************************************************** *删除自定义菜单 ****************************************************/ publicfunctionwxMenuDelete(){ $wxAccessToken=$this->wxAccessToken(); $url="https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=".$wxAccessToken; $result=$this->wxHttpsRequest($url); $jsoninfo=json_decode($result,true); return$jsoninfo; } /**************************************************** *获取第三方自定义菜单 ****************************************************/ publicfunctionwxMenuGetInfo(){ $wxAccessToken=$this->wxAccessToken(); $url="https://api.weixin.qq.com/cgi-bin/get_current_selfmenu_info?access_token=".$wxAccessToken; $result=$this->wxHttpsRequest($url); $jsoninfo=json_decode($result,true); return$jsoninfo; } /***************************************************** *生成随机字符串-最长为32位字符串 *****************************************************/ publicfunctionwxNonceStr($length=16,$type=FALSE){ $chars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $str=""; for($i=0;$i<$length;$i++){ $str.=substr($chars,mt_rand(0,strlen($chars)-1),1); } if($type==TRUE){ returnstrtoupper(md5(time().$str)); } else{ return$str; } } /******************************************************* *微信商户订单号-最长28位字符串 *******************************************************/ publicfunctionwxMchBillno($mchid=NULL){ if(is_null($mchid)){ if(self::mchid==""||is_null(self::mchid)){ $mchid=time(); } else{ $mchid=self::mchid; } } else{ $mchid=substr(addslashes($mchid),0,10); } returndate("Ymd",time()).time().$mchid; } /******************************************************* *微信格式化数组变成参数格式-支持url加密 *******************************************************/ publicfunctionwxSetParam($parameters){ if(is_array($parameters)&&!empty($parameters)){ $this->parameters=$parameters; return$this->parameters; } else{ returnarray(); } } /******************************************************* *微信格式化数组变成参数格式-支持url加密 *******************************************************/ publicfunctionwxFormatArray($parameters=NULL,$urlencode=FALSE){ if(is_null($parameters)){ $parameters=$this->parameters; } $restr="";//初始化空 ksort($parameters);//排序参数 foreach($parametersas$k=>$v){//循环定制参数 if(null!=$v&&"null"!=$v&&"sign"!=$k){ if($urlencode){//如果参数需要增加URL加密就增加,不需要则不需要 $v=urlencode($v); } $restr.=$k."=".$v."&";//返回完整字符串 } } if(strlen($restr)>0){//如果存在数据则将最后“&”删除 $restr=substr($restr,0,strlen($restr)-1); } return$restr;//返回字符串 } /******************************************************* *微信MD5签名生成器-需要将参数数组转化成为字符串[wxFormatArray方法] *******************************************************/ publicfunctionwxMd5Sign($content,$privatekey){ try{ if(is_null($privatekey)){ thrownewException("财付通签名key不能为空!"); } if(is_null($content)){ thrownewException("财付通签名内容不能为空"); } $signStr=$content."&key=".$privatekey; returnstrtoupper(md5($signStr)); } catch(Exception$e) { die($e->getMessage()); } } /******************************************************* *微信Sha1签名生成器-需要将参数数组转化成为字符串[wxFormatArray方法] *******************************************************/ publicfunctionwxSha1Sign($content){ try{ if(is_null($content)){ thrownewException("签名内容不能为空"); } //$signStr=$content; returnsha1($content); } catch(Exception$e) { die($e->getMessage()); } } /******************************************************* *微信jsApi整合方法-通过调用此方法获得jsapi数据 *******************************************************/ publicfunctionwxJsapiPackage(){ $jsapi_ticket=$this->wxJsApiTicket(); //注意URL一定要动态获取,不能hardcode. $protocol=(!empty($_SERVER['HTTPS'])&&$_SERVER['HTTPS']!=='off'||$_SERVER['SERVER_PORT']==443)?"https://":"http://"; $url=$protocol.$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]; $timestamp=time(); $nonceStr=$this->wxNonceStr(); $signPackage=array( "jsapi_ticket"=>$jsapi_ticket, "nonceStr"=>$nonceStr, "timestamp"=>$timestamp, "url"=>$url ); //这里参数的顺序要按照key值ASCII码升序排序 $rawString="jsapi_ticket=$jsapi_ticket&noncestr=$nonceStr×tamp=$timestamp&url=$url"; //$rawString=$this->wxFormatArray($signPackage); $signature=$this->wxSha1Sign($rawString); $signPackage['signature']=$signature; $signPackage['rawString']=$rawString; $signPackage['appId']=self::appId; return$signPackage; } /******************************************************* *将数组解析XML-微信红包接口 *******************************************************/ publicfunctionwxArrayToXml($parameters=NULL){ if(is_null($parameters)){ $parameters=$this->parameters; } if(!is_array($parameters)||empty($parameters)){ die("参数不为数组无法解析"); } $xml="<xml>"; foreach($arras$key=>$val) { if(is_numeric($val)) { $xml.="<".$key.">".$val."</".$key.">"; } else $xml.="<".$key."><![CDATA[".$val."]]></".$key.">"; } $xml.="</xml>"; return$xml; } /******************************************************* *微信卡券:上传LOGO-需要改写动态功能 *******************************************************/ publicfunctionwxCardUpdateImg(){ $wxAccessToken=$this->wxAccessToken(); //$data['access_token']=$wxAccessToken; $data['buffer']='@D:\\workspace\\htdocs\\yky_test\\logo.jpg'; $url="https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=".$wxAccessToken; $result=$this->wxHttpsRequest($url,$data); $jsoninfo=json_decode($result,true); return$jsoninfo; //array(1){["url"]=>string(121)"http://mmbiz.qpic.cn/mmbiz/ibuYxPHqeXePNTW4ATKyias1Cf3zTKiars9PFPzF1k5icvXD7xW0kXUAxHDzkEPd9micCMCN0dcTJfW6Tnm93MiaAfRQ/0"} } /******************************************************* *微信卡券:获取颜色 *******************************************************/ publicfunctionwxCardColor(){ $wxAccessToken=$this->wxAccessToken(); $url="https://api.weixin.qq.com/card/getcolors?access_token=".$wxAccessToken; $result=$this->wxHttpsRequest($url); $jsoninfo=json_decode($result,true); return$jsoninfo; } /******************************************************* *微信卡券:创建卡券 *******************************************************/ publicfunctionwxCardCreated($jsonData){ $wxAccessToken=$this->wxAccessToken(); $url="https://api.weixin.qq.com/card/create?access_token=".$wxAccessToken; $result=$this->wxHttpsRequest($url,$jsonData); $jsoninfo=json_decode($result,true); return$jsoninfo; } /******************************************************* *微信卡券:JSAPI卡券Package-基础参数没有附带任何值-再生产环境中需要根据实际情况进行修改 *******************************************************/ publicfunctionwxCardPackage($cardId){ $timestamp=time(); $api_ticket=$this->wxJsApiTicket(); $cardId=$cardId; $arrays=array($api_ticket,$timestamp,$cardId); sort($arrays); $string=sha1(implode("",$arrays)); $resultArray['card_id']=$cardId; $resultArray['card_ext']=array(); $resultArray['card_ext']['openid']='oOmn4s9MiwqHSNNvPn0dBtU23toA'; $resultArray['card_ext']['timestamp']=$timestamp; $resultArray['card_ext']['signature']=$string; return$resultArray; } }
4.[代码]微信JSAPI
<?php require_once'lib.inc.php'; $wx=newWxApi(); //通过网页获取openid //if(!isset($_GET['code'])){ //header("location:https://open.weixin.qq.com/connect/oauth2/authorize?appid=".WxApi::appId."&redirect_uri=http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']."&response_type=code&scope=snsapi_base&state=1#wechat_redirect"); //} //else{ //$CODE=$_GET['code']; //$Info=$wx->wxOauthAccessToken($CODE); //print_r($Info); //$openId=$Info['openid']; //} //////////////////////////////////////////// $signPackage=$wx->wxJsapiPackage(); //print_r($signPackage); $kqInfo=$wx->wxCardPackage(""); $listInfo=$wx->wxCardListPackage(); ?> <html> <head> <title>JSAPI接口测试</title> <metacharset="UTF-8"> <metaname="viewport"content="width=device-width,initial-scale=1.0"> <scriptsrc="http://code.jquery.com/jquery-1.11.2.min.js"></script> <scriptsrc="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> </head> <body> <div> <inputtype="button"id="batchAddCard"name="batchAddCard"value="添加卡券"/><br/> <inputtype="button"id="openCard"name="openCard"value="拉起卡券库"/><br/> <inputtype="button"id="ShareTimeLine"name="ShareTimeLine"value="分享朋友圈"/><br/> <divid="showInfo"> </div> </div> <script> wx.config({ debug:false, appId:'<?phpecho$signPackage["appId"];?>', timestamp:<?phpecho$signPackage["timestamp"];?>, nonceStr:'<?phpecho$signPackage["nonceStr"];?>', signature:'<?phpecho$signPackage["signature"];?>', jsApiList:[ //所有要调用的API都要加到这个列表中 'onMenuShareTimeline', 'onMenuShareAppMessage', 'addCard', 'openCard' ] }); wx.ready(function(){ //在这里调用API wx.onMenuShareAppMessage({ title:'互联网之子', desc:'在长大的过程中,我才慢慢发现,我身边的所有事,别人跟我说的所有事,那些所谓本来如此,注定如此的事,它们其实没有非得如此,事情是可以改变的。更重要的是,有些事既然错了,那就该做出改变。', link:'http://movie.douban.com/subject/25785114/', imgUrl:'http://demo.open.weixin.qq.com/jssdk/images/p2166127561.jpg', trigger:function(res){ //不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回 alert('用户点击发送给朋友'); }, success:function(res){ alert('已分享'); }, cancel:function(res){ alert('已取消'); }, fail:function(res){ alert(JSON.stringify(res)); } }); document.querySelector('#ShareTimeLine').onclick=function(){ wx.onMenuShareTimeline({ title:'互联网之子', link:'http://movie.douban.com/subject/25785114/', imgUrl:'http://demo.open.weixin.qq.com/jssdk/images/p2166127561.jpg', trigger:function(res){ //不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回 alert('用户点击分享到朋友圈'); }, success:function(res){ alert('已分享'); }, cancel:function(res){ alert('已取消'); }, fail:function(res){ alert(JSON.stringify(res)); } }); }; document.querySelector('#batchAddCard').onclick=function(){ wx.addCard({ cardList:[ { cardId:'p7G0Cj_1HGF2nijO4sTlVTzawFhI', cardExt:'{"timestamp":"<?phpecho$kqInfo['cardExt']['timestamp'];?>","signature":"<?phpecho$kqInfo['cardExt']['signature'];?>"}' } ], success:function(res){ varcardList=res.cardList;//添加的卡券列表信息 alert(cardList); }, cancel:function(res){ alert('已取消'); }, fail:function(res){ alert(JSON.stringify(res)); } }); }; varshareData={ title:'微信JS-SDKDemo', desc:'微信JS-SDK,帮助第三方为用户提供更优质的移动web服务', link:'http://demo.open.weixin.qq.com/jssdk/', imgUrl:'http://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRt8Qia4lv7k3M9J1SKqKCImxJCt7j9rHYicKDI45jRPBxdzdyREWnk0ia0N5TMnMfth7SdxtzMvVgXg/0' }; wx.onMenuShareAppMessage(shareData); wx.onMenuShareTimeline(shareData); }); varreadyFunc=functiononBridgeReady(){ //绑定关注事件 document.querySelector('#openCard').addEventListener('click', function(e){ WeixinJSBridge.invoke('chooseCard',{ "app_id":"<?phpecho$listInfo['app_id']?>", "location_id":'', "sign_type":"SHA1", "card_sign":"<?phpecho$listInfo['card_sign']?>", "card_id":"<?phpecho$listInfo['card_id']?>", "card_type":"<?phpecho$listInfo['card_type']?>", "time_stamp":"<?phpecho$listInfo['time_stamp']?>", "nonce_str":"<?phpecho$listInfo['nonce_str']?>" }, function(res){ alert(res.err_msg+res.choose_card_info); $("#showInfo").empty().append(res.err_msg+res.choose_card_info); }); }); } if(typeofWeixinJSBridge==="undefined"){ document.addEventListener('WeixinJSBridgeReady',readyFunc,false); }else{ readyFunc(); } </script> </body> </html>
5.[代码]创建卡券
$kqinfo=array("card"=>array()); $kqinfo['card']['card_type']='GENERAL_COUPON'; $kqinfo['card']['general_coupon']=array('base_info'=>array(),'default_detail'=>array()); $kqinfo['card']['general_coupon']['base_info']['logo_url']='URL'; $kqinfo['card']['general_coupon']['base_info']['code_type']='CODE_TYPE_QRCODE'; $kqinfo['card']['general_coupon']['base_info']['brand_name']=''; $kqinfo['card']['general_coupon']['base_info']['title']='测试卡券'; $kqinfo['card']['general_coupon']['base_info']['color']='Color030'; $kqinfo['card']['general_coupon']['base_info']['notice']='测试测试测试'; $kqinfo['card']['general_coupon']['base_info']['description']='这是一张优惠券'; $kqinfo['card']['general_coupon']['base_info']['date_info']['type']=1; $kqinfo['card']['general_coupon']['base_info']['date_info']['begin_timestamp']=time(); $kqinfo['card']['general_coupon']['base_info']['date_info']['end_timestamp']=time()+100*24*3600; $kqinfo['card']['general_coupon']['base_info']['sku']['quantity']=100000; $kqinfo['card']['general_coupon']['default_detail']='测试数据\n测试数据\n测试数据'; //var_dump($kqinfo); //$kqinfo=json_encode($kqinfo); $kqinfo=C::enJson($kqinfo); //print_r($kqinfo); //$resultData=$wx->wxCardCreated($kqinfo);
以上所述就是本文的全部内容,希望大家能够喜欢。