1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 微信支付图片上传java_微信开发-----微信公众号调用微信上传图片接口

微信支付图片上传java_微信开发-----微信公众号调用微信上传图片接口

时间:2020-06-30 23:05:28

相关推荐

微信支付图片上传java_微信开发-----微信公众号调用微信上传图片接口

$(function(){

varurl=location.href.split('#')[0];

vardate="url="+url;

//get中url指后台处理的url,生成签名返回给前端

$.get(url",date,function(data){

varda=$.parseJSON(data);

wx.config({

debug:false,//开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。

appId:da.appid,//必填,公众号的唯一标识

timestamp:da.timeStamp,//必填,生成签名的时间戳

nonceStr:da.nonceStr,//必填,生成签名的随机串

signature:da.signature,//必填,签名,见附录1

jsApiList:["chooseImage","uploadImage","downloadImage"]//必填,需要使用的JS接口列表,所有JS接口列表见附录2

});

wx.ready(function(){

//alert("wx.configsuccess.");

//config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。

});

wx.error(function(res){

alert("wx.configfailed.");

//config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,

//也可以在返回的res参数中查看,对于SPA可以在这里更新签名。

});

})

})

varimages;

functionchooseImage(){

wx.chooseImage({

count:1,//默认9

sizeType:['original','compressed'],//可以指定是原图还是压缩图,默认二者都有

sourceType:['album','camera'],//可以指定来源是相册还是相机,默认二者都有

success:function(res){

varlocalIds=res.localIds;//返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片

}

});

}

functionuploadImage(localId){

wx.uploadImage({

localId:localId,//需要上传的图片的本地ID,由chooseImage接口获得

isShowProgressTips:1,//默认为1,显示进度提示

success:function(res){

varserverId=res.serverId;//返回图片的服务器端ID

vardata="serverId="+serverId;

//get中url指后台处理的url,生成签名返回给前端

$.get("url",data,function(r){

if(r>0){

alert("成功");

}else

alert("系统异常!,联系管理员");

})

}

});

}

functionUpload(){

uploadImage(images);

}

//后端接收方法,生成签名的后台

[HttpGet]

publicActionResultXXXX(stringurl)

{

stringtimeStamp=getTimestamp();//时间

stringnonceStr=getNoncestr();//随机数

stringsignature=Weixinjsapi_ticket(timeStamp,nonceStr,url);

stringappid=appid;

Stringjson="{";

json+="\"timeStamp\":"+"\""+timeStamp+"\",";

json+="\"nonceStr\":"+"\""+nonceStr+"\",";

json+="\"signature\":"+"\""+signature+"\",";

json+="\"appid\":"+"\""+appid+"\"";

json+="}";

returnContent(json);

}

//后端接收方法,下载图片

[HttpGet]

publicActionResultXXXX(stringmediaId)

{

try{

if(mediaId!=null&&mediaId!=""){

xxxxx(图片的名称,mediaId);

returnContent("1");

}

}

catch(){}

returnContent("0");

}

///

///随机串

///

publicstaticstringgetNoncestr()

{

Randomrandom=newRandom();

returnMD5Util.GetMD5(random.Next(1000).ToString(),"GBK").ToLower().Replace("s","S");

}

///

///时间截,自1970年以来的秒数

///

publicstaticstringgetTimestamp()

{

TimeSpants=DateTime.UtcNow-newDateTime(1970,1,1,0,0,0,0);

returnConvert.ToInt64(ts.TotalSeconds).ToString();

}

///

///保存凭证

///

publicstaticstringAsscess{set;get;}

///

///jsp_api签名参数

///

publicstaticstringjsapi_ticket{set;get;}

///

///保存凭证时间

///

publicstaticDateTimeAsscess_Time{set;get;}

///

///保存jsp_api时间

///

publicstaticDateTimeJsp_Api_Time{set;get;}

///

///获取signature

///

///

publicstringWeixinjsapi_ticket(stringtimeStamp,stringnonceStr,stringurl)

{

if(Asscess==null)

{

stringtoken=GetToken(appid,secret);

Asscess=token;

Asscess_Time=DateTime.Now;

}

else

{

DateTimetime=DateTime.Now;

if((time-Asscess_Time).TotalSeconds>7000)

{

stringtoken=GetToken(appid,secret);

Asscess=token;

Asscess_Time=DateTime.Now;

}

}

if(jsapi_ticket==null)

{

jsapi_ticket=getjsapi_ticket(Asscess);

Jsp_Api_Time=DateTime.Now;

}

else{

DateTimetime=DateTime.Now;

if((time-Jsp_Api_Time).TotalSeconds>7000){

jsapi_ticket=getjsapi_ticket(Asscess);

Jsp_Api_Time=DateTime.Now;

}

}

stringstring1="jsapi_ticket="+jsapi_ticket+"&noncestr="+nonceStr+"&timestamp="+timeStamp+"&url="+url;

stringsignature=sha1(string1);

returnsignature;

}

#region获取Token

///

///获取Token

///

publicstaticstringGetToken(stringappid,stringsecret)

{

varstrJson=HttpRequestutil.RequestUrl(string.Format("https://api./cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}",appid,secret),"get");

JavaScriptSerializerjson=newJavaScriptSerializer();

tokentk=json.Deserialize(strJson);

returntk.access_token;

}

///

///获取jsapi_ticket

///

///

publicstaticstringgetjsapi_ticket(stringAsscess){

varstrJson=RequestUrl(string.Format("https://api./cgi-bin/ticket/getticket?access_token={0}&type=jsapi",Asscess),"get");

JavaScriptSerializerjson=newJavaScriptSerializer();

tokentk=json.Deserialize(strJson);

returntk.ticket;

}

///

///请求Url,不发送数据

///Method发送类型(post,get)

///

publicstaticstringRequestUrl(stringurl,stringmethod)

{

//设置参数

HttpWebRequestrequest=WebRequest.Create(url)asHttpWebRequest;

CookieContainercookieContainer=newCookieContainer();

request.CookieContainer=cookieContainer;

request.AllowAutoRedirect=true;

request.Method=method;

request.ContentType="text/html";

request.Headers.Add("charset","utf-8");

//发送请求并获取相应回应数据

HttpWebResponseresponse=request.GetResponse()asHttpWebResponse;

//直到request.GetResponse()程序才开始向目标网页发送Post请求

StreamresponseStream=response.GetResponseStream();

StreamReadersr=newStreamReader(responseStream,Encoding.UTF8);

//返回结果网页(html)代码

stringcontent=sr.ReadToEnd();

returncontent;

}

[Serializable]

publicclasstoken

{

///

///凭证

///

publicstringaccess_token{set;get;}

///

///有效时间

///

publicstringexpires_in{set;get;}

///

///jsp_api签到凭证

///

publicstringticket{set;get;}

}

///

///SHA1加密

///

///

///

publicstaticstringsha1(stringstr)

{

returnSystem.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str,"sha1");

}

///

///下载微信头像图片

///

privatevoidxxxxx(stringPatnName,stringmedia)

{

if(Asscess==null)

{

stringtoken=GetToken(appid,secret);

Asscess=token;

Asscess_Time=DateTime.Now;

}

else

{

DateTimetime=DateTime.Now;

if((time-Asscess_Time).TotalSeconds>7000)

{

stringtoken=GetToken(appid,secret);

Asscess=token;

Asscess_Time=DateTime.Now;

}

}

stringurl=string.Format("https://api./cgi-bin/media/get?access_token={0}&media_id={1}",Asscess,media)

WebRequestrequest=WebRequest.Create(url);

WebResponseresponse=request.GetResponse();

Streamreader=response.GetResponseStream();

FileStreamwriter=newFileStream(GetPath(PatnName),FileMode.OpenOrCreate,FileAccess.Write);

byte[]buff=newbyte[512];

intc=0;//实际读取的字节数

while((c=reader.Read(buff,0,buff.Length))>0)

{

writer.Write(buff,0,c);

}

writer.Close();

writer.Dispose();

reader.Close();

reader.Dispose();

response.Close();

}

///

///保存图片地址

///

///

///

privatestringGetPath(stringfileName)

{

stringpath="";//写上地址

path=Server.MapPath(path);

if(!Directory.Exists(path))

{

Directory.CreateDirectory(path);

}

path+=fileName+".jpg";

returnpath;

}

publicconststringappid="";//公众号ID

publicconststringsecret="";//微信公众号的secret

相关代码地址:/qq-w/wechat.git

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。