中國銀行的支付接口是由中國銀行技術(shù)給下發(fā)文檔的,建議還是找技術(shù)要一下。
創(chuàng)新互聯(lián)專注于雞西企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,成都商城網(wǎng)站開發(fā)。雞西網(wǎng)站建設(shè)公司,為雞西等地區(qū)提供建站服務(wù)。全流程按需策劃,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
解釋:必須先通過分行的業(yè)務(wù)經(jīng)理通知中行總行技術(shù)下發(fā)文檔,之后才會(huì)給第三方公司下發(fā)api文檔的,并且中行的沒有代碼例子。
銀行的接口,如果流量小的話一般都不給接的。
一般都是接的第三方支付接口,我這里有些演示代碼
聯(lián)系我,可以發(fā)給你參考下
1.調(diào)用微信接口授權(quán)
授權(quán)這里有兩種方式,一種是snsapi_bases,另一種是snsapi_userinfo,這里官方文檔介紹的比較清楚,可以參考官網(wǎng)
;t=resource/res_listverify=1id=open1419316505token=lang=zh_CN
appid?登錄微信公眾號(hào)-基本配置-開發(fā)者ID-APPID
redirect_uri?就是一個(gè)回調(diào)地址,當(dāng)你調(diào)用完微信的這個(gè)鏈接后,他會(huì)自動(dòng)調(diào)用你定義的這個(gè)地址,返回code參數(shù)
注意,redirect_uri?也需要在公眾號(hào)里面配置,在接口權(quán)限-網(wǎng)頁帳號(hào)里修改。
2.可以在頁面中寫一個(gè)調(diào)用授權(quán)的頁面
%@?page?language="java"?contentType="text/html;?charset=UTF-8"?pageEncoding="UTF-8"%??
!DOCTYPE?html?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"?"
%??
String?path?=?request.getContextPath();??
String?basePath?=?request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";??
%??
html??
head??
title用戶管理/title??
script?type="text/javascript"?src="js/jquery/jquery-1.11.1.min.js"/script??
script?type="text/javascript"??
function?oauth()?{??
var?url?=??"%=basePath%getOauth2Url";??
$.ajax({??
url:?url,??
success?:?function(result){??
//var?result?=?eval('('+result+')');??
if?(result.success){??
location.href?=?result.obj;?//
}?else?{??
}??
}??
});??
}??
/script??
/head??
body??
p?onclick="oauth()"非用戶認(rèn)證鑒權(quán)/p??
/body??
/html
/prepre?class="html"?name="code"?snippet_file_name="blog_20160608_3_8825275"?code_snippet_id="1711669"java中的方法??
pre?class="html"?name="code"????/**??
*?獲取授權(quán)地址??
*?@return??
*/??
@RequestMapping(value?=?"/getOauth2Url",method?=?RequestMethod.GET)??
public?void?getOauth2Url(Model?model,?HttpServletResponse?response)?{??
Json?j?=?new?Json();??
try?{??
String?authorize_url?=?PayConfig.AUTHORIZE_URL;??
String?appId?=?PayConfig.APPID;??
String?redirect_uri?=?PayConfig.REDIRECT_URI;??
String?url?=?authorize_url?+?"?appid="?+?appId?+?"redirect_uri="?+?urlEncodeUTF8(redirect_uri)?+?"response_type=codescope=snsapi_basestate=STATE#wechat_redirect";??
System.out.println(url);??
j.setSuccess(true);??
j.setMsg("保存成功!");??
j.setObj(url);??
write(response,?JSON.toJSONString(j));??
}?catch?(Exception?e)?{??
j.setMsg(e.getMessage());??
}??
}??
/**??
*?對(duì)回調(diào)地址進(jìn)行encode??
*?@param?source??
*?@return??
*/??
public?static?String?urlEncodeUTF8(String?source){??
String?result?=?source;??
try?{??
result?=?java.net.URLEncoder.encode(source,"utf-8");??
}?catch?(UnsupportedEncodingException?e)?{??
e.printStackTrace();??
}??
return?result;??
}??
pre?class="html"?name="code" /**
?*?獲取授權(quán)地址
?*?@return
?*/
@RequestMapping(value?=?"/getOauth2Url",method?=?RequestMethod.GET)
public?void?getOauth2Url(Model?model,?HttpServletResponse?response)?{
??Json?j?=?new?Json();
try?{
String?authorize_url?=?PayConfig.AUTHORIZE_URL;
String?appId?=?PayConfig.APPID;
String?redirect_uri?=?PayConfig.REDIRECT_URI;
String?url?=?authorize_url?+?"?appid="?+?appId?+?"redirect_uri="?+?urlEncodeUTF8(redirect_uri)?+?"response_type=codescope=snsapi_basestate=STATE#wechat_redirect";
System.out.println(url);
j.setSuccess(true);
j.setMsg("保存成功!");
j.setObj(url);
write(response,?JSON.toJSONString(j));
}?catch?(Exception?e)?{
j.setMsg(e.getMessage());
}
}
/**
?*?對(duì)回調(diào)地址進(jìn)行encode
?*?@param?source
?*?@return
?*/
public?static?String?urlEncodeUTF8(String?source){
String?result?=?source;
try?{
result?=?java.net.URLEncoder.encode(source,"utf-8");
}?catch?(UnsupportedEncodingException?e)?{
e.printStackTrace();
}
return?result;
}
package?com.crm.common;??
public?class?PayConfig?{??
public?static?String?APPID?=?"wx91af774aae000dcb";?//APPID??
public?static?String?MCHID?=?"1347742701";?????????//商戶編號(hào)??
public?static?String?PAYKEY?=?"kong6a9829e4b49a0d2347b4162da6b7";??????????//支付密鑰??
public?static?String??APPSECRET??=?"f8e1ff34070a94332b3b128232acb5abf?";?//公眾號(hào)-基本配置-APPSECRET密鑰??
public?static?String?REDIRECT_URI?=?"
回調(diào)地址??
public?static?String?AUTHORIZE_URL?=?"
微信授權(quán)地址??
public?static?String?ACCESS_TOKEN_URI?=?"
public?static?String?SCOPE?=?"snsapi_base";????????//snsapi_base和snsapi_userinfo??
public?static?String?GRANT_TYPE?=?"grant_type";?//獲取openid時(shí)用,不用改??
}??
3.成功后,回到你當(dāng)時(shí)寫的回調(diào)地址??
pre?class="html"?name="code"/**??
*?微信授權(quán)后的回調(diào)地址的方法??
*?@param?code??
*?@param?response??
*/??
@RequestMapping(value?=?"/authorize",method?=?RequestMethod.GET)??
public?void?authorize(String?code,?HttpServletResponse?response,?String?openid)?{??
code?=?"test";??
String?access_token_uri?=?PayConfig.ACCESS_TOKEN_URI;??
String?appid?=?PayConfig.APPID;??
String?secret?=?PayConfig.APPSECRET;??
access_token_uri?=?access_token_uri.replace("APPID",?appid).replace("SECRET",?secret).replace("CODE",?code);??
System.out.println(access_token_uri);??
if(openid?!=?null){??
UniteOrder?order?=?getUniteOrder(openid);??
String?reqXML?=?PayImpl.generateXML(order,?PayConfig.PAYKEY);??
String?respXML?=?PayImpl.requestWechat(ORDER_URL,?reqXML);??
System.out.println("respXML="?+?respXML);??
UniteOrderResult?result?=?(UniteOrderResult)?PayImpl.turnObject(UniteOrderResult.class,?respXML);??
getWechatPay(result);??
}??
}
。。。簡單的很。那個(gè)接口,其實(shí)說白了,就是一個(gè)http連接地址。然后,訪問這個(gè)地址的時(shí)候,需要各種參數(shù),當(dāng)然,這個(gè)參數(shù)的名字是人家銀行已經(jīng)規(guī)定好的。各個(gè)參數(shù)表示的是什么玩意兒,人家也有文檔說明的。到時(shí)候,你需要調(diào)用的時(shí)候,只需要拼接字符串,把這個(gè)地址和參數(shù)拼接出來,然后通過重定向,重定向到這個(gè)拼接出來的地址,就OK樂。 到時(shí)候,用戶的瀏覽器就會(huì)自動(dòng)到這個(gè)地址頁面上,一般都是付賬的頁面上了。
notify_url與return_url我做的時(shí)候當(dāng)時(shí)都寫了,你其實(shí)可以看他的開發(fā)文檔,這個(gè)是不是必選的一看就知道了,提交淘寶的參數(shù),可以自己定義,但不知道你要定義什么了,一般提交到支付寶的信息,是你的支付寶信息,你的訂單信息,以及他們的加密簽名,然后成功后,支付寶會(huì)把訂單信息以及簽名返回,你需要做的是對(duì)這個(gè)簽名做確認(rèn),對(duì)返回的訂單信息,和你的支付寶key再一次加密形成簽名,與支付寶的返回的簽名做比對(duì),一致的話,就證明是你的訂單信息支付成功了,然后就沒有然后了,看支付接口的文檔和他的官方例子就好,希望能幫到你!
public?String?alibaPayCallBackNotice(HttpServletRequest?request,?HttpServletResponse?response,?String?outTradeNo)??{
//獲取支付寶POST過來反饋信息
MapString,String?params?=?new?HashMapString,String();
Map?,???requestParams?=?request.getParameterMap();
for?(Iterator??iter?=?requestParams.keySet().iterator();?iter.hasNext();)?{
String?name?=?(String)?iter.next();
String[]?values?=?(String[])?requestParams.get(name);
String?valueStr?=?"";
for?(int?i?=?0;?i??values.length;?i++)?{
valueStr?=?(i?==?values.length?-?1)???valueStr?+?values[i]
:?valueStr?+?values[i]?+?",";
}
//亂碼解決,這段代碼在出現(xiàn)亂碼時(shí)使用。
//valueStr?=?new?String(valueStr.getBytes("ISO-8859-1"),?"utf-8");
params.put(name,?valueStr);
}
//切記alipaypublickey是支付寶的公鑰,請(qǐng)去open.alipay.com對(duì)應(yīng)應(yīng)用下查看。
//boolean?AlipaySignature.rsaCheckV1(MapString,?String?params,?String?publicKey,?String?charset,?String?sign_type)
try?{
boolean?flag?=?AlipaySignature.rsaCheckV1(params,?App.AliBaPay.ALIPAY_PUBLIC_KEY,?"UTF-8","RSA2");
if?(flag)?{
if?("TRADE_SUCCESS".equals(params.get("trade_status"))?||?"TRADE_FINISHED".equals(params.get("trade_status")))?{
//?支付成功,錄入訂單數(shù)據(jù)
if?(userMoneyService.userUpdateWaterAccountInfo(Integer.valueOf(outTradeNo)))?{
return?"success";
}
}
}?
}?catch?(Exception?e)?{
}
return?"failure";
}
整個(gè)接口返回的數(shù)據(jù),處理為字符串返回即可,不需要跳轉(zhuǎn),也不能跳轉(zhuǎn),要在你的resposne中body數(shù)據(jù)
記得采納
網(wǎng)站名稱:java中的支付接口代碼,java支付寶接口
轉(zhuǎn)載注明:http://www.rwnh.cn/article18/dssopgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、靜態(tài)網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、小程序開發(fā)、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)