下载手机网站支付SDK&Demo,下载地址:https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.ggALEe&treeId=203&articleId=105910&docType=1,把稳下载JAVA版,该项目是参考项目demo,运行环境须要支持jdk1.5及以上。
下载完成后解压并将项目导入eclipse中,即可。

须要公司注册支付宝,供应互助者身份ID和安全校验码KEY此为条件,否则就没有必要连续往下看了。

支付宝需利用的Jar包如下:

jsp实现支付宝即时到账Java中集成付出宝第三方即时到账接口 AJAX

alipay-sdk-java20170307171631-source.jar

alipay-sdk-java20170307171631.jar

commons-logging-1.1.1-sources.jar

commons-logging-1.1.1.jar

如果存在logging相应jar包,就不用将其放入lib目录下。

alipay 的几个内核功能文件,详细如下:

AlipayConfig.java

package com.alipay.config;

public class AlipayConfig {

// 商户appid

public static String APPID = \"大众\"大众;

// 私钥 pkcs8格式的

public static String RSA_PRIVATE_KEY = \"大众\公众;

// 做事器异步关照页面路径 需http://或者https://格式的完全路径,不能加?id=123这类自定义参数,必须外网可以正常访问

public static String notify_url = \"大众http://商户网关地址/alipay.trade.wap.pay-JAVA-UTF-8/notify_url.jsp\"大众;

// 页面跳转同步关照页面路径 需http://或者https://格式的完全路径,不能加?id=123这类自定义参数,

//必须外网可以正常访问 商户可以自定义同步跳转地址

public static String return_url = \公众http://商户网关地址/alipay.trade.wap.pay-JAVA-UTF-8/return_url.jsp\"大众;

// 要求网关地址

public static String URL = \公众https://openapi.alipay.com/gateway.do\"大众;

// 编码

public static String CHARSET = \公众UTF-8\公众;

// 返回格式

public static String FORMAT = \"大众json\公众;

// 支付宝公钥

public static String ALIPAY_PUBLIC_KEY = \公众MIIBIjANBgkqhkiG9w0BAQEFAA

OCAQ8AMIIBCgKCAQEAjrEVFMOSiNJXaRNKicQuQdsREraftDA9Tua3WNZwcpeXeh8Wrt+V9JilLqSa7N7sV

qwpvv8zWChgXhX/A96hEg97Oxe6GKUmzaZRNh0cZZ88vpkn5tlgL4mH/dhSr3Ip00kvM4rHq9PwuT4k7z1Dp

ZAf1eghK8Q5BgxL88d0X07m9X96Ijd0yMkXArzD7jg+noqfbztEKoH3kP

MRJC2w4ByVdweWUT2PwrlATpZZtYLmtDvUKG/sOkNAIKEMg3Rut1oKWpjyYanzDgS7Cg3awr1KPTl9rHCazk

15aNYowmYtVabKwbGVToCAGK+qQ1gT3ELhkGnf3+h53fukNqRH+wIDAQAB\"大众;

// 日志记录目录

public static String log_path = \"大众/log\"大众;

// RSA2

public static String SIGNTYPE = \公众RSA2\"大众;

}

notify_url.jsp

<%

//获取支付宝POST过来反馈信息

Map params = new HashMap();

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] + \"大众,\公众;

}

//乱码办理,这段代码在涌现乱码时利用。
如果mysign和sign不相等也可以利用这段代码转化

//valueStr = new String(valueStr.getBytes(\"大众ISO-8859-1\公众), \"大众gbk\"大众);

params.put(name, valueStr);

}

//获取支付宝的关照返回参数,可参考技能文档中页面跳转同步关照参数列表(以下仅供参考)//

//商户订单号

String out_trade_no = new String(request.getParameter(\公众out_trade_no\"大众).getBytes(\"大众ISO-8859-1\公众),\"大众UTF-8\公众);

//支付宝交易号

String trade_no = new String(request.getParameter(\公众trade_no\公众).getBytes(\"大众ISO-8859-1\公众),\公众UTF-8\"大众);

//交易状态

String trade_status = new String(request.getParameter(\"大众trade_status\"大众).getBytes(\"大众ISO-8859-1\公众),\"大众UTF-8\"大众);

//获取支付宝的关照返回参数,可参考技能文档中页面跳转同步关照参数列表(以上仅供参考)//

//打算得出关照验证结果

//boolean AlipaySignature.rsaCheckV1(Map params, String publicKey, String charset, String sign_type)

boolean verify_result = AlipaySignature.rsaCheckV1(params, AlipayConfig.ALIPAY_PUBLIC_KEY, AlipayConfig.CHARSET, \公众RSA2\"大众);

if(verify_result){//验证成功

//////////////////////////////////////////////////////////////////////////////////////////

//请在这里加上商户的业务逻辑程序代码

//——请根据您的业务逻辑来编写程序(以下代码仅作参考)——

if(trade_status.equals(\"大众TRADE_FINISHED\公众)){

//判断该笔订单是否在商户网站中已经做过处理

//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并实行商户的业务程序

//请务必判断要求时的total_fee、seller_id与关照时获取的total_fee、seller_id为同等的

//如果有做过处理,不实行商户的业务程序

//把稳:

//如果签约的是可退款协议,退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态关照

//如果没有签约可退款协议,那么付款完成后,支付宝系统发送该交易状态关照。

} else if (trade_status.equals(\"大众TRADE_SUCCESS\"大众)){

//判断该笔订单是否在商户网站中已经做过处理

//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并实行商户的业务程序

//请务必判断要求时的total_fee、seller_id与关照时获取的total_fee、seller_id为同等的

//如果有做过处理,不实行商户的业务程序

//把稳:

//如果签约的是可退款协议,那么付款完成后,支付宝系统发送该交易状态关照。

}

//——请根据您的业务逻辑来编写程序(以上代码仅作参考)——

out.clear();

out.println(\"大众success\公众);//请不要修正或删除

//////////////////////////////////////////////////////////////////////////////////////////

}else{//验证失落败

out.println(\"大众fail\公众);

}

%>

return_url.jsp

<%@page import=\公众com.alipay.api.internal.util.AlipaySignature\公众>

pay.jsp

支付宝手机网站支付接口 支付宝手机网站支付接口快速通道(接口名:alipay.trade.wap.pay) 商户订单号: 订单名称: 付款金额: 商品描述: 确 认 如果您点击“确认”按钮,即表示您赞许该次的实行操作。

支付宝版权所有 2015-2018 ALIPAY.COM

配置支付宝相应参数信息,详细如下:

// 商户appid

public static String APPID = \公众\公众;

// 私钥 pkcs8格式的

public static String RSA_PRIVATE_KEY = \公众\"大众;

// 做事器异步关照页面路径 需http://或者https://格式的完全路径,不能加?id=123这类自定义参数,必须外网可以正常访问

public static String notify_url = \"大众http://商户网关地址/alipay.trade.wap.pay-JAVA-UTF-8/notify_url.jsp\"大众;

// 页面跳转同步关照页面路径 需http://或者https://格式的完全路径,不能加?id=123这类自定义参数,必须外网可以正常访问 商户可以自定义同步跳转地址

public static String return_url = \"大众http://商户网关地址/alipay.trade.wap.pay-JAVA-UTF-8/return_url.jsp\公众;

// 要求网关地址

public static String URL = \公众https://openapi.alipay.com/gateway.do\"大众;

// 编码

public static String CHARSET = \"大众UTF-8\"大众;

// 返回格式

public static String FORMAT = \公众json\公众;

// 支付宝公钥

public static String ALIPAY_PUBLIC_KEY = \"大众MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjrEVFMOSiNJXaRNKicQuQdsREraftDA9Tua3WNZwcpeXeh8Wrt+V9JilLqSa7N7sVqwpvv8zWChgXhX/A96hEg97Oxe6GKUmzaZRNh0cZZ88vpkn5tlgL4mH/dhSr3Ip00kvM4rHq9PwuT4k7z1DpZAf1eghK8Q5BgxL88d0X07m9X96Ijd0yMkXArzD7jg+noqfbztEKoH3kPMRJC2w4ByVdweWUT2PwrlATpZZtYLmtDvUKG/sOkNAIKEMg3Rut1oKWpjyYanzDgS7Cg3awr1KPTl9rHCazk15aNYowmYtVabKwbGVToCAGK+qQ1gT3ELhkGnf3+h53fukNqRH+wIDAQAB\"大众;

// 日志记录目录

public static String log_path = \公众/log\公众;

// RSA2

public static String SIGNTYPE = \"大众RSA2\"大众;

将商户appid、私钥、notify_url、return_url、支付宝公钥等配置信息填写精确。

配置完毕后启动项目,访问http://localhost:8081/alipay地址,选择手机网站2.0支付(接口名:alipay.trade.wap.pay)链接,详细如图:

即时到账

支付