導航:首頁 > 編程語言 > java微信工具

java微信工具

發布時間:2022-08-31 23:40:58

① 如何用java開發微信

說明:
本次的教程主要是對微信公眾平台開發者模式的講解,網路上很多類似文章,但很多都讓初學微信開發的人一頭霧水,所以總結自己的微信開發經驗,將微信開發的整個過程系統的列出,並對主要代碼進行講解分析,讓初學者盡快上手。

在閱讀本文之前,應對微信公眾平台的官方開發文檔有所了解,知道接收和發送的都是xml格式的數據。另外,在做內容回復時用到了圖靈機器人的api介面,這是一個自然語言解析的開放平台,可以幫我們解決整個微信開發過程中最困難的問題,此處不多講,下面會有其詳細的調用方式。


1.1 在登錄微信官方平台之後,開啟開發者模式,此時需要我們填寫url和token,所謂url就是我們自己伺服器的介面,用WechatServlet.java來實現,相關解釋已經在注釋中說明,代碼如下:

[java]view plain

② 怎麼利用java獲取微信聊天窗口給好友發信息

java做微信,你可以嘗試用itchat4j,是java操作微信的包,可以實現微信的登陸,自動回復等

③ java怎麼獲取微信的openid

java獲取微信的openid的方法是根據授權code來獲取的,方法如下:
一個Servlet請求 獲取code:
/**
* 根據code取得openId
*
* @param appid 公眾號的唯一標識
* @param secret 公眾號的appsecret密鑰
* @param code code為換取access_token的票據
* @return
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//參數
String code = request.getParameter("code");

if(null != code && !"".equals(code)){
log.info("==============[OAuthServlet]獲取網頁授權code不為空,code="+code);
//根據code換取openId
OAuthInfo oa = WeixinUtil.getOAuthOpenId(Constants.appId,Constants.appSecret,code);
UserInfo info = WeixinUtil.getUserInfo(oa.getAccessToken(), oa.getOpenId());
if(!"".equals(oa) && null != oa){
request.setAttribute("openid", oa.getOpenId());
request.setAttribute("nickname", info.getNickname());
request.getRequestDispatcher("/index.jsp").forward(request, response);

}else{
log.info("==============[OAuthServlet]獲取網頁授權openId失敗!");
}
}else{
log.info("==============[OAuthServlet]獲取網頁授權code失敗!");
}
}

替換相應的APPID APPSECRET SCOPE。
過code換取網頁授權access_token 這里的access_token與基礎獲取的access_token不同

獲取code後,請求以下鏈接獲取access_token:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

具體做法與上面基本一致。更換相對應的值。需要注意的是code可以寫一個Servlet獲取。String code = request.getParameter("code");get/post都可以。
這樣子就會返回一下json格式數據
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"
}

④ 微信的怎麼用java開發自定義按鈕

創建自定義菜單後,由於微信客戶端緩存,需要24小時微信客戶端才會展現出來。
也可以嘗試取消關注公眾賬號後再次關注,則可以看到創建後的效果

⑤ 怎麼用java調用微信支付介面

java調用微信支付介面方法:
RequestHandler requestHandler = new RequestHandler(super.getRequest(),super.getResponse());

//獲取token //兩小時內有效,兩小時後重新獲取

Token = requestHandler.GetToken();

//更新token 到應用中

requestHandler.getTokenReal();

System.out.println("微信支付獲取token=======================:" +Token);

//requestHandler 初始化

requestHandler.init();

requestHandler.init(appid,appsecret, appkey,partnerkey, key);

// --------------------------------本地系統生成訂單-------------------------------------

// 設置package訂單參數

SortedMap<String, String> packageParams = new TreeMap<String, String>();

packageParams.put("bank_type", "WX"); // 支付類型

packageParams.put("body", "xxxx"); // 商品描述

packageParams.put("fee_type", "1"); // 銀行幣種

packageParams.put("input_charset", "UTF-8"); // 字元集

packageParams.put("notify_url", "http://xxxx.com/xxxx/wxcallback"); // 通知地址 這里的通知地址使用外網地址測試,注意80埠是否打開。

packageParams.put("out_trade_no", no); // 商戶訂單號

packageParams.put("partner", partenerid); // 設置商戶號

packageParams.put("spbill_create_ip", super.getRequest().getRemoteHost()); // 訂單生成的機器IP,指用戶瀏覽器端IP

packageParams.put("total_fee", String.valueOf(rstotal)); // 商品總金額,以分為單位

// 設置支付參數

SortedMap<String, String> signParams = new TreeMap<String, String>();

signParams.put("appid", appid);

signParams.put("noncestr", noncestr);

signParams.put("traceid", PropertiesUtils.getOrderNO());

signParams.put("timestamp", timestamp);

signParams.put("package", packageValue);

signParams.put("appkey", this.appkey);

// 生成支付簽名,要採用URLENCODER的原始值進行SHA1演算法

String sign ="";

try {

sign = Sha1Util.createSHA1Sign(signParams);

} catch (Exception e) {

e.printStackTrace();

}

// 增加非參與簽名的額外參數

signParams.put("sign_method", "sha1");

signParams.put("app_signature", sign);

// api支付拼包結束------------------------------------

//獲取prepayid

String prepayid = requestHandler.sendPrepay(signParams);

System.out.println("prepayid :" + prepayid);

// --------------------------------生成完成---------------------------------------------

//生成預付快訂單完成,返回給android,ios 掉起微信所需要的參數。

SortedMap<String, String> payParams = new TreeMap<String, String>();

payParams.put("appid", appid);

payParams.put("noncestr", noncestr);

payParams.put("package", "Sign=WXPay");

payParams.put("partnerid", partenerid);

payParams.put("prepayid", prepayid);

payParams.put("appkey", this.appkey);

//這里除1000 是因為參數長度限制。

int time = (int) (System.currentTimeMillis() / 1000);

payParams.put("timestamp",String.valueOf(time));

System.out.println("timestamp:" + time);

//簽名

String paysign ="";

try {

paysign = Sha1Util.createSHA1Sign(payParams);

} catch (Exception e) {

e.printStackTrace();

}

payParams.put("sign", paysign);

//拼json 數據返回給客戶端

BasicDBObject backObject = new BasicDBObject();

backObject.put("appid", appid);

backObject.put("noncestr", payParams.get("noncestr"));

backObject.put("package", "Sign=WXPay");

backObject.put("partnerid", payParams.get("partnerid"));

backObject.put("prepayid", payParams.get("prepayid"));

backObject.put("appkey", this.appkey);

backObject.put("timestamp",payParams.get("timestamp"));

backObject.put("sign",payParams.get("sign"));

String backstr = dataObject.toString();

System.out.println("backstr:" + backstr);

return backstr;

====================到此為止,預付款訂單已生成,並且已返回客戶端====================

//坐等微信伺服器通知,通知的地址就是生成預付款訂單的notify_url

ResponseHandler resHandler = new ResponseHandler(request, response);

resHandler.setKey(partnerkey);

//創建請求對象

//RequestHandler queryReq = new RequestHandler(request, response);

//queryReq.init();

if (resHandler.isTenpaySign() == true) {

//商戶訂單號

String out_trade_no = resHandler.getParameter("out_trade_no");

System.out.println("out_trade_no:" + out_trade_no);

//財付通訂單號

String transaction_id = resHandler.getParameter("transaction_id");

System.out.println("transaction_id:" + transaction_id);

//金額,以分為單位

String total_fee = resHandler.getParameter("total_fee");

//如果有使用折扣券,discount有值,total_fee+discount=原請求的total_fee

String discount = resHandler.getParameter("discount");

//支付結果

String trade_state = resHandler.getParameter("trade_state");

//判斷簽名及結果

if ("0".equals(trade_state)) {

//------------------------------

//即時到賬處理業務開始

//------------------------------

System.out.println("----------------業務邏輯執行-----------------");

//——請根據您的業務邏輯來編寫程序(以上代碼僅作參考)——

System.out.println("----------------業務邏輯執行完畢-----------------");

System.out.println("success"); // 請不要修改或刪除

System.out.println("即時到賬支付成功");

//給財付通系統發送成功信息,財付通系統收到此結果後不再進行後續通知

resHandler.sendToCFT("success");

//給微信伺服器返回success 否則30分鍾通知8次

return "success";

}else{

System.out.println("通知簽名驗證失敗");

resHandler.sendToCFT("fail");

response.setCharacterEncoding("utf-8");

}

}else {

System.out.println("fail -Md5 failed");

⑥ 怎樣用java開發微信

java公眾號不需要特殊的架構 ,

從最原始的servlet到流行的ssh ssm框架都可以做 ,

後端通過網路請求微信的介面,

從而獲得請求的數據 ,

前端可以使用各種前端框架實現,

比如easyui或者bootstrap都可以,

微信開發文檔中有詳細的示例 。

⑦ 微信有java版的嗎

特點 微信logo
[1]微信是一種更快速的即時通訊工具,具有零資費、跨平台溝通、顯示實時輸入狀態等功能,與傳統的簡訊溝通方式相比,更靈活、智能,且節省資費。 微信支持智能手機中iOS、Android、Windows phone和塞班平台。 具體特點如下: 特色功能
①支持發送語音簡訊、視頻、圖片(包括表情)和文字 ②支持多人群聊(最高20人) ③支持查看所在位置附近使用微信的人(LBS功能) ④支持微博、郵箱、漂流瓶、語音記事本、QQ同步助手等插件功能,所以是微信沒有JAVA版的

閱讀全文

與java微信工具相關的資料

熱點內容
存儲伺服器能幹什麼 瀏覽:784
c編輯軟體怎麼編譯 瀏覽:596
hpc編譯器論文 瀏覽:813
javac編譯子目錄下所有文件 瀏覽:429
卡友幫幫團是什麼app 瀏覽:241
vnc啟動命令 瀏覽:373
哺乳十電影 瀏覽:629
貴州java編譯器 瀏覽:645
歐美電影免費看平台 瀏覽:286
台灣紅羊影視作品有哪些 瀏覽:906
農行app上怎麼查詢卡號 瀏覽:891
浩天酒道館網是什麼app 瀏覽:212
永久不收費的電影網站 瀏覽:120
兒女傳奇全集目錄 瀏覽:522
文學評論pdf 瀏覽:410
linux源代碼導讀 瀏覽:702
百戰程序員6000集下載 瀏覽:146
蘋果和安卓手機之間怎麼克隆 瀏覽:465
模糊聚類演算法研究 瀏覽:108
寶德伺服器硬碟亮紅燈如何解決 瀏覽:696