黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java支付接口的對接

Java支付接口的對接

更新時間:2022-07-01 10:56:19 來源:動力節點 瀏覽1965次

動力節點小編來告訴大家Java支付接口的對接步驟。

對接步驟

官網地址:碼支付

首先去官網注冊賬號,這個就不過多介紹了,注冊完后登錄點擊使用教程,把監控軟件下載到本地

監控軟件使用:

碼支付軟件使用教程

將以下三個類加到項目中:

demo.jsp(支付操作類):

<html>
<head>
    <meta name="keywords" content="">
    <meta name="description" content="">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>
        充值
    </title>
<link rel="stylesheet" href="css/demo.css" />
</head>
<body>
<form name="form1" id="form1" method="get" action="codepay.jsp">
<input type="hidden" name="urlName" value="${pageContext.request.contextPath }">
    <div>
        <table width="550" border="0" align="center" cellpadding="8" cellspacing="1" bgcolor="#ffffff">
            <tbody>
            <tr>
                <td colspan="2">
                    <div align="center"><strong>在線充值</strong></div>
                </td>
            </tr>
            <!--          注釋以下代碼 可禁止自己輸入價格-->
            <tr>
                <td>
                    <div align="right">金額:</div>
                </td>
                <td>
                    <input name="price" id="price" type="text" value=""   class="input_text"> 元</td>
            </tr>
            <!--              注釋結束位置            -->
            <tr>
              <!--   <td>
                    <div align="right">用戶:</div>
                </td>
                <td><input name="pay_id" id="pay_id" type="text" value="" class="input_text"
                           style=" width:200px;"   ></td>
 -->
            </tr>
            <tr>
                <td>
                    <div align="right">支付:</div>
                </td>
                <td><label>
                        <div class="type_select alipay_select">
                            <input type="radio" name="type" value="1" checked="checked">
                        </div>
                    </label>
                    <label>
                        <div class="type_select wechat_select">
                            <input type="radio" name="type" value="3">
                        </div>
                    </label>
                    <label>
                        <div class="qqpay_select type_select">
                            <input type="radio" name="type" value="2">
                        </div>
                    </label>
                </td>
            </tr>          
            <tr>
                <td>
                    <div align="right"></div>
                </td>
                <td><label>
                        <input type="submit"  id="Submit" class="button button-pill button-primary"
                               value="支付寶支付">
                    </label></td>
            </tr>
            </tbody>
        </table>
    </div>
</form>
<script src="http://codepay.fateqq.com/js/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
    var type = document.getElementsByName('type');
    var price = document.getElementById('price');
    var money = document.getElementById('money');
    var FormSubmit = document.getElementById('Submit');
    for (var i = 0; i < type.length; i++) {
        type[i].onclick = function () {
            switch (parseInt(this.value)) {
                case 1:
                    FormSubmit.value = '支付寶支付';
                    break;
                case 2:
                    FormSubmit.value = 'QQ錢包支付';
                    break;
                case 3:
                    FormSubmit.value = '微信支付';
                    break;
                default:
                    FormSubmit.value = '支付寶支付';
            }
        }
    }
    $(".w-pay-money").click(function () {
        $(".w-pay-money").removeClass('w-pay-money-selected');
        $(this).addClass('w-pay-money-selected');
        price.value = $(this).attr('data');
        money.value = $(this).attr('data');
    });    
</script>
</body>
</html>

這里要注意一點:有些朋友去官方下載的demo,小編的做了一些改變,就是支付人唯一標識這里刪掉了,在后臺傳了固定的值:

<td><input name="pay_id" id="pay_id" type="text" value="" class="input_text"
                           style=" width:200px;"   ></td>

codepay.jsp(接收參數 創建訂單):

這個類比較重要,主要的作用就是將demo頁面的值傳入接收,生成訂單項,提交至官方url進行處理,返回回執結果,同步跳轉提示地址等…

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
	/**
	* 接收參數 創建訂單
	*/
	String token = "更改成您的token令牌"; //記得更改 http://codepay.fateqq.com 后臺可設置
	String codepay_id ="更改成您的碼支付ID" ;//記得更改 http://codepay.fateqq.com 后臺可獲得
	String price=request.getParameter("price"); //表單提交的價格
	String type=request.getParameter("type"); //支付類型  1:支付寶 2:QQ錢包 3:微信
	String pay_id=request.getParameter("pay_id"); //支付人的唯一標識
	String param=request.getParameter("param"); //自定義一些參數 支付后返回
	String notify_url="http://你的域名/codepay.jsp";//通知地址
	String return_url="";//支付后同步跳轉地址
	if(price==null){ 
		price="1";
	}
	//參數有中文則需要URL編碼
	String url="https://api.xiuxiu888.com/creat_order?id="+codepay_id+"&pay_id="+pay_id+"&price="+price+"&type="+type+"&token="+token+"&param="+param+"&notify_url="+notify_url+"&return_url="+return_url;	
	response.sendRedirect(url);	
%>

notify.jsp(驗證通知 處理自己的業務):

這個類主要就是將所有參數進行了一個MD5加密的校驗,偷偷告訴你們,如果有自己的通知結果頁面,這個類可有可無,不過為了安全起見,還是加上,通過這個類進行加密校驗,如果ok就跳轉頁面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ page import="java.security.MessageDigest"%>
<%@ page import="java.math.*"%>
<%
	/**
	*驗證通知 處理自己的業務
	*/
	String key = "通信密鑰"; //記得更改 http://codepay.fateqq.com 后臺可設置
	Map<String,String> params = new HashMap<String,String>(); //申明hashMap變量儲存接收到的參數名用于排序
	Map requestParams = request.getParameterMap(); //獲取請求的全部參數
	String valueStr = ""; //申明字符變量 保存接收到的變量
	for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {
		String name = (String) iter.next();
		String[] values = (String[]) requestParams.get(name);
		valueStr = values[0];
		//亂碼解決,這段代碼在出現亂碼時使用。如果sign不相等也可以使用這段代碼轉化
		//valueStr = new String(valueStr.getBytes("ISO-8859-1"), "gbk");
		params.put(name, valueStr);//增加到params保存
	}
	List<String> keys = new ArrayList<String>(params.keySet()); //轉為數組
  	Collections.sort(keys); //重新排序
	String prestr = "";
	String sign= params.get("sign"); //獲取接收到的sign 參數	
        for (int i = 0; i < keys.size(); i++) { //遍歷拼接url 拼接成a=1&b=2 進行MD5簽名
            String key_name = keys.get(i);
            String value = params.get(key_name);
	    	if(value== null || value.equals("") ||key_name.equals("sign")){ //跳過這些 不簽名
	    		continue;
	    	}
	    	if (prestr.equals("")){
	    		prestr =  key_name + "=" + value;
	    	}else{
				prestr =  prestr +"&" + key_name + "=" + value;
	    	}
        }
	MessageDigest md = MessageDigest.getInstance("MD5");
	md.update((prestr+key).getBytes());
	String  mySign = new BigInteger(1, md.digest()).toString(16).toLowerCase();
	if(mySign.length()!=32)mySign="0"+mySign;
	if(mySign.equals(sign)){ 
		//編碼要匹配 編碼不一致中文會導致加密結果不一致
		//參數合法處理業務
		//request.getParameter("pay_no") 流水號
		//request.getParameter("pay_id") 用戶唯一標識
		//request.getParameter("money") 付款金額
		//request.getParameter("price") 提交的金額
		out.print("ok");
	}else{
		//參數不合法
		out.print("fail");
	}
%>

效果圖

選擇支付方式頁面(博主比較窮,沒開通會員版),所以這里就拿QQ支付作為演示:

點擊支付后,提交的一個界面:

支付完成后,同步跳轉通知:

有圖有真相,這個平臺對于想入手支付接口的朋友來說還是比較棒的,官方提供的demo可修改性也比較好,可以結合自己的項目場景去開發…

對接注意事項

先別溜,先聽博主講完,給大家說幾個一定要注意的點,也是博主踩過的坑:

一定要去后臺把參數一一正確的填入codepay.jsp和notify.jsp這兩個類,獲取參數如圖:

一定要下載好監控軟件,一定一定!!!如果你開通了了會員版,當我沒說…,下載好后,在測試運行項目前,一定要運行監控軟件進行監控,不然得不到回執結果,頁面不會跳轉,而且還會掉單…

基本業務邏輯都是收款碼上顯示多少,手機在掃碼支付時,固定只能支付對應的金額,就像這樣(前臺收取1元錢,手機在掃碼付款時,圖片為手機截圖,沒做處理,有點大見諒):

但是!!!!!如果沒去官方后臺上傳對應金額的收款碼,掃了之后還是可以手動輸入,當時我發現掃了之后,沒有直接對對應的金額直接付款,而是可以手動輸入比較疑惑,所以就去后臺看了看,要上傳對應的收款碼

codepay.jsp頁面的同步通知地址可留空,如果想跳轉自己項目的路徑,一定要填寫正確,也就是這一行:

String return_url = "";//支付后同步跳轉地址

 

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 555夜色666夜色精品站 | 瑟瑟网站在线观看 | 日韩成人在线网站 | 二个人的视频www | 国产大陆精品另类xxxx | 免费动漫无遮挡曰批视频软件 | 人人精品 | 五月丁香啪啪 | 日韩欧美视频在线播放 | 一级特黄录像免费播放中文版 | 日本一区二区三区四区视频 | 人人干视频在线观看 | 日韩一区二区三区精品 | 日本无遮挡亲吻膜下面免费 | 99re5精品视频在线观看 | 久久精品国产91久久麻豆自制 | 久久综合九色综合欧美狠狠 | 黄色片网站在线播放 | 成人在线激情网 | 精品国产一区在线观看 | 亚洲无线码在线一区观看 | 波多野结衣视频免费看 | 香港三级日本三级三级人妇99 | 看成年女人免费午夜视频 | 成人免费视频在线观看 | 色y情视频免费看 | 日本www色视频萌爱网 | 国产成人精品午夜在线播放 | 九九久久精品视频 | 国产精品免费视频一区一 | 色综合天天综合高清网国产 | 成年人免费在线视频观看 | 欧美成人免费一区在线播放 | 性色视频在线观看 | 视频在线观看网站免费 | 亚洲成a人在线观看 | 欧美色图在线观看 | 成人黄网18免费观看的网站 | www.怡红院| 亚洲无线一二三四区手机 | 天天精品视频在线观看资源 |