VPS参考测评推荐
专注分享VPS主机优惠信息
hostkvm优惠促销活动
zji优惠促销活动
衡天云优惠活动
亚马逊云aws.amazon.com最新优惠活动
华纳云最新优惠促销活动

最新微信分享后端接口(JS-SDK微信分享接口)的一般流程

locvps
主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情!
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作

微信分享后台界面的简单实现

这个接口的大致流程如下:用户创建三个变量:时间戳、随机字符串和当前要共享页面的url,然后把自己的appid和APPsecret作为请求参数获取access_token,再根据access_token获取jsapi_ticket。对获取的jsapi -票进行加密验证,对自己创建的三个变量进行签名。注意签名流程案例按照键值的ASCII码升序排序打包成json格式的数据并发送到前台的JS页面。具体程序如下:

公共类WeiXinShareAction扩展http servlet { private static final long serialVersionUID = 1L;私有整数main _ count = 888私有字符串标志= 1 ;私有日志记录器= Log factory . get Log(this . getclass());私有字符串filePath = /b . txt ;;protected void doGet(http servlet request请求,HttpServletResponse响应)抛出ServletException,io exception { JSON object JSON object = new JSON object();String ticket = nullString[]wx info = new String[]{ ;wx007344f87ae48300 , 5442 EDC 712 b 6846 BDD 1c 058 b 7 f 2318 Fe ;};WeiXinUtil wxu = new WeiXinUtil();字符串ticketResString尝试{ ticket tresstring = wxu . getsharejsapitticket(wx info);if(string utils . isnotempty(ticket tresstring)){ JSON object ticket JSON object = JSON object . from object(ticket tresstring);if(ticket JSON object . getint( ;错误代码 )= = 0){ ticket = JSON object . from object(ticket tress string)。getString( ;门票 );} } } catch(异常e){ e . printstacktrace();} if(string utils . isempty(ticket)){ JSON object . add property( ;错误代码 , 10002);JSON object . add property( ;errmsg , 票证错误 );this . response write(JSON object . tostring(),response);返回;} String non castr = this . createnoncastr();int timest = this . create timest();string request refere URL = request . get header( ;referer );flag = request . getparameter( ;温度 );logger.info(flag ------------- ;+flag);//下面介绍如何节省点击次数。//如果没有数据库,重启服务后不会清除点击次数。//使用线程锁修改使用IO流的点击次数。save thread _ readfileth F4 = new thread _ readfile();THF 4 . start();logger . warn( ;requestrefereurl: ;+requestrefereurl);string signature = this . create signature(non centr,ticket,timest,requestrefereurl);JSON object . add property( ;countNum ,main _ count);//点击次数JSON object . add property( ;错误代码 , 0);//JSON object . add property( ;errmsg , ");//JSON object . add property( ;wxuser ,wx info[0]);//appId JSON object . add property( ;时间戳 ,时间戳);//timest JSON object . add property( ;非中心 ,非中心);//随机字符串JSON object . add property( ;签名 ,签名);//Sign response . set header( ;访问-控制-允许-来源 , * );this . response write(JSON object . tostring(),response);} private void responseWrite(字符串内容,HttpServletResponse响应){ try { response . setcharacterencoding( ;ut F-8 ;);response.getWriter()。写(内容);} catch(异常e){ logger . error( ;微信共享操作中的responseWrite错误,e);} } } Get access _ token在开发过程中要注意,微信为了减轻对服务器的访问压力,限制了每天生成access_token的次数和时长。由于时间限制为7200s,在做出判断并生成令牌后2小时使用相同的令牌;这只是一个小接口,所以我们选择将最后一次生成时间和令牌存储为静态变量,

/* * *微信分享,Get access _ token */private string getweixinaccestoken(string[]wx info)throws exception {//获取当前时间long current _ time = system . current time millis();//每次调用时,判断是否过期。如果令牌时间过期,请重新获取。expires_in的有效期为7200 if((current _ time -last _ time)/1000 >;= 7200){ logger . info( ;第一次访问“+当前时间);logger.info((当前时间-最后时间)/1000 = = = = ;+(当前时间-最后时间)/1000);字符串url = https://api.weixin.qq.com/cgi-bin/token?格兰特类型=客户证书 appid = +wx info[0]+ ; secret = +wx info[1];string result = this . http reqexecute(URL);this . logger . warn( ;来自微信API access token: ;+结果);请尝试{ last _ time = current _ timeIf(字符串实用程序。不为空(result)){//解析respContent并获取更新后的key,accesstoken = jsonobject。fromobject(结果)。GetString("访问令牌 );//保存access_token返回accessToken} } catch(异常e){ logger . error( ;WeiXinShareAction 中的getAccessToken错误,e);} }否则{ logger . info( ;第二次就诊"+last _ time);logger.info((当前时间-最后时间)/1000 = = = = ;+(当前时间-最后时间)/1000);logger.info(来自微信API access token: ;+access token);返回accessToken}返回null}根据access_token获取jsapiTicket

/* * *微信分享,获取JSAPI ticket */public string getsharejsapticket(string[]wx info)throws exception { string access _ token = this . getweixinaccesstoken(wx info);if(string utils . isempty(access _ token)){//无法获取access token//this . logger . warn(siteid+" access token为空。");JSON object JSON object = new JSON object();JSON object . add property( ;错误代码 , 10000 );JSON object . add property( ;errmsg , 访问错误 );返回JSON object . tostring();}字符串url = https://api.weixin.qq.com/cgi-bin/ticket/getticket?访问令牌= +访问令牌+ ; type = jsapi ;string jsapi ticket = this . http req execute(URL);this . logger . warn( ;来自微信api jsapiTicket是: +jsapi ticket);if(string utils . isnotempty(jsapi ticket)){ return jsapi ticket;}返回null}Http远程调用

私有字符串httpReqExecute(字符串URL){ String result = ;";default http client http client = null;请尝试{ http client = new default http client();http post http post = new http post(URL);//execute httpresponse = http client . execute(http post);HttpEntity entity = response . get entity();如果(实体!= null response.getStatusLine()。getStatusCode()= = 200){ result = entity utils . tostring(entity, ut F-8 ;);} } catch(异常e){ logger . error( ;WeiXinShareAction调用微信API失败!",e);}最后{//关闭连接,释放资源http client . getconnectionmanager()。关机();}返回结果;}返回成功。

来自微信API access token:{ ;访问令牌 : 12 _ 9 ugvn 7 tfvtvf _ 7 R4 LQ 4v 9 w 9-pqdzpqwxvjfspo F3 HV 3j 5 _ xfwqwqauj 4n 9-zmikc 1 _ OCP 0 ipbxjpzr -ty 8 xzg 8 qmev 2 qvukfz 5 _ NP 7 kjab 05 MX 9 msrg 0 flpaamjonrrh 5 wxseffkhec 0 _ bdhfkjafax va ;, 过期时间为 :7200}来自微信api jsapiTicket是:{ 错误代码 :0, errmsg : 好的 , 门票 : hoagfkdcsgmvciy 2 vojf 9j _ us 44 qhuo 4 kdg H5 u 8 wmjoctu 44m 1 hkqgesjyiyfr 9 hwrmmz -WRS B9 kldmpatrw ;, 过期时间为 :7200}相关文章:

在微信JS-SDK中实现Node.js的后端接口。

微信h5页面如何调用分享页面的接口?

把javascript -手机分享到微信微信朋友圈qq好友的接口地址?

相关视频:

微信公众平台接口二次开发视频教程以上是最新微信分享后端接口实现的大致流程细节。请多关注主机参考其他相关文章!

这几篇文章你可能也喜欢:

  • 暂无相关推荐文章

本文由主机参考刊发,转载请注明:最新微信分享后端接口(JS-SDK微信分享接口)的一般流程 https://zhujicankao.com/79641.html

【腾讯云】爆款2核2G云服务器首年40元,企业首购最高获赠300元京东卡
打赏
转载请注明原文链接:主机参考 » 最新微信分享后端接口(JS-SDK微信分享接口)的一般流程
主机参考仅做资料收集,不对商家任何信息及交易做信用担保,购买前请注意风险,有交易纠纷请自行解决!请查阅:特别声明

评论 抢沙发

评论前必须登录!