導航:首頁 > 編程語言 > java財付通

java財付通

發布時間:2024-07-09 20:58:11

A. 怎麼用java調用微信支付介面

java調用微信支付介面方法:x0d=newRequestHandler(super.getRequest(),super.getResponse());x0dx0ax0dx0a//獲取token//兩小時內有效,兩小時後重新獲取x0dx0ax0dx0aToken=requestHandler.GetToken();x0dx0ax0dx0a//更新token到應用中x0dx0ax0dx0arequestHandler.getTokenReal();x0dx0ax0dx0aSystem.out.println("微信支付獲取token=======================:"+Token);x0dx0ax0dx0ax0dx0ax0dx0a//requestHandler初始化x0dx0ax0dx0arequestHandler.init();x0dx0ax0dx0arequestHandler.init(appid,appsecret,appkey,partnerkey,key);x0dx0ax0dx0ax0dx0ax0dx0a//--------------------------------本地系統生成訂單-------------------------------------x0dx0ax0dx0a//設置package訂單參數x0dx0ax0dx0aSortedMappackageParams=newTreeMap();x0dx0ax0dx0apackageParams.put("bank_type","WX");//支付類型x0dx0ax0dx0apackageParams.put("body","xxxx");//商品描述x0dx0ax0dx0apackageParams.put("fee_type","1");//銀行幣種x0dx0ax0dx0apackageParams.put("input_charset","UTF-8");//字元集x0dx0ax0dx0apackageParams.put("notify_url","http://xxxx.com/xxxx/wxcallback");//通知地址這里的通知地址使用外網地址測試,注意80埠是否打開。x0dx0ax0dx0apackageParams.put("out_trade_no",no);//商戶訂單號x0dx0ax0dx0apackageParams.put("partner",partenerid);//設置商戶號x0dx0ax0dx0apackageParams.put("spbill_create_ip",super.getRequest().getRemoteHost());//訂單生成的機器IP,指用戶瀏覽器端IPx0dx0ax0dx0apackageParams.put("total_fee",String.valueOf(rstotal));//商品總金額,以分為單位x0dx0ax0dx0ax0dx0ax0dx0a//設置支付參數x0dx0ax0dx0aSortedMapsignParams=newTreeMap();x0dx0ax0dx0asignParams.put("appid",appid);x0dx0ax0dx0asignParams.put("noncestr",noncestr);x0dx0ax0dx0asignParams.put("traceid",PropertiesUtils.getOrderNO());x0dx0ax0dx0asignParams.put("timestamp",timestamp);x0dx0ax0dx0asignParams.put("package",packageValue);x0dx0ax0dx0asignParams.put("appkey",this.appkey);x0dx0ax0dx0ax0dx0ax0dx0a//生成支付簽名,要採用URLENCODER的原始值進行SHA1演算法!x0dx0ax0dx0aStringsign="";x0dx0ax0dx0atry{x0dx0ax0dx0asign=Sha1Util.createSHA1Sign(signParams);x0dx0ax0dx0a}catch(Exceptione){x0dx0ax0dx0ae.printStackTrace();x0dx0ax0dx0a}x0dx0ax0dx0ax0dx0ax0dx0a//增加非參與簽名的額外參數x0dx0ax0dx0asignParams.put("sign_method","sha1");x0dx0ax0dx0asignParams.put("app_signature",sign);//api支付拼包結束------------------------------------x0dx0ax0dx0ax0dx0ax0dx0a//獲取=requestHandler.sendPrepay(signParams);x0dx0ax0dx0aSystem.out.println("prepayid:"+prepayid);x0dx0ax0dx0a//--------------------------------生成完成---------------------------------------------x0dx0ax0dx0ax0dx0ax0dx0a//生成預付快訂單完成,返回給android,ios掉起微信所需要的參數。x0dx0ax0dx0aSortedMappayParams=newTreeMap();x0dx0ax0dx0apayParams.put("appid",appid);x0dx0ax0dx0apayParams.put("noncestr",noncestr);x0dx0ax0dx0apayParams.put("package","Sign=WXPay");x0dx0ax0dx0apayParams.put("partnerid",partenerid);x0dx0ax0dx0apayParams.put("prepayid",prepayid);x0dx0ax0dx0apayParams.put("appkey",this.appkey);x0dx0ax0dx0a//這里除1000是因為參數長度限制。x0dx0ax0dx0ainttime=(int)(System.currentTimeMillis()/1000);x0dx0ax0dx0apayParams.put("timestamp",String.valueOf(time));.out.println("timestamp:"+time);x0dx0ax0dx0ax0dx0ax0dx0a//簽名x0dx0ax0dx0aStringpaysign="";x0dx0ax0dx0atry{x0dx0ax0dx0apaysign=Sha1Util.createSHA1Sign(payParams);x0dx0ax0dx0a}catch(Exceptione){x0dx0ax0dx0ae.printStackTrace();x0dx0ax0dx0a}x0dx0ax0dx0apayParams.put("sign",paysign);x0dx0ax0dx0ax0dx0ax0dx0a//拼json數據返回給客戶端=newBasicDBObject();x0dx0ax0dx0abackObject.put("appid",appid);x0dx0ax0dx0abackObject.put("noncestr",payParams.get("noncestr"));x0dx0ax0dx0abackObject.put("package","Sign=WXPay");x0dx0ax0dx0abackObject.put("partnerid",payParams.get("partnerid"));x0dx0ax0dx0abackObject.put("prepayid",payParams.get("prepayid"));x0dx0ax0dx0abackObject.put("appkey",this.appkey);x0dx0ax0dx0abackObject.put("timestamp",payParams.get("timestamp"));x0dx0ax0dx0abackObject.put("sign",payParams.get("sign"));=dataObject.toString();x0dx0ax0dx0aSystem.out.println("backstr:"+backstr);;x0dx0ax0dx0ax0dx0ax0dx0a====================到此為止,預付款訂單已生成,並且已返回客戶端====================x0dx0ax0dx0ax0dx0ax0dx0a//坐等微信伺服器通知,通知的地址就是生成預付款訂單的notify_=newResponseHandler(request,response);x0dx0ax0dx0aresHandler.setKey(partnerkey);x0dx0ax0dx0a//創建請求對象x0dx0ax0dx0a//RequestHandlerqueryReq=newRequestHandler(request,response);x0dx0ax0dx0a//queryReq.init();x0dx0ax0dx0aif(resHandler.isTenpaySign()==true){x0dx0ax0dx0a//商戶訂單號x0dx0ax0dx0aStringout_trade_no=resHandler.getParameter("out_trade_no");x0dx0ax0dx0aSystem.out.println("out_trade_no:"+out_trade_no);x0dx0ax0dx0a//財付通訂單號x0dx0ax0dx0aStringtransaction_id=resHandler.getParameter("transaction_id");x0dx0ax0dx0aSystem.out.println("transaction_id:"+transaction_id);x0dx0ax0dx0a//金額,以分為單位x0dx0ax0dx0aStringtotal_fee=resHandler.getParameter("total_fee");x0dx0ax0dx0a//如果有使用折扣券,discount有值,total_fee+discount=原請求的total_feex0dx0ax0dx0aStringdiscount=resHandler.getParameter("discount");x0dx0ax0dx0a//支付結果x0dx0ax0dx0aStringtrade_state=resHandler.getParameter("trade_state");x0dx0ax0dx0ax0dx0ax0dx0a//判斷簽名及結果x0dx0ax0dx0aif("0".equals(trade_state)){x0dx0ax0dx0a//------------------------------x0dx0ax0dx0a//即時到賬處理業務開始x0dx0ax0dx0a//------------------------------.out.println("----------------業務邏輯執行-----------------");x0dx0ax0dx0ax0dx0ax0dx0a//——請根據您的業務邏輯來編寫程序(以上代碼僅作參考)——x0dx0ax0dx0aSystem.out.println("----------------業務邏輯執行完畢-----------------");x0dx0ax0dx0aSystem.out.println("success");//請不要修改或刪除.out.println("即時到賬支付成功");x0dx0ax0dx0a//給財付通系統發送成功信息,財付通系統收到此結果後不再進行後續通知x0dx0ax0dx0aresHandler.sendToCFT("success");x0dx0ax0dx0ax0dx0ax0dx0a//給微信伺服器返回success否則30分鍾通知8次x0dx0ax0dx0areturn"success";x0dx0ax0dx0a}else{x0dx0ax0dx0aSystem.out.println("通知簽名驗證失敗");x0dx0ax0dx0aresHandler.sendToCFT("fail");x0dx0ax0dx0aresponse.setCharacterEncoding("utf-8");x0dx0ax0dx0a}x0dx0ax0dx0a}else{x0dx0ax0dx0aSystem.out.println("fail-Md5failed");

B. 手機財付通在支付之前為什麼總是提示:《獲取證書簽名出錯》

(一)證書過期
解決辦法:
1:把手機時間調到證書的期限內(把手機時間往前調幾個月或更長時間)再安裝,
比如現在是09年08月20日,先把手機日期調整到09年1月1日,如果還提示過期就再往前調直到能正常安裝。安裝好後再調整回來。如果電腦上安裝了諾基亞PC套件和塞班手機證書簽名工具,選中軟體右鍵彈出會有一個查看有效期功能,把時間調整到該日期內即可安裝。
2:為軟體重新簽名再安裝。

(二)證書錯誤
通常這是因為安裝的軟體需要自簽名,申請了證書對程序進行自簽名即可安裝了。
如果是JAR的程序,一般是因為證書有沖突,
(很多java游戲都會出這個錯誤提示,解決辦法看下面2)但不建議安裝JAR程序。
解決辦法:
1:為軟體簽名(查看簽名方法);
2:將程序(軟體/游戲)直接安裝到手機上或更換存儲卡。

(三)更新錯誤
一般出現這提示是因為手機內有舊版本的相同軟體沒有刪除,進行了重復安裝。
或者因為新、舊版軟體安裝程序標題不同引起沖突。
解決辦法:
1:卸載舊版軟體之後,再安裝新版本軟體;
2:把新版本軟體解包,在PKG文檔中把安裝程序標題改為與舊版一致。

(四)證書尚未生效
手機的時間超出軟體證書的期限,這種情況下一般都是手機日期過時,
或者因安裝軟體證書提示過期時時間調太前面了。
解決辦法:
1:檢查手機的日期是否設置正確;
2:把手機時間調到證書的期限內,然後再安裝,在安裝過後調回正確時間即可。

(五)未授予所需的程序接入許可權
因為S60第三版系統的安全問題,一些程序的許可權可能被禁止使用。沒有該許可權的程序都無法安裝,或該程序已經被簽名,還有種可能就是證書出錯。
解決辦法:
1:對該軟體重新簽名後再安裝;
2:XX手機,去掉手機證書許可權的限制

(六)證書受限制
1:由軟體簽名出錯或者軟體已被多次簽名引起.
2:現有的手機證書許可權太低。
解決辦法:
1:對該軟體重新簽名後再安裝,
2:申請更高許可權的手機證書。

(七)無法安裝不被信任的提供商提供的受保護應用程序
通常是以下幾種情況引起的問題:
1.手機設置問題
2.軟體沒有簽名或者簽名不正確
3.證書沖突.
解決辦法:
1:進入手機的「程序管理」-- 「選項」--「設置」:「安裝軟體」設置成--全部,
「在線證書檢查」設置成--關;
2:將未簽過名的軟體重新簽名後再安裝;
3 :格機後再安裝(注意格機前請做好備份)

C. Java類的基本組成和使用

Java類的基本組成:java由一系列的介面和類組成,所有類的父類是:object。對象的生成:使用new關鍵字產生對象,該對象類中構造方法就是用來產生對象的。對象由一系列的屬性和行為構成。使用和刪除:對象構成之後,就可以使用對象點方法、屬性進行操作,問刪除,如果對象失去了引用的指向,會自動被GC(垃圾回收機制)回收。介面與包:介面(行為的抽象),實現介面,必須實現介面的方法,哪怕是空實現,目前我見過唯一一個沒有實現的類就是:HttpSrvlet,其中的service實現的是抽象方法,介面目的有3點:1、因為在java不像C++,java是單繼承,所以為了實現多繼承,提出了介面的概念。2、為了規范,比如財付通、支付寶等第3方支付工具,外面的人怎麼用它呢?他們僅僅是提供了介面給外面的,不管你怎麼操作,你必須按照我提供給你的介面去實現。3、多態(Oriented Object的思想),程序的健壯性(開閉原則),方便維護和擴展,動態綁定可以實現介面變數指向實現類。包的概念就是為了方便管理。oracle中的包的概念也是如此常用的類和介面就不說了,自己去查查API,太多了

D. java web 開發 購物網站 怎麼做訂單結算部分

我寫過兩次訂單結算,不過都是asp.net下的,但是應該差不多吧.訂單結算是最後的步驟,提交訂單之後需要做結算,實際上就是收錢嘛.
傳統來講此時需要一個支付介面,比如說支付寶財付通快錢 網銀在線之類的,他們提供介面,我們按照他們說明文檔來實現就好.重要的是交易記錄哦!!提交訂單後需要交易日誌(不能從字面意義上來理解"交易",實際上跟別人討價還價也是交易的一種不是嘛.)轉到介面前需要日誌,介面返回信息需要日誌(表結構差不多啦)這些日誌,方便以後退款或者查看狀態使用;
不傳統來講除支付介面外,要考慮購物網站個人錢包支付或者線下匯款之類的 建議使用策略模式
額 不知道說啥了.縷一縷在紙上構思下就差不多 但一定要考慮好安全性

閱讀全文

與java財付通相關的資料

熱點內容
宿州市電信dns伺服器地址是多少 瀏覽:83
數字簽名中報文加密方式 瀏覽:481
解壓包變成記事本格式了 瀏覽:285
安卓編程怎麼復制文本 瀏覽:818
雲開通伺服器 瀏覽:387
python編程集合降序 瀏覽:281
山西抖音小程序源碼 瀏覽:698
方舟編譯器到底什麼原理 瀏覽:641
演算法概率與人工干預 瀏覽:671
軟通動力android 瀏覽:18
linuxwireshark命令 瀏覽:195
php播放器插件 瀏覽:950
如何把python寫的程序導入手機 瀏覽:25
mysql中查詢系統變數的命令是什麼 瀏覽:142
尚恩解壓圖片 瀏覽:554
新手程序員學那個語言接私活 瀏覽:19
疏解壓力同義詞 瀏覽:79
如何使用阿里雲網路伺服器 瀏覽:102
nas伺服器上怎麼創建文件 瀏覽:851
空調壓縮機需要擋雨嗎 瀏覽:436