黔优媒体网-软文媒体自助发稿平台!
  1. 行业资讯
  2. 正文

微信API接口

来源:黔优媒体网   时间:2024-09-19

这篇文章介绍的内容是关于微信api接口 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

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

微信入口绑定,微信事件处理,微信API全部操作包含在这些文件中。
微信支付、微信红包、微信卡券、微信小店。

1. [代码]index.php    

 ?php
include_once #39;lib.inc.php #39;;
$wcObj = new WeChat( YOUKUIYUAN 
$wcObj- wcValid();

2. [代码]微信入口类

 ?php
 * Description of wechat
 * @author Administrator
class WeChat extends WxApi{
 public $token = 
 //put your code here
 public function __construct($token = ) {
 parent::__construct();
 $this- token = $token;
 public function wcCheckSignature(){
 try{
 if (empty($this- token)) {
 throw new Exception( #39;TOKEN is not defined! #39;);
 $signature = $_GET[ signature 
 $timestamp = $_GET[ timestamp 
 $nonce = $_GET[ nonce 
 $token = $this- 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;
 catch (Exception $e) {
 echo #39;Message: #39; .$e- getMessage();
 public function wcValid(){
 $echoStr = isset($_GET[ echostr ]) !empty($_GET[ echostr ]) ? addslashes($_GET[ echostr ]) : NULL;
 if(is_null($echoStr)){
 $this- wcMsg();
 else{
 //valid signature , option
 if($this- wcCheckSignature()){
 echo $echoStr;
 exit;
 else{
 exit();
 public function wcMsg(){
 //get post data, May be due to the different environments
 $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, #39;SimpleXMLElement #39;, LIBXML_NOCDATA);
 $this- zcLog(TRUE,$postObj);
 $fromUsername = $postObj- FromUserName;
 $toUsername = $postObj- ToUserName;
 $MsgType = $postObj- MsgType;
 if($MsgType == #39;event #39;){//执行事件相应
 $Event = $postObj- Event;
 switch ($Event) {
 case #39;subscribe #39;://关注
 break;
 case #39;unsubscribe #39;://取消关注
 break;
 case #39;SCAN #39;://扫描
 break;
 case #39;LOCATION #39;://地址
 break;
 case #39;CLICK #39;://点击时间
 break;
 case #39;VIEW #39;://跳转
 break;
 case #39;card_pass_check #39;://卡券审核通过
 break;
 case #39;card_not_pass_check #39;://卡券审核失败
 break;
 case #39;user_get_card #39;://用户领取卡券
 break;
 case #39;user_del_card #39;://用户删除卡券
 break;
 case #39;user_view_card #39;://用户浏览会员卡
 break;
 case #39;user_consume_card #39;://用户核销卡券
 break;
 case #39;merchant_order #39;://微小店用户下单付款
 break;
 default:
 break;
 else{
 switch ($MsgType) {
 case #39;text #39;://文本格式
 break;
 case #39;image #39;://图片格式
 break;
 case #39;voice #39;://声音
 break;
 case #39;video #39;://视频
 break;
 case #39;shortvideo #39;://小视频
 break;
 case #39;location #39;://上传地理位置
 break;
 case #39;link #39;://链接相应
 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 = Welcome to wechat world! 
 $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
 echo $resultStr;
 else{
 echo Input something... 
 ////////////////////////////////////////////////////////////////////
 else{
 echo 暂时没有任何信息! 
 exit;
 //日志LOG
 public function zcLog($errcode , $errmsg){
 $this- returnAy = array();
 $this- returnAy[ #39;errcode #39;] = $errcode;
 $this- returnAy[ #39;errmsg #39;] = $errmsg;
 $this- returnAy[ #39;errtime #39;] = date( Y-m-d H: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, #39;10.206.30.98 #39;);
 //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, #39;PEM #39;);
 curl_setopt($ch,CURLOPT_SSLCERT,getcwd(). #39;/apiclient_cert.pem #39;);
 //默认格式为PEM,可以注释
 curl_setopt($ch,CURLOPT_SSLKEYTYPE, #39;PEM #39;);
 curl_setopt($ch,CURLOPT_SSLKEY,getcwd(). #39;/apiclient_key.pem #39;);
 curl_setopt($ch,CURLOPT_CAINFO, #39;PEM #39;);
 curl_setopt($ch,CURLOPT_CAINFO,getcwd(). #39;/rootca.pem #39;);
 //第二种方式,两个文件合成一个.pem文件
 //curl_setopt($ch,CURLOPT_SSLCERT,getcwd(). #39;/all.pem #39;);
 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:$error\n 
 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[ #39;ticket #39;];
 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 = #39;#7B68EE #39;){
 $template = array(
 #39;touser #39; = $touser,
 #39;template_id #39; = $template_id,
 #39;url #39; = $url,
 #39;topcolor #39; = $topcolor,
 #39;data #39; = $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[ #39;HTTPS #39;]) $_SERVER[ #39;HTTPS #39;] !== #39;off #39; || $_SERVER[ #39;SERVER_PORT #39;] == 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 timestamp=$timestamp url=$url 
 //$rawString = $this- wxFormatArray($signPackage);
 $signature = $this- wxSha1Sign($rawString);
 $signPackage[ #39;signature #39;] = $signature;
 $signPackage[ #39;rawString #39;] = $rawString;
 $signPackage[ #39;appId #39;] = 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[ #39;access_token #39;] = $wxAccessToken; $data[ #39;buffer #39;] = #39;@D:\\workspace\\htdocs\\yky_test\\logo.jpg #39;; $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[ #39;card_id #39;] = $cardId; $resultArray[ #39;card_ext #39;] = array(); $resultArray[ #39;card_ext #39;][ #39;openid #39;] = #39;oOmn4s9MiwqHSNNvPn0dBtU23toA #39;; $resultArray[ #39;card_ext #39;][ #39;timestamp #39;] = $timestamp; $resultArray[ #39;card_ext #39;][ #39;signature #39;] = $string; return $resultArray;

}

4. [代码]微信JSAPI

 ?php
 require_once #39;lib.inc.php #39;;
 $wx = new WxApi();
 //通过网页获取openid
 //if(!isset($_GET[ #39;code #39;])){
 // header( location:https://open.weixin.qq.com/connect/oauth2/authorize?appid= .WxApi::appId. redirect_uri=http:// .$_SERVER[ #39;SERVER_NAME #39;].$_SERVER[ #39;PHP_SELF #39;]. response_type=code scope=snsapi_base state=1#wechat_redirect 
 //else{
 // $CODE = $_GET[ #39;code #39;];
 // $Info = $wx- wxOauthAccessToken($CODE);
 //print_r($Info);
 // $openId = $Info[ #39;openid #39;]; 
 ////////////////////////////////////////////
 $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 
 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 / 
 p id= showInfo 
 script 
 wx.config({
 debug: false,
 appId: #39; ?php echo $signPackage[ appId ? #39;,
 timestamp: ?php echo $signPackage[ timestamp ? ,
 nonceStr: #39; ?php echo $signPackage[ nonceStr ? #39;,
 signature: #39; ?php echo $signPackage[ signature ? #39;,
 jsApiList: [
 // 所有要调用的 API 都要加到这个列表中
 #39;onMenuShareTimeline #39;,
 #39;onMenuShareAppMessage #39;,
 #39;addCard #39;,
 #39;openCard #39;
 wx.ready(function () {
 // 在这里调用 API
 wx.onMenuShareAppMessage({
 title: #39;互联网之子 #39;,
 desc: #39;在长大的过程中,我才慢慢发现,我身边的所有事,别人跟我说的所有事,那些所谓本来如此,注定如此的事,它们其实没有非得如此,事情是可以改变的。更重要的是,有些事既然错了,那就该做出改变。 #39;,
 link: #39;http://movie.douban.com/subject/25785114/ #39;,
 imgUrl: #39;http://demo.open.weixin.qq.com/jssdk/images/p2166127561.jpg #39;,
 trigger: function (res) {
 // 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
 alert( #39;用户点击发送给朋友 #39;);
 success: function (res) {
 alert( #39;已分享 #39;);
 cancel: function (res) {
 alert( #39;已取消 #39;);
 fail: function (res) {
 alert(JSON.stringify(res));
 document.querySelector( #39;#ShareTimeLine #39;).onclick = function () {
 wx.onMenuShareTimeline({
 title: #39;互联网之子 #39;,
 link: #39;http://movie.douban.com/subject/25785114/ #39;,
 imgUrl: #39;http://demo.open.weixin.qq.com/jssdk/images/p2166127561.jpg #39;,
 trigger: function (res) {
 // 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
 alert( #39;用户点击分享到朋友圈 #39;);
 success: function (res) {
 alert( #39;已分享 #39;);
 cancel: function (res) {
 alert( #39;已取消 #39;);
 fail: function (res) {
 alert(JSON.stringify(res));
 document.querySelector( #39;#batchAddCard #39;).onclick = function () {
 wx.addCard({
 cardList: [
 cardId: #39;p7G0Cj_1HGF2nijO4sTlVTzawFhI #39;,
 cardExt: #39;{ timestamp : ?php echo $kqInfo[ #39;cardExt #39;][ #39;timestamp #39;];? , signature : ?php echo $kqInfo[ #39;cardExt #39;][ #39;signature #39;];? } #39;
 success: function (res) {
 var cardList = res.cardList; // 添加的卡券列表信息
 alert(cardList);
 cancel: function (res) {
 alert( #39;已取消 #39;);
 fail: function (res) {
 alert(JSON.stringify(res));
 var shareData = {
 title: #39;微信JS-SDK Demo #39;,
 desc: #39;微信JS-SDK,帮助第三方为用户提供更优质的移动web服务 #39;,
 link: #39;http://demo.open.weixin.qq.com/jssdk/ #39;,
 imgUrl: #39;http://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRt8Qia4lv7k3M9J1SKqKCImxJCt7j9rHYicKDI45jRPBxdzdyREWnk0ia0N5TMnMfth7SdxtzMvVgXg/0 #39;
 wx.onMenuShareAppMessage(shareData);
 wx.onMenuShareTimeline(shareData);
 var readyFunc = function onBridgeReady() {
 // 绑定关注事件
 document.querySelector( #39;#openCard #39;).addEventListener( #39;click #39;,
 function(e) {
 WeixinJSBridge.invoke( #39;chooseCard #39;, {
 app_id : ?php echo $listInfo[ #39;app_id #39;]? ,
 location_id : #39; #39;,
 sign_type : SHA1 ,
 card_sign : ?php echo $listInfo[ #39;card_sign #39;]? ,
 card_id : ?php echo $listInfo[ #39;card_id #39;]? ,
 card_type : ?php echo $listInfo[ #39;card_type #39;]? ,
 time_stamp : ?php echo $listInfo[ #39;time_stamp #39;]? ,
 nonce_str : ?php echo $listInfo[ #39;nonce_str #39;]? 
 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( #39;WeixinJSBridgeReady #39;, readyFunc, false);
 } else {
 readyFunc();
 /script 
 /body 
 /html 

5. [代码]创建卡券

$kqinfo = array( card = array());
$kqinfo[ #39;card #39;][ #39;card_type #39;] = #39;GENERAL_COUPON #39;;
$kqinfo[ #39;card #39;][ #39;general_coupon #39;] = array( #39;base_info #39; = array(), #39;default_detail #39; = array());
$kqinfo[ #39;card #39;][ #39;general_coupon #39;][ #39;base_info #39;][ #39;logo_url #39;] = #39;URL #39;;
$kqinfo[ #39;card #39;][ #39;general_coupon #39;][ #39;base_info #39;][ #39;code_type #39;] = #39;CODE_TYPE_QRCODE #39;;
$kqinfo[ #39;card #39;][ #39;general_coupon #39;][ #39;base_info #39;][ #39;brand_name #39;] = #39; #39;;
$kqinfo[ #39;card #39;][ #39;general_coupon #39;][ #39;base_info #39;][ #39;title #39;] = #39;测试卡券 #39;;
$kqinfo[ #39;card #39;][ #39;general_coupon #39;][ #39;base_info #39;][ #39;color #39;] = #39;Color030 #39;;
$kqinfo[ #39;card #39;][ #39;general_coupon #39;][ #39;base_info #39;][ #39;notice #39;] = #39;测试测试测试 #39;;
$kqinfo[ #39;card #39;][ #39;general_coupon #39;][ #39;base_info #39;][ #39;description #39;] = #39;这是一张优惠券 #39;;
$kqinfo[ #39;card #39;][ #39;general_coupon #39;][ #39;base_info #39;][ #39;date_info #39;][ #39;type #39;] = 1;
$kqinfo[ #39;card #39;][ #39;general_coupon #39;][ #39;base_info #39;][ #39;date_info #39;][ #39;begin_timestamp #39;] = time();
$kqinfo[ #39;card #39;][ #39;general_coupon #39;][ #39;base_info #39;][ #39;date_info #39;][ #39;end_timestamp #39;] = time() + 100 * 24 * 3600;
$kqinfo[ #39;card #39;][ #39;general_coupon #39;][ #39;base_info #39;][ #39;sku #39;][ #39;quantity #39;] = 100000;
$kqinfo[ #39;card #39;][ #39;general_coupon #39;][ #39;default_detail #39;] = #39;测试数据\n测试数据\n测试数据 #39;;
//var_dump($kqinfo);
//$kqinfo = json_encode($kqinfo);
$kqinfo = C::enJson($kqinfo);
//print_r( $kqinfo);
//$resultData = $wx- wxCardCreated($kqinfo);

相关推荐:

php Restful api 示例

以上就是微信API接口的详细内容,更多请关注php中文网其它相关文章!

微信app下载

微信是一款手机通信软件,支持通过手机网络发送语音短信、视频、图片和文字。微信可以单聊及群聊,还能根据地理位置找到附近的人,带给大家全新的移动沟通体验,有需要的小伙伴快来保存下载体验吧!


【免责申明】黔优媒体网以上展示内容来源于用户自主上传、合作媒体、企业机构或网络收集整理,版权争议与本站无关,文章涉及见解与观点不代表黔优媒体网官方立场,请读者仅做参考,本文标题:微信API接口;欢迎转载,转载时请说明出处。若您认为本文侵犯了您的版权信息,或您发现该内容有任何违法/违规的内容,请您立即联系我们及时修正或删除。(邮箱号: kefu@qianu.com)
此操作需要登录,请先登录~
免费注册会员,尽享国内领先平台!