微信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);
以上所述就是本文的全部内容,希望大家能够喜欢。