具體方法步驟:
創(chuàng)新互聯(lián)公司主營(yíng)通許網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都app軟件開發(fā)公司,通許h5微信小程序搭建,通許網(wǎng)站營(yíng)銷推廣歡迎通許等地區(qū)企業(yè)咨詢
一、準(zhǔn)備階段:已認(rèn)證微信號(hào),且通過微信支付認(rèn)證,這個(gè)可以看微信文檔,很詳細(xì),這里就不再重復(fù)。
二、配置授權(quán)目錄,官方推薦使用https類型的url,不知道http能不能行,個(gè)人也推薦使用https的保證不會(huì)錯(cuò)。
配置授權(quán)域名
三、微信支付二次開發(fā)所需要的參數(shù):
APP_ID,APP_KEY,PARTNER,PARTNER_KEY(AppSecret)
APP_ID和PARTNER_KEY(AppSecret)
PARTNER
APP_KEY(自行設(shè)置32位字符)
四、具體編程
1、通過頁(yè)面跳轉(zhuǎn)到確認(rèn)支付頁(yè)面,其中的redirect_uri必須是配置授權(quán)目錄下的。
2、獲取到openid,再經(jīng)服務(wù)器向微信請(qǐng)求獲取prepay_id,封裝字段并進(jìn)行簽名后通過jsapi調(diào)起微信支付
3、測(cè)試結(jié)果
? ?
1打開“微信”程序,切換至“我”選項(xiàng)卡,點(diǎn)擊“表情商店”項(xiàng)進(jìn)入。 2接著點(diǎn)擊任意一款表情右側(cè)的支付項(xiàng)進(jìn)入支付界面。 3點(diǎn)擊“支付”按鈕后,就會(huì)自動(dòng)轉(zhuǎn)到“添加銀行卡”界面,在此輸入銀行“卡號(hào)”,并點(diǎn)擊“下一步”。 4接著再輸入銀行卡相關(guān)信息,并點(diǎn)擊“下一步”。 5然后手機(jī)會(huì)收到一條驗(yàn)證信息,從中獲取驗(yàn)證碼輸入其中,并點(diǎn)擊“下一步”。 6接著我們需要設(shè)置支付密碼信息。輸入完成后,就完成了微信與賬戶信息的綁定。以后就可以利用該服務(wù)實(shí)現(xiàn)在線支付的功能啦。
這類專業(yè)的技術(shù)問題涉及到了代碼的層面,您在網(wǎng)上詢問肯定是得不到完美的解決的,建議您可以下載一下開發(fā)者文檔
該文檔在您申請(qǐng)了微信商家之后就可以下載的
然后根據(jù)文檔里面的技術(shù)規(guī)范進(jìn)行調(diào)整和開發(fā)
java調(diào)用微信支付接口方法:\x0d\x0aRequestHandlerrequestHandler=newRequestHandler(super.getRequest(),super.getResponse());\x0d\x0a\x0d\x0a//獲取token//兩小時(shí)內(nèi)有效,兩小時(shí)后重新獲取\x0d\x0a\x0d\x0aToken=requestHandler.GetToken();\x0d\x0a\x0d\x0a//更新token到應(yīng)用中\(zhòng)x0d\x0a\x0d\x0arequestHandler.getTokenReal();\x0d\x0a\x0d\x0aSystem.out.println("微信支付獲取token=======================:"+Token);\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a//requestHandler初始化\x0d\x0a\x0d\x0arequestHandler.init();\x0d\x0a\x0d\x0arequestHandler.init(appid,appsecret,appkey,partnerkey,key);\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a//--------------------------------本地系統(tǒng)生成訂單-------------------------------------\x0d\x0a\x0d\x0a//設(shè)置package訂單參數(shù)\x0d\x0a\x0d\x0aSortedMappackageParams=newTreeMap();\x0d\x0a\x0d\x0apackageParams.put("bank_type","WX");//支付類型\x0d\x0a\x0d\x0apackageParams.put("body","xxxx");//商品描述\x0d\x0a\x0d\x0apackageParams.put("fee_type","1");//銀行幣種\x0d\x0a\x0d\x0apackageParams.put("input_charset","UTF-8");//字符集\x0d\x0a\x0d\x0apackageParams.put("notify_url","");//通知地址這里的通知地址使用外網(wǎng)地址測(cè)試,注意80端口是否打開。\x0d\x0a\x0d\x0apackageParams.put("out_trade_no",no);//商戶訂單號(hào)\x0d\x0a\x0d\x0apackageParams.put("partner",partenerid);//設(shè)置商戶號(hào)\x0d\x0a\x0d\x0apackageParams.put("spbill_create_ip",super.getRequest().getRemoteHost());//訂單生成的機(jī)器IP,指用戶瀏覽器端IP\x0d\x0a\x0d\x0apackageParams.put("total_fee",String.valueOf(rstotal));//商品總金額,以分為單位\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a//設(shè)置支付參數(shù)\x0d\x0a\x0d\x0aSortedMapsignParams=newTreeMap();\x0d\x0a\x0d\x0asignParams.put("appid",appid);\x0d\x0a\x0d\x0asignParams.put("noncestr",noncestr);\x0d\x0a\x0d\x0asignParams.put("traceid",PropertiesUtils.getOrderNO());\x0d\x0a\x0d\x0asignParams.put("timestamp",timestamp);\x0d\x0a\x0d\x0asignParams.put("package",packageValue);\x0d\x0a\x0d\x0asignParams.put("appkey",this.appkey);\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a//生成支付簽名,要采用URLENCODER的原始值進(jìn)行SHA1算法!\x0d\x0a\x0d\x0aStringsign="";\x0d\x0a\x0d\x0atry{\x0d\x0a\x0d\x0asign=Sha1Util.createSHA1Sign(signParams);\x0d\x0a\x0d\x0a}catch(Exceptione){\x0d\x0a\x0d\x0ae.printStackTrace();\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a//增加非參與簽名的額外參數(shù)\x0d\x0a\x0d\x0asignParams.put("sign_method","sha1");\x0d\x0a\x0d\x0asignParams.put("app_signature",sign);\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a//api支付拼包結(jié)束------------------------------------\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a//獲取prepayid\x0d\x0a\x0d\x0aStringprepayid=requestHandler.sendPrepay(signParams);\x0d\x0a\x0d\x0aSystem.out.println("prepayid:"+prepayid);\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a//--------------------------------生成完成---------------------------------------------\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a//生成預(yù)付快訂單完成,返回給android,ios掉起微信所需要的參數(shù)。\x0d\x0a\x0d\x0aSortedMappayParams=newTreeMap();\x0d\x0a\x0d\x0apayParams.put("appid",appid);\x0d\x0a\x0d\x0apayParams.put("noncestr",noncestr);\x0d\x0a\x0d\x0apayParams.put("package","Sign=WXPay");\x0d\x0a\x0d\x0apayParams.put("partnerid",partenerid);\x0d\x0a\x0d\x0apayParams.put("prepayid",prepayid);\x0d\x0a\x0d\x0apayParams.put("appkey",this.appkey);\x0d\x0a\x0d\x0a//這里除1000是因?yàn)閰?shù)長(zhǎng)度限制。\x0d\x0a\x0d\x0ainttime=(int)(System.currentTimeMillis()/1000);\x0d\x0a\x0d\x0apayParams.put("timestamp",String.valueOf(time));\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0aSystem.out.println("timestamp:"+time);\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a//簽名\x0d\x0a\x0d\x0aStringpaysign="";\x0d\x0a\x0d\x0atry{\x0d\x0a\x0d\x0apaysign=Sha1Util.createSHA1Sign(payParams);\x0d\x0a\x0d\x0a}catch(Exceptione){\x0d\x0a\x0d\x0ae.printStackTrace();\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apayParams.put("sign",paysign);\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a//拼json數(shù)據(jù)返回給客戶端\x0d\x0a\x0d\x0aBasicDBObjectbackObject=newBasicDBObject();\x0d\x0a\x0d\x0abackObject.put("appid",appid);\x0d\x0a\x0d\x0abackObject.put("noncestr",payParams.get("noncestr"));\x0d\x0a\x0d\x0abackObject.put("package","Sign=WXPay");\x0d\x0a\x0d\x0abackObject.put("partnerid",payParams.get("partnerid"));\x0d\x0a\x0d\x0abackObject.put("prepayid",payParams.get("prepayid"));\x0d\x0a\x0d\x0abackObject.put("appkey",this.appkey);\x0d\x0a\x0d\x0abackObject.put("timestamp",payParams.get("timestamp"));\x0d\x0a\x0d\x0abackObject.put("sign",payParams.get("sign"));\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0aStringbackstr=dataObject.toString();\x0d\x0a\x0d\x0aSystem.out.println("backstr:"+backstr);\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0areturnbackstr;\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a====================到此為止,預(yù)付款訂單已生成,并且已返回客戶端====================\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a//坐等微信服務(wù)器通知,通知的地址就是生成預(yù)付款訂單的notify_url\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0aResponseHandlerresHandler=newResponseHandler(request,response);\x0d\x0a\x0d\x0aresHandler.setKey(partnerkey);\x0d\x0a\x0d\x0a//創(chuàng)建請(qǐng)求對(duì)象\x0d\x0a\x0d\x0a//RequestHandlerqueryReq=newRequestHandler(request,response);\x0d\x0a\x0d\x0a//queryReq.init();\x0d\x0a\x0d\x0aif(resHandler.isTenpaySign()==true){\x0d\x0a\x0d\x0a//商戶訂單號(hào)\x0d\x0a\x0d\x0aStringout_trade_no=resHandler.getParameter("out_trade_no");\x0d\x0a\x0d\x0aSystem.out.println("out_trade_no:"+out_trade_no);\x0d\x0a\x0d\x0a//財(cái)付通訂單號(hào)\x0d\x0a\x0d\x0aStringtransaction_id=resHandler.getParameter("transaction_id");\x0d\x0a\x0d\x0aSystem.out.println("transaction_id:"+transaction_id);\x0d\x0a\x0d\x0a//金額,以分為單位\x0d\x0a\x0d\x0aStringtotal_fee=resHandler.getParameter("total_fee");\x0d\x0a\x0d\x0a//如果有使用折扣券,discount有值,total_fee+discount=原請(qǐng)求的total_fee\x0d\x0a\x0d\x0aStringdiscount=resHandler.getParameter("discount");\x0d\x0a\x0d\x0a//支付結(jié)果\x0d\x0a\x0d\x0aStringtrade_state=resHandler.getParameter("trade_state");\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a//判斷簽名及結(jié)果\x0d\x0a\x0d\x0aif("0".equals(trade_state)){\x0d\x0a\x0d\x0a//------------------------------\x0d\x0a\x0d\x0a//即時(shí)到賬處理業(yè)務(wù)開始\x0d\x0a\x0d\x0a//------------------------------\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0aSystem.out.println("----------------業(yè)務(wù)邏輯執(zhí)行-----------------");\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a//——請(qǐng)根據(jù)您的業(yè)務(wù)邏輯來編寫程序(以上代碼僅作參考)——\x0d\x0a\x0d\x0aSystem.out.println("----------------業(yè)務(wù)邏輯執(zhí)行完畢-----------------");\x0d\x0a\x0d\x0aSystem.out.println("success");//請(qǐng)不要修改或刪除\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0aSystem.out.println("即時(shí)到賬支付成功");\x0d\x0a\x0d\x0a//給財(cái)付通系統(tǒng)發(fā)送成功信息,財(cái)付通系統(tǒng)收到此結(jié)果后不再進(jìn)行后續(xù)通知\x0d\x0a\x0d\x0aresHandler.sendToCFT("success");\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a//給微信服務(wù)器返回success否則30分鐘通知8次\x0d\x0a\x0d\x0areturn"success";\x0d\x0a\x0d\x0a}else{\x0d\x0a\x0d\x0aSystem.out.println("通知簽名驗(yàn)證失敗");\x0d\x0a\x0d\x0aresHandler.sendToCFT("fail");\x0d\x0a\x0d\x0aresponse.setCharacterEncoding("utf-8");\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a}else{\x0d\x0a\x0d\x0aSystem.out.println("fail-Md5failed");
在config.jsp填 好 在ResponseHandler填下APPKEY 用wxm-pay-api-demo.html或者jsapi.jsp我測(cè)試是都可以用.試能用哪個(gè)用哪個(gè)吧 JS已經(jīng)搞好了
ResponseHandler,ResponseHandler,payNotifyUrl.jsp都修了..
具體方法步驟:
一、準(zhǔn)備階段:已認(rèn)證微信號(hào),且通過微信支付認(rèn)證,這個(gè)可以看微信文檔,很詳細(xì),這里就不再重復(fù)。
二、配置授權(quán)目錄,官方推薦使用https類型的url,不知道http能不能行,個(gè)人也推薦使用https的保證不會(huì)錯(cuò)。
配置授權(quán)域名
三、微信支付二次開發(fā)所需要的參數(shù):
APP_ID,APP_KEY,PARTNER,PARTNER_KEY(AppSecret)
APP_ID和PARTNER_KEY(AppSecret)
PARTNER
APP_KEY(自行設(shè)置32位字符)
四、具體編程
1、通過頁(yè)面跳轉(zhuǎn)到確認(rèn)支付頁(yè)面,其中的redirect_uri必須是配置授權(quán)目錄下的。
2、獲取到openid,再經(jīng)服務(wù)器向微信請(qǐng)求獲取prepay_id,封裝字段并進(jìn)行簽名后通過jsapi調(diào)起微信支付
3、測(cè)試結(jié)果
? ?
網(wǎng)站欄目:微信支付java代碼 微信支付Java
網(wǎng)頁(yè)URL:http://m.rwnh.cn/article0/doopdoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、營(yíng)銷型網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、做網(wǎng)站、品牌網(wǎng)站建設(shè)、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容