• 大小: 0M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-28
  • 语言: 其他
  • 标签: 其他  

资源简介

微信JS-SDK微信分享接口开发(实用版)代码包.zip

资源截图

代码片段和文件信息

package com.sitechasia.ebiz.weixin.action;

import java.util.Calendar;

import net.rubyeye.xmemcached.MemcachedClient;
import net.sf.json.JSONobject;

import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

import com.google.gson.Jsonobject;


public class WeiXinShareAction {


/** memCached缓存 */
private MemcachedClient remoteMemcachedClient;

public void getWxShareData() throws Exception {
Jsonobject jsonobject = new Jsonobject();

String ticket = null;
String[] wxInfo = new String[]{“appId““appsecret“};

String ticketResString = this.getShareJsapiTicket(wxInfo);

if (StringUtils.isNotEmpty(ticketResString)) {
JSONobject ticketJSONobject = JSONobject.fromobject(ticketResString);
if (ticketJSONobject.getInt(“errcode“) == 0) {
ticket = JSONobject.fromobject(ticketResString).optString(“ticket“ ““);
}
}

if (StringUtils.isEmpty(ticket)) {
jsonobject.addProperty(“errcode“ 10002);
jsonobject.addProperty(“errmsg“ “ticket_error“);
this.responseWrite(jsonobject.toString());
return;
}

String noncestr = this.createNonceStr();
int timestamp = this.createTimestamp();
String requestRefererURL = this.getRequest().getHeader(“referer“);
logger.warn(“requestRefererURL: “ + requestRefererURL);

String signature = this.createSignature(noncestr ticket timestamp requestRefererURL);

jsonobject.addProperty(“errcode“ 0);
jsonobject.addProperty(“errmsg“ ““);
jsonobject.addProperty(“wxuser“ wxInfo[0]); // appId
jsonobject.addProperty(“timestamp“ timestamp);
jsonobject.addProperty(“noncestr“ noncestr);
jsonobject.addProperty(“signature“ signature);
jsonobject.addProperty(“shareimg“ “http://www.abc.com/123.jpg“);
jsonobject.addProperty(“shareurl“ “http://www.abc.com/123.html“);
this.responseWrite(jsonobject.toString());
}

// 数据签名 
private String createSignature(String nocestr String ticket int timestamp String url) {
// 这里参数的顺序要按照 key 值 ASCII 码升序排序
String s = “jsapi_ticket=“ + ticket + “&noncestr=“ + nocestr 
+ “×tamp=“ + timestamp + “&url=“ + url;
return DigestUtils.shaHex(s);
}

// 创建随机串 自定义个数0 < ? < 32 
private String createNonceStr() {
String str = “abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789“;
String nonceStr = ““;
        for (int i = 0; i < 16; i++) {
         int beginIndex = (int) Math.round(Math.random() * 10);
            nonceStr += str.substring(beginIndex beginIndex + 1);
        }
        return nonceStr;
    }

// 创建时间戳
private int createTimestamp() {
        return Calendar.getInstance().get(Calendar.SECOND);
    }

/**
 * 微信分享,获取access_token
 */
private String getShareJsapiTicket(String[] wxInfo

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        5972  2017-06-27 15:49  WeiXinShareAction.java
     文件         953  2017-06-27 15:36  jq.wxShare.js
     文件        1171  2017-06-27 15:37  jq.wxShare_data.js

评论

共有 条评论