<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    世界因你而精彩  
    日歷
    <2013年8月>
    28293031123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567
    統計
    • 隨筆 - 169
    • 文章 - 1
    • 評論 - 138
    • 引用 - 0

    導航

    常用鏈接

    留言簿(9)

    隨筆分類(163)

    隨筆檔案(154)

    文章檔案(1)

    新聞檔案(1)

    相冊

    收藏夾(1)

    個人雜雜

    友情鏈接

    自學考試

    資料搜索

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 359144
    • 排名 - 153

    最新評論

    閱讀排行榜

    評論排行榜

     

    index.jsp

    <%@ page contentType="text/html;charset=gb2312"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <body >

    <br>
    <a href="<%=gateway.payment.payment.CreateUrl()%>"><img src="images/alipay_bwrx.gif" border="0"></a>

    </body>
    </html>

    alipay_notify.jsp
    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="java.util.*"%>

    <%request.setCharacterEncoding("gb2312");
    ???String partner = ""; //partner合作伙伴id(必須填寫)
    ???String privateKey = ""; //partner 的對應交易安全校驗碼(必須填寫)
    ???String alipayNotifyURL = "?????+ "&partner="
    ?????+ partner
    ?????+ "&notify_id="
    ?????+ request.getParameter("notify_id");

    ???//獲取支付寶ATN返回結果,true是正確的訂單信息,false 是無效的
    ???//如果你的服務器不支持https訪問的話,需要用老的接口查詢地址了,論壇上會公布
    ???String responseTxt = gateway.checkURL.checkURL
    ?????.check(alipayNotifyURL);

    ???Map params = new HashMap();
    ???//獲得POST 過來參數設置到新的params中
    ???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] + ",";
    ?????//valueStr = valueStr + values[i];
    ????}
    ????params.put(name, valueStr);
    ???}
    ???
    ???String mysign = com.alipay.util.SignatureHelper.sign(params, privateKey);
    ???
    ???//out.println(mysign+"-----"+request.getParameter("sign"));
    ???if (mysign.equals(request.getParameter("sign")) || responseTxt.equals("true")? ){
    ????
    ????out.println("success");
    ??}
    ??%>

    retrun_url.jsp
    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="java.util.*"%>

    <%request.setCharacterEncoding("gb2312");
    ???//String partner = ""; //partner合作伙伴id(必須填寫)
    ???String privateKey = ""; //partner 的對應交易安全校驗碼(必須填寫)
    ??//?String alipayNotifyURL = "
    ???//??+ "&partner="
    ???//??+ partner
    ???//??+ "&notify_id="
    ???//??+ request.getParameter("notify_id");

    ???//獲取支付寶ATN返回結果,true是正確的訂單信息,false 是無效的
    ???//String responseTxt = gateway.checkURL.checkURL
    ???//??.check(alipayNotifyURL);
    ??????????? //由于return url的返回通知,notifyid為空,無法到服務器查詢真假,所以只要比對簽名就好
    ???
    ???
    ???Map params = new HashMap();
    ???//獲得POST 過來參數設置到新的params中
    ???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] + ",";
    ?????//valueStr = valueStr + values[i];
    ????}
    ????params.put(name, valueStr);
    ???}
    ???
    ???String mysign = com.alipay.util.SignatureHelper_return.sign(params, privateKey);
    ???
    ???//out.println(mysign+"-----"+request.getParameter("sign"));
    ???if (mysign.equals(request.getParameter("sign"))? ){
    ????
    ????
    ????if (request.getParameter("trade_status").equalsIgnoreCase("TRADE_FINISHED")){
    ??????????? //?可以做重定向,也可以用來虛擬物品發貨
    ????}
    ????
    ??}

    ??%>


    SignatureHelper.java
    package com.alipay.util;

    import gateway.md5.Md5Encrypt;

    import java.util.ArrayList;

    import java.util.Collections;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.Properties;

    public class SignatureHelper {

    ?public static String sign(Map params, String privateKey) {
    ??Properties properties = new Properties();

    ??for (Iterator iter = params.keySet().iterator(); iter.hasNext();) {
    ???String name = (String) iter.next();
    ???Object value = params.get(name);
    ???if (value == null) {
    ????continue;
    ???}

    ???if (name == null || name.equalsIgnoreCase("sign")
    ?????|| name.equalsIgnoreCase("sign_type")) {
    ????continue;
    ???}

    ???properties.setProperty(name, value.toString());
    ??}

    ??String content = getSignatureContent(properties);
    ??return sign(content, privateKey);
    ?}

    ?@SuppressWarnings("unchecked")
    ?public static String getSignatureContent(Properties properties) {
    ??StringBuffer content = new StringBuffer();
    ??List keys = new ArrayList(properties.keySet());
    ??Collections.sort(keys);

    ??for (int i = 0; i < keys.size(); i++) {
    ???String key = (String) keys.get(i);
    ???String value = properties.getProperty(key);
    ???content.append((i == 0 ? "" : "&") + key + "=" + value);
    ??}

    ??return content.toString();
    ?}

    ?public static String sign(String content, String privateKey) {
    ??if (privateKey == null) {
    ???return null;
    ??}
    ??String signBefore = content + privateKey;
    ??// System.out.print(Md5Encrypt.md5(signBefore));
    ??return Md5Encrypt.md5(signBefore);

    ?}
    }


    SignatureHelper_return.java
    package com.alipay.util;

    import gateway.md5.Md5Encrypt;

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.Properties;

    public class SignatureHelper_return {

    ?public static String sign(Map params, String privateKey) {
    ??Properties properties = new Properties();

    ??for (Iterator iter = params.keySet().iterator(); iter.hasNext();) {
    ???String name = (String) iter.next();
    ???Object value = params.get(name);
    ???if (value == null) {
    ????continue;
    ???}

    ???if ( name.equalsIgnoreCase("sign")
    ?????|| name.equalsIgnoreCase("sign_type")) {
    ????continue;
    ???}

    ???properties.setProperty(name, value.toString());
    ??}

    ??String content = getSignatureContent(properties);
    ??return sign(content, privateKey);
    ?}

    ?@SuppressWarnings("unchecked")
    ?public static String getSignatureContent(Properties properties) {
    ??StringBuffer content = new StringBuffer();
    ??List keys = new ArrayList(properties.keySet());
    ??Collections.sort(keys);

    ??for (int i = 0; i < keys.size(); i++) {
    ???String key = (String) keys.get(i);
    ???String value = properties.getProperty(key);
    ???content.append((i == 0 ? "" : "&") + key + "=" + value);
    ??}

    ??return content.toString();
    ?}

    ?public static String sign(String content, String privateKey) {
    ??if (privateKey == null) {
    ???return null;
    ??}
    ??String signBefore = content + privateKey;
    ??// System.out.print(Md5Encrypt.md5(signBefore));
    ??return Md5Encrypt.md5(signBefore);

    ?}
    ?
    ?
    ?
    }


    checkURL.java
    ?
    package gateway.checkURL;
    import java.net.*;
    import java.io.*;


    public class checkURL {
    ??? /**
    ???? * 對字符串進行MD5加密
    ? * @param myUrl
    ???? *
    ???? * @param url
    ???? *
    ???? * @return 獲取url內容
    ???? */
    ? public static String check(String urlvalue ) {
    ?
    ?? String inputLine = "";
    ??try
    ??{
    ???URL url = new URL(urlvalue);
    ???
    ???HttpURLConnection urlConnection? = (HttpURLConnection)url.openConnection();
    ???
    ???BufferedReader in? = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
    ??
    ???String stTemp = "";
    ???????? while((stTemp = in.readLine()) != null)
    ???????? {
    ??????????? System.out.println(stTemp);
    ??????????? inputLine = inputLine + stTemp;
    ???????? }
    ??}
    ??catch(Exception e)
    ??{
    ???e.printStackTrace();
    ??}
    ??return inputLine;
    ?}


    ? }

    Md5Encrypt.java
    /**
    ?* Alipay.com Inc. Copyright (c) 2004-2005 All Rights Reserved.
    ?*
    ?* <p>
    ?* Created on 2005-7-9
    ?* </p>
    ?*/
    ?package gateway.md5;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;

    /**
    ?* MD5加密算法
    ?*/
    public class Md5Encrypt {
    ??? /**
    ???? * 對字符串進行MD5加密
    ???? *
    ???? * @param text 明文
    ???? *
    ???? * @return 密文
    ???? */
    ??? public static String md5(String text) {
    ??????? MessageDigest msgDigest = null;

    ??????? try {
    ??????????? msgDigest = MessageDigest.getInstance("MD5");
    ??????? } catch (NoSuchAlgorithmException e) {
    ??????????? throw new IllegalStateException("System doesn't support MD5 algorithm.");
    ??????? }

    ??????? msgDigest.update(text.getBytes());

    ??????? byte[] bytes = msgDigest.digest();

    ??????? byte?? tb;
    ??????? char?? low;
    ??????? char?? high;
    ??????? char?? tmpChar;

    ??????? String md5Str = new String();

    ??????? for (int i = 0; i < bytes.length; i++) {
    ??????????? tb = bytes[i];

    ??????????? tmpChar = (char) ((tb >>> 4) & 0x000f);

    ??????????? if (tmpChar >= 10) {
    ??????????????? high = (char) (('a' + tmpChar) - 10);
    ??????????? } else {
    ??????????????? high = (char) ('0' + tmpChar);
    ??????????? }

    ??????????? md5Str += high;
    ??????????? tmpChar = (char) (tb & 0x000f);

    ??????????? if (tmpChar >= 10) {
    ??????????????? low = (char) (('a' + tmpChar) - 10);
    ??????????? } else {
    ??????????????? low = (char) ('0' + tmpChar);
    ??????????? }

    ??????????? md5Str += low;
    ??????? }

    ??????? return md5Str;
    ??? }
    }


    payment.java
    package gateway.payment;

    import java.util.*;


    public class payment {
    ?
    ?
    ??

    ?public static String CreateUrl()
    ????? {??
    ?
    ??? Date out_trade_no=new Date();
    ??? String paygateway????=?"
    ??? String service = "create_direct_pay_by_user";
    ??? String partner???=?"";??//partner合作伙伴ID(必填)
    ??? String sign_type?????? =?? "MD5";
    ??? String subject = "訂單號:" + out_trade_no;??//subject??商品名稱
    ??? String body = "交易地點總價包含郵費";??//body???商品描述
    ??? String price????? =?"100";????//price???商品單價???0.01~50000.00
    ??? String show_url??????? =?? "
    ??? String quantity??????? =?? "1";
    ??? String payment_type??? =?? "1";
    ??? String logistics_type? =?? "EXPRESS";//logistic為物流信息
    ??? String logistics_fee?? =?? "2";
    ??? String logistics_payment? =?? "SELLER_PAY";
    ??? String logistics_type_1? =?? "EMS";
    ??? String logistics_fee_1?? =?? "4";
    ??? String logistics_payment_1? =?? "SELLER_PAY";
    ??? String seller_email??? =??? "";???????????? //賣家賬號(必填)
    ??? String key???????????? =??? "";????????????? //partner賬戶的支付寶安全校驗碼(必填)
    ??? String notify_url????? =??? "

    ???
    ??
    ??? String[] Oristr ={ "service="+service, "partner=" + partner, "subject=" + subject, "body=" + body, "out_trade_no=" + out_trade_no, "price=" + price, "show_url=" + show_url, "quantity=" + quantity, "payment_type=" + payment_type, "logistics_type=" + logistics_type, "logistics_fee=" + logistics_fee, "logistics_payment=" + logistics_payment, "logistics_type_1=" + logistics_type_1, "logistics_fee_1=" + logistics_fee_1, "logistics_payment_1=" + logistics_payment_1, "seller_email=" + seller_email, "notify_url=" + notify_url };
    ??? ???? ??????
    ??????? Arrays.sort(Oristr);//Sorts the specified array of objects into ascending order
    ?????????? ???? ?????//according to the natural ordering of its elements.
    ??????
    ????????? String prestr="";
    ?????????
    ????????? for (int i = 0; i < Oristr.length; i++)
    ???????????? {
    ???????????????? if (i==Oristr.length-1)
    ???????????????? {
    ???????????????????? prestr = prestr + Oristr[i] ;
    ???????????????? }
    ???????????????? else
    ???????????????? {
    ???????????????????? prestr = prestr + Oristr[i] + "&";
    ???????????????? }
    ?????????????????
    ???????????? }

    ????????? ?prestr = prestr + key;

    ???????????? //生成Md5摘要;
    ???????????? String sign = gateway.md5.Md5Encrypt.md5(prestr);
    ????????????
    ???????????? //構造支付Url;
    ???????????? String parameter = "";
    ???????????? parameter = parameter + paygateway;
    ???????????? for (int i = 0; i < Oristr.length; i++)
    ???????????? {
    ???????????????? parameter = parameter + Oristr[i] + "&";??????????????
    ???????????? }

    ???????????? parameter = parameter + "sign=" + sign + "&sign_type=" + sign_type;

    ???????????? //返回支付Url;
    ???????????? return parameter;

    ???
    ?
    ????? }
    }

    注意:
    包的位置,
    參數排序是以字母的排序排的

    資料由支付寶轉載:
    下載地址:
    http://www.blive.cn/liuz/download/new_jsp_xuni.rar

    posted on 2006-06-30 16:56 張秀蘭 閱讀(14045) 評論(6)  編輯  收藏
    評論:
    • # re: 支付寶在線支付接口  姜利陽 Posted @ 2007-08-28 01:05
      不錯!  回復  更多評論   

    • # re: 支付寶在線支付接口  ball Posted @ 2008-01-06 19:12
      這種東西安全嗎??  回復  更多評論   

    • # re: 支付寶在線支付接口  張秀蘭 Posted @ 2008-01-07 08:49
      @ball
      支付寶安全做得挺好的,安全  回復  更多評論   

    • # re: 支付寶在線支付接口  謝小強 Posted @ 2013-05-22 17:04
      盛維支付接口,安全、穩定,為游戲平臺、商城、IDC等各行各業接入在線支付接口。T+0 T+1結算方式,超低費率,是您值得信賴的選擇!聯系QQ:274718474  回復  更多評論   

    • # re: 支付寶在線支付接口  謝小強 Posted @ 2013-06-04 15:57
      第三方支付首選—盛維支付,低費率、速到賬、資金不凍結。聯系QQ:274718474  回復  更多評論   

    • # re: 支付寶在線支付接口  閆泉 Posted @ 2013-08-06 13:44
      爆頭王在線支付  回復  更多評論   

    • # re: 支付寶在線支付接口[未登錄]  張強 Posted @ 2014-04-14 08:36
      請求申請一個支付寶支付接口  回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
     
    Copyright © 張秀蘭 Powered by: 博客園 模板提供:滬江博客
    主站蜘蛛池模板: 91手机看片国产永久免费| 粉色视频在线观看www免费| 久久久久国产成人精品亚洲午夜| 免费a级毛片视频| 亚洲无线码在线一区观看| 内射干少妇亚洲69XXX| 亚洲国产成人久久三区| 亚洲中文无码永久免| 国产亚洲精品国产福利在线观看 | 久久亚洲日韩精品一区二区三区 | 久久国产乱子精品免费女| www.免费在线观看| 免费人成视频x8x8入口| 成年大片免费视频播放一级| 国产高清不卡免费视频| 国产精品jizz在线观看免费| 精品亚洲永久免费精品| 亚洲男同gay片| 人妻丰满熟妇无码区免费| 国产在线观看www鲁啊鲁免费| 国产亚洲精品成人久久网站| 中文字幕亚洲图片| 精品一区二区三区无码免费直播| 免费在线看v网址| 午夜亚洲www湿好大| 亚洲国产欧美国产综合一区| 最近中文字幕mv免费高清视频8| 亚洲色婷婷综合开心网| 亚洲色丰满少妇高潮18p| 成人亚洲网站www在线观看| 亚洲最大的成人网站| 五月天婷亚洲天综合网精品偷| 日韩免费高清播放器| 一本色道久久88综合亚洲精品高清| 久久WWW免费人成—看片| 免费va在线观看| 无码人妻一区二区三区免费n鬼沢 无码人妻一区二区三区免费看 | 美国毛片亚洲社区在线观看| 在线看片免费不卡人成视频| 久久精品国产亚洲AV高清热| 日韩在线免费看网站|