A5下载 - 努力做内容最丰富最安全的下载站!

A5站长下载站

当前位置:A5下载 > 编程开发 > 网站开发 > 微信API接口大全

微信API接口大全

时间:2015-04-15 16:13作者:小赵人气:1235

本文给大家介绍的是个人总结的一些微信API接口,包括微信支付、微信红包、微信卡券、微信小店等,十分的全面,有需要的小伙伴可以参考下。

微信入口绑定,微信事件处理,微信API全部操作包含在这些文件中。

微信支付、微信红包、微信卡券、微信小店。

1. [代码]index.php

<?php

include_once 'lib.inc.php';

$wcObj = new WeChat("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

/********************************************************

* @author Kyler You <QQ:2444756311>

* @link http://mp.weixin.qq.com/wiki/home/index.html

* @version 2.0.1

* @uses $wxApi = new WxApi();

* @package 微信API接口 陆续会继续进行更新

********************************************************/

class WxApi {

//const appId = "";

//const appSecret = "";

const appId = "";

const appSecret = "";

//const mchid = ""; //商户号

//const privatekey = ""; //私钥

public $parameters = array();

public function __construct(){

}

/****************************************************

* 微信提交API方法,返回微信指定JSON

****************************************************/

public function wxHttpsRequest($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;

}

/****************************************************

* 微信带证书提交数据 - 微信红包使用

****************************************************/

public function wxHttpsRequestPem($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 "call faild, errorCode:$errorn";

curl_close($ch);

return false;

}

}

/****************************************************

* 微信获取AccessToken 返回指定微信公众号的at信息

****************************************************/

public function wxAccessToken($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信息

****************************************************/

public function wxJsApiTicket($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获取用户信息,返回数组

****************************************************/

public function wxGetUser($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

****************************************************/

public function wxQrCodeTicket($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生成二维码

****************************************************/

public function wxQrCode($ticket){

$url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" . urlencode($ticket);

return $url;

}

/****************************************************

* 发送自定义的模板消息

****************************************************/

public function wxSetSend($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

****************************************************/

public function wxOauthBase($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 //获取用户完整信息

****************************************************/

public function wxOauthUserinfo($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

****************************************************/

public function wxHeader($url){

header("location:".$url);

}

/****************************************************

* 微信通过OAUTH返回页面中获取AT信息

****************************************************/

public function wxOauthAccessToken($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模式运行

****************************************************/

public function wxOauthUser($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;

}

/****************************************************

* 创建自定义菜单

****************************************************/

public function wxMenuCreate($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;

}

/****************************************************

* 获取自定义菜单

****************************************************/

public function wxMenuGet(){

$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;

}

/****************************************************

* 删除自定义菜单

****************************************************/

public function wxMenuDelete(){

$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;

}

/****************************************************

* 获取第三方自定义菜单

****************************************************/

public function wxMenuGetInfo(){

$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位字符串

*****************************************************/

public function wxNonceStr($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){

return strtoupper(md5(time() . $str));

}

else {

return $str;

}

}

/*******************************************************

* 微信商户订单号 - 最长28位字符串

*******************************************************/

public function wxMchBillno($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);

}

return date("Ymd",time()).time().$mchid;

}

/*******************************************************

* 微信格式化数组变成参数格式 - 支持url加密

*******************************************************/

public function wxSetParam($parameters){

if(is_array($parameters) && !empty($parameters)){

$this->parameters = $parameters;

return $this->parameters;

}

else{

return array();

}

}

/*******************************************************

* 微信格式化数组变成参数格式 - 支持url加密

*******************************************************/

public function wxFormatArray($parameters = NULL, $urlencode = FALSE){

if(is_null($parameters)){

$parameters = $this->parameters;

}

$restr = "";//初始化空

ksort($parameters);//排序参数

foreach ($parameters as $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方法]

*******************************************************/

public function wxMd5Sign($content, $privatekey){

try {

if (is_null($privatekey)) {

throw new Exception("财付通签名key不能为空!");

}

if (is_null($content)) {

throw new Exception("财付通签名内容不能为空");

}

$signStr = $content . "&key=" . $privatekey;

return strtoupper(md5($signStr));

}

catch (Exception $e)

{

die($e->getMessage());

}

}

/*******************************************************

* 微信Sha1签名生成器 - 需要将参数数组转化成为字符串[wxFormatArray方法]

*******************************************************/

public function wxSha1Sign($content){

try {

if (is_null($content)) {

throw new Exception("签名内容不能为空");

}

//$signStr = $content;

return sha1($content);

}

catch (Exception $e)

{

die($e->getMessage());

}

}

/*******************************************************

* 微信jsApi整合方法 - 通过调用此方法获得jsapi数据

*******************************************************/

public function wxJsapiPackage(){

$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 - 微信红包接口

*******************************************************/

public function wxArrayToXml($parameters = NULL){

if(is_null($parameters)){

$parameters = $this->parameters;

}

if(!is_array($parameters) || empty($parameters)){

die("参数不为数组无法解析");

}

$xml = "<xml>";

foreach ($arr as $key=>$val)

{

if (is_numeric($val))

{

$xml.="<".$key.">".$val."</".$key.">";

}

else

$xml.="<".$key."><![CDATA[".$val."]]></".$key.">";

}

$xml.="</xml>";

return $xml;

}

/*******************************************************

* 微信卡券:上传LOGO - 需要改写动态功能

*******************************************************/

public function wxCardUpdateImg() {

$wxAccessToken = $this->wxAccessToken();

//$data['access_token'] = $wxAccessToken;

$data['buffer'] = '@D:workspacehtdocsyky_testlogo.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" }

}

/*******************************************************

* 微信卡券:获取颜色

*******************************************************/

public function wxCardColor(){

$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;

}

/*******************************************************

* 微信卡券:创建卡券

*******************************************************/

public function wxCardCreated($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 - 基础参数没有附带任何值 - 再生产环境中需要根据实际情况进行修改

*******************************************************/

public function wxCardPackage($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 = new WxApi();

//通过网页获取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>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<script src="http://code.jquery.com/jquery-1.11.2.min.js"></script>

<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>

</head>

<body>

<div>

<input type="button" id="batchAddCard" name="batchAddCard" value="添加卡券" /><br />

<input type="button" id="openCard" name="openCard" value="拉起卡券库" /><br />

<input type="button" id="ShareTimeLine" name="ShareTimeLine" value="分享朋友圈" /><br />

<div id="showInfo">

</div>

</div>

<script>

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: [

// 所有要调用的 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":"<?php echo $kqInfo['cardExt']['timestamp'];?>", "signature":"<?php echo $kqInfo['cardExt']['signature'];?>"}'

}

],

success: function (res) {

var cardList = res.cardList; // 添加的卡券列表信息

alert(cardList);

},

cancel: function (res) {

alert('已取消');

},

fail: function (res) {

alert(JSON.stringify(res));

}

});

};

var shareData = {

title: '微信JS-SDK Demo',

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);

});

var readyFunc = function onBridgeReady() {

// 绑定关注事件

document.querySelector('#openCard').addEventListener('click',

function(e) {

WeixinJSBridge.invoke('chooseCard', {

"app_id": "<?php echo $listInfo['app_id']?>",

"location_id ": '',

"sign_type": "SHA1",

"card_sign": "<?php echo $listInfo['card_sign']?>",

"card_id": "<?php echo $listInfo['card_id']?>",

"card_type": "<?php echo $listInfo['card_type']?>",

"time_stamp": "<?php echo $listInfo['time_stamp']?>",

"nonce_str": "<?php echo $listInfo['nonce_str']?>"

},

function(res) {

alert(res.err_msg + res.choose_card_info);

$("#showInfo").empty().append(res.err_msg + res.choose_card_info);

});

});

}

if (typeof WeixinJSBridge === "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);

以上所述就是本文的全部内容,希望大家能够喜欢。

标签微信,API,接口,大全,本文,大家,介绍,个人,总结,些微

相关下载

查看所有评论+

网友评论

网友
您的评论需要经过审核才能显示

公众号