微信小店

更新时间: 阅读: 评论:0

冻虾怎么做好吃又简单-微波炉做披萨

微信小店
2023年3月16日发(作者:木瓜的营养)

微信API接⼝整理

总结的⼀些微信API接⼝,包括微信⽀付、微信红包、微信卡券、微信⼩店等。

微信⼊⼝绑定,微信事件处理,微信API全部操作包含在这些⽂件中。

微信⽀付、微信红包、微信卡券、微信⼩店。

[代码]

<?php

include_once'';

$wcObj=newWeChat("YOUKUIYUAN");

$wcObj->wcValid();

[代码]微信⼊⼝类

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

//uSORT_STRINGrule

sort($tmpArr,SORT_STRING);

$tmpStr=implode($tmpArr);

$tmpStr=sha1($tmpStr);

if($tmpStr==$signature){

returntrue;

}el{

returnfal;

}

}

catch(Exception$e){

echo'Message:'.$e->getMessage();

}

}

publicfunctionwcValid(){

$echoStr=ist($_GET["echostr"])&&!empty($_GET["echostr"])?addslashes($_GET["echostr"]):NULL;

if(is_null($echoStr)){

$this->wcMsg();

}

el{

//validsignature,option

if($this->wcCheckSignature()){

echo$echoStr;

exit;

}

el{

exit();

}

}

}

publicfunctionwcMsg(){

//getpostdata,Maybeduetothedifferentenvironments

$postStr=ist($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);

$fromUrname=$postObj->FromUrName;

$toUrname=$postObj->ToUrName;

$MsgType=$postObj->MsgType;

if($MsgType=='event'){//执⾏事件相应

$Event=$postObj->Event;

switch($Event){

ca'subscribe'://关注

break;

ca'unsubscribe'://取消关注

break;

ca'SCAN'://扫描

break;

ca'LOCATION'://地址

break;

ca'CLICK'://点击时间

break;

ca'VIEW'://跳转

break;

ca'card_pass_check'://卡券审核通过

break;

ca'card_not_pass_check'://卡券哈尔滨三日游最佳路线 审核失败

break;

ca'ur_get_card'://⽤户领取卡券

break;

ca'ur_del_card'://⽤户删除卡券

break;

ca'ur_view_card'://⽤户浏览会员卡

break;

ca'ur_consume_card'://⽤户核销卡券

break;

ca'merchant_order'://微⼩店⽤户下单付款

break;

default:

break;

}

}

el{

switch($MsgType){

ca'text'://⽂本格式

break;

ca'image'://图⽚格式

break;

ca'voice'://声⾳

break;

ca'video'://视频

break;

ca'shortvideo'://⼩视频

break;

ca'location'://上传地理位置

break;

ca'link'://链接相应

break;

default:

break;

}

}

$keyword=trim($postObj->Content);

$time=time();

$textTpl="

%s

0

";

if(!empty($keyword)){

$msgType="text";

$contentStr="Welcometowechatworld!";

$resultStr=sprintf($textTpl,$fromUrname,$toUrname,$time,$msgType,$contentStr);

echo$resultStr;

}

el{

";

}

}

el{

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

fclo($logfile);

//return$this->returnAy;

}

}

[代码]微信操作类-更新了⾃定义菜单部分

<?php

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

*@authorKylerYou

*@version2.0.1

*@us$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_topt($curl,CURLOPT_URL,$url);

curl_topt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);

curl_topt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);

if(!empty($data)){

curl_topt($curl,CURLOPT_POST,1);

curl_topt($curl,CURLOPT_POSTFIELDS,$data);

}

curl_topt($curl,CURLOPT_RETURNTRANSFER,1);

$output=curl_exec($curl);

curl_clo($curl);

return$output;

}

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

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

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

publicfunctionwxHttpsRequestPem($url,$vars,$cond=30,$aHeader=array()){

$ch=curl_init();

//超时时间

curl_topt($ch,CURLOPT_TIMEOUT,$cond);

curl_topt($ch,CURLOPT_RETURNTRANSFER,1);

//这⾥设置代理,如果有的话

//curl_topt($ch,CURLOPT_PROXY,'10.206.30.98');

//curl_topt($ch,CURLOPT_PROXYPORT,8080);

curl_topt($ch,CURLOPT_URL,$url);

curl_topt($ch,CURLOPT_SSL_VERIFYPEER,fal);

curl_topt($ch,CURLOPT_SSL_VERIFYHOST,fal);

//以下两种⽅式需选择⼀种

//第⼀种⽅法,cert与key分别属于两个.pem⽂件

//默认格式为PEM,可以注释

curl_topt($ch,CURLOPT_SSLCERTTYPE,'PEM');

curl_topt($ch,CURLOPT_SSLCERT,getcwd().'/apiclient_');

//默认格式为PEM,可以注释

curl_topt($ch,CURLOPT_SSLKEYTYPE,'PEM');

curl_topt($ch,CURLOPT_SSLKEY,getcwd().'/apiclient_');

curl_topt($ch,CURLOPT_CAINFO,'PEM');

curl_topt($ch,CURLOPT_CAINFO,getcwd().'/');

//第⼆种⽅式,两个⽂件合成⼀个.pem⽂件

//curl_topt($ch,CURLOPT_SSLCERT,getcwd().'/');

if(count($aHeader)>=1){

curl_topt($ch,CURLOPT_HTTPHEADER,$aHeader);

}

curl_topt($ch,CURLOPT_POST,1);

curl_topt($ch,CURLOPT_POSTFIELDS,$vars);

$data=curl_exec($ch);

if($data){

curl_clo($ch);

return$data;

}

el{

$error=curl_errno($ch);

echo"callfaild,errorCode:$errorn";

curl_clo($ch);

returnfal;

}

}

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

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

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

publicfunctionwxAccessToken($appId=NULL,$appSecret=NULL){

$appId=is_null($appId)?lf::appId:$appId;

$appSecret=is_null($appSecret)?lf::appSecret:$appSecret;

$data=json_decode(file_get_contents("access_"));

if($data->expire_time

//echo$appId,$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_","w");

fwrite($fp,json_encode($data));

fclo($fp);

}

}

el{

$access_token=$data->access_token;

}

return$access_token;

}

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

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

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

publicfunctionwxJsApiTicket($appId=NULL,$appSecret=NULL){

$appId=is_null($appId)?lf::appId:$appId;

$appSecret=is_null($appSecret)?lf::appSecret:$appSecret;

$data=json_decode(file_get_contents("jsapi_"));

if($data->expire_time

$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_","w");

fwrite($fp,json_encode($data));

fclo($fp);

}

}

el{

$ticket=$data->jsapi_ticket;

}

return$ticket;

}

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

*微信通过OPENID获取⽤户信息,返回数组

**********************************南通小题 ******************/

publicfunctionwxGetUr($openId){

$wxAccessToken=$this->wxAccessToken();

$result=$this->wxHttpsRequest($url);

$jsoninfo=json_decode($result,true);

return$jsoninfo;

}

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

*微信⽣成⼆维码ticket

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

publicfunctionwxQrCodeTicket($jsonData){

$wxAccessToken=$this->wxAccessToken();

$result=$this->wxHttpsRequest($url,$jsonData);

return$result;

}

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

*山中古诗 微信通过ticket⽣成⼆维码

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

publicfunctionwxQrCode($ticket){

return$url;

}

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

*发送⾃定义的模板消息

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

publicfunctionwxSetSend($tour,$template_id,$url,$data,$topcolor='#7B68EE'){

$template=array(

'tour'=>$tour,

'template_id'=>$template_id,

'url'=>$url,

'topcolor'=>$topcolor,

'data'=>$data

);

$jsonData=json_encode($template);

$result=$this->wxSendTemplate($jsonData);

return$result;

}

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

*微信设置OAUTH跳转URL,返回字符串信息-SCOPE=snsapi_ba//验证时不返回确认页⾯,只能获取OPENID

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

publicfunctionwxOauthBa($redirectUrl,$state="",$appId=NULL){

$appId=is_null($appId)?lf::appId:$appId;

return$url;

}

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

*微信设置OAUTH跳转URL,返回字符串信息-SCOPE=snsapi_urinfo//获取⽤户完整信息

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

publicfunctionwxOauthUrinfo($redirectUrl,$state="",$appId=NULL){

$appId=is_null($appId)?lf::appId:$appId;

return$url;

}

/*******描述秋天的词语 *********************************************

*微信OAUTH跳转指定URL

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

publicfunctionwxHeader($url){

header("location:".$url);

}

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

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

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

publicfunctionwxOauthAccessToken($code,$appId=NULL,$appSecret=NULL){

$appId=is_null($appId)?lf::appId:$appId;

$appSecret=is_null($appSecret)?lf::appSecret:$appSecret;

$result=$this->wxHttpsRequest($url);

//print_r($result);

$jsoninfo=json_decode($result,true);

//$access_token=$jsoninfo["access_token"];

return$jsoninfo;

}

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

*微信通过OAUTH的Access_Token的信息获取当前⽤户信息//只执⾏在snsapi_urinfo模式运⾏

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

publicfunctionwxOauthUr($OauthAT,$openId){

$result=$this->wxHttpsRequest($url);

$jsoninfo=json_decode($result,true);

return$jsoninfo;

}

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

*创建⾃定义菜单

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

publicfunctionwxMenuCreate($jsonData){

$wxAccessToken=$this->wxAccessToken();

$result=$this->wxHttpsRequest($url,$jsonData);

$jsoninfo=json_decode($result,true);

return$jsoninfo;

}

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

*获取⾃定义菜单

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

publicfunctionwxMenuGet(){

$wxAccessToken=$this->wxAccessToken();

$result=$this->wxHttpsRequest($url);

$jsoninfo=json_decode($result,true);

return$jsoninfo;

}

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

*删除⾃定义菜单

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

publicfunctionwxMenuDelete(){

$wxAccessToken=$this->wxAccessToken();

$result=$this->wxHttpsRequest($url);

$jsoninfo=json_decode($result,true);

return$jsoninfo;

}

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

*获取第三⽅⾃定义菜单

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

publicfunctionwxMenuGetInfo(){

$wxAccessToken=$this->wxAccessToken();

$result=$this->wxHttpsRequest($url);

$jsoninfo=json_decode($result,true);

return$jsoninfo;

}

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

*⽣成随机字符串-最长为32位字符串

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

publicfunctionwxNonceStr($length=16,$type=FALSE){

$chars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

$str="";

for($i=0;$i<$length;$i++){

$str.=substr($chars,mt_rand(0,strlen($chars)-1),1);

}

if($type==TRUE){

returnstrtoupper(md5(time().$str));

}

el{

return$str;

}

}

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

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

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

publicfunctionwxMchBillno($mchid=NULL){

if(is_null($mchid)){

if(lf::mchid==""||is_null(lf::mchid)){

$mchid=time();

}

el{

$mchid=lf::mchid;

}

}

el{

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

}

el{

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($p胃口不好 rivatekey)){

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.

$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=$nonceStrtamp=$timestamp&url=$url";

//$rawString=$this->wxFormatArray($signPackage);

$signature=$this->wxSha1Sign($rawString);

$signPackage['signature']=$signature;

$signPackage['rawString']=$rawString;

$signPackage['appId被动语态的构成 ']=lf::appId;

return$signPackage;

}

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

*将数组解析XML-微信红包接⼝

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

publicfunctionwxArrayToXml($parameters=NULL){

if(is_null($parameters)){

$parameters=$this->parameters;

}

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

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

}

$xml="";

foreach($arras$key=>$val)

{

if(is_numeric($val))

{

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

}

el

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

}

$xml.="";

return$xml;

}

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

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

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

publicfunctionwxCardUpdateImg(){

$wxAccessToken=$this->wxAccessToken();

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

$data['buffer']='@D:workspacehtdocsyky_';

$result=$this->wxHttpsRequest($url,$data);

$jsoninfo=json_decode($result,true);

return$jsoninfo;

}

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

*微信卡券:获取颜⾊

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

publicfunctionwxCardColor(){

$wxAccessToken=$this->wxAccessToken();

$result=$this->wxHttpsRequest($url);

$jsoninfo=json_decode($result,true);

return$jsoninfo;

}

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

*微信卡券:创建卡券

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

publicfunctionwxCardCreated($jsonData){

$wxAccessToken=$this->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';

$resultAr刘邦后人 ray['card_ext']['timestamp']=$timestamp;

$resultArray['card_ext']['signature']=$string;

return$resultArray;

}

}

[代码]微信JSAPI

<?php

require_once'';

$wx=newWxApi();

//通过⽹页获取openid

//if(!ist($_GET['code'])){

//}

//el{

//$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();

>

JSAPI接⼝测试




[代码]创建卡券

$kqinfo=array("card"=>array());

$kqinfo['card']['card_type']='GENERAL_COUPON';

$kqinfo['card']['general_coupon']=array('ba_info'=>array(),'default_detail'=>array());

$kqinfo['card']['general_coupon']['ba_info']['logo_url']='URL';

$kqinfo['card']['general_coupon']['ba_info']['code_type']='CODE_TYPE_QRCODE';

$kqinfo['card']['general_coupon']['ba_info']['brand_name']='';

$kqinfo['card']['general_coupon']['ba_info']['title']='测试卡券';

$kqinfo['card']['general_coupon']['ba_info']['color']='Color030';

$kqinfo['card']['general_coupon']['ba_info']['notice']='测试测试测试';

$kqinfo['card']['general_coupon']['ba_info']['description']='这是⼀张优惠券';

$kqinfo['card']['general_coupon']['ba_info']['date_info']['type']=1;

$kqinfo['card']['general_coupon']['ba_info']['date_info']['begin_timestamp']=time();

$kqinfo['card']['general_coupon']['ba_info']['date_info']['end_timestamp']=time()+100*24*3600;

$kqinfo['card']['general_coupon']['ba_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);

本文发布于:2023-03-16 18:05:57,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/1678961158280179.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:微信小店.doc

本文 PDF 下载地址:微信小店.pdf

上一篇:相爱好难
下一篇:返回列表
标签:微信小店
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图