Java实现支付宝支付
1.从支付宝开放平台下载官方Demo
https://opendocs.alipay.com/open/270/106291/
2.将下载的Demo project导入到开发工具中。项目结构如下
*其中lib中为阿里官方提供的jar
3.由于正式环境需要营业执照去注册申请。这学习测试中可以使用沙盒环境
https://openhome.alipay.com/platform/appDaily.htm?tab=info
单击“RSA2(SHA256)密钥(推荐)”设置密钥。
单击之前需要先下载签名验证工具
https://opensupport.alipay.com/support/knowledge/20069/201602111105?ant_source=zsearch
下载完成单击安装
单击生成秘钥,生成如下图内容
回到支付宝开放平台,单击“RSA2(SHA256)密钥(推荐)”设置密钥。将工具中生成的公钥复制到如下界面
单击出现如下面板则设置成功
4.修改代码中的配置【AlipayConfig.java】
step1:app_id =开发平台的APPID
step2:merchant_private_key=支付宝开发平台开发助手中的应用私钥
step3.alipay_public_key=支付宝公钥
step4.
//服务器异步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
public static String notify_url = "http://工程公网访问地址/alipay.trade.page.pay-JAVA-UTF-8/notify_url.jsp";
//页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
public static String return_url = "http://工程公网访问地址/alipay.trade.page.pay-JAVA-UTF-8/return_url.jsp";
step5.
// 支付宝网关
public static String gatewayUrl = "https://openapi.alipay.com/gateway.do";
完整代码如下:
package com.alipay.config;
import java.io.FileWriter;
import java.io.IOException;
/* *
*类名:AlipayConfig
*功能:基础配置类
*详细:设置帐户有关信息及返回路径
*修改日期:2017-04-05
*说明:
*以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。
*该代码仅供学习和研究支付宝接口使用,只是提供一个参考。
*/
public class AlipayConfig {
//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
// 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号
public static String app_id = "2021000116699951";
// 商户私钥,您的PKCS8格式RSA2私钥
public static String merchant_private_key = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCFaeSMTu8IeIGMsPr5dAGYznP8zdD2nWSp79LdIcPW678Sts2BIL2vugbRb4npPcjC0creox7R7pvO7TqluzLugbQEQ4m2L9t6vdFKUITRTOXnpEih5blDcYtN+LQiZAYsSUbrgJJBkQP8sjTtAbZIl6TU3m5Hbka24HM0TNUecc8kWrTNFaKb1b3EMY4TQnkhWfNTNGJ31gSFVmGVdQUtZMC2lEVGKX27GSGkwrFij7uJ+qUiImhQ3jnrNOKK6pPdGPFONjqkMr3vy2Qs4j6AWSOXuaI1xBFd9t89HJ03WxkCGQ12OGvlfM/zYebQhDxFkx8VpLlj35WTgKOopXBBAgMBAAECggEAFkyOwMzosxfBP4zNRiiXo7zOMjEMfkvsaWMGcaOVIjUhKLWZP74DNn33acYk3PFQvw9lwzSskBY7wKhyJwVVC/xt5FCNkgAJxUg41R0ENh+ORdt1sGm/P4CY8h1hrmXdikVtLyu8Rm1Ap1n58qtYlmWSTWooMJRECYkWeGVnMcFCPBo101B10O8WOuL1cTbc2E1dwLf5G6WAf+WhBSrGaT5lx2112mkvwU7oDpbYyoV/UlG1s5on5XY0337NCrtkubKZAl3BaMBKrWo9DZjvwWcJG8bB+Z3KmopOVLgKSUhuRusKqL9a5NIMHyooj3B7TtoEmd73UaAlo0jRi92VgQKBgQC9S7vn8kgdG5/EvCNV/a9n22K0mTi+rNG+dwQFrgoH1tKa2M/u5gZOBlGheVZ/FJwg2K0yMlotiYE4yK0fun8ugAuNUKg0Tx1qQoUlC3rXpRSW/1/I39izf9F89SPOmhrZpjGZPmMGpFG9+hrA720D5j+qXnArdUmIX/uqFClzeQKBgQC0bQ8ezXmYWgCdO6E2KfJG/4W1xgxsgeZPLzlstkxKadsiIY8dxnnLG6/1RHRkAT402TH2/u32FBwG2CBbhxKlyzCR6gvDVz2Jk3O27mjpoTJy0mgEbAiHIdo0Q53HbpY23gv38F3LPThSlo33hYwx/ARuCMc/EPQEnTyZvsIpCQKBgBHs4Ahg2w9WlFSO9FGqSjftgHVVpRf5SYtdvdXD21NOtnbPXTFkOuiclJJT6Srziq1Zl10Pg5aYVNJJvoson+6JVY62OpdpfoGXdwBBDArrqP17hViCSgUFb5MDq7ZexXgi0sOOMtZoLQ1uZ6Yphgs+fHznoHudCa+OV0iNzDcRAoGAFo4/wqkLV3mA9CcdO0k5KZkOHTBaI0KGCUYtFqMfnHnpVDX/z0gdt7+JWs8pAcuJ/E9eyLMMCqRu8IgaW3biZOmm88bfm5cPcWCGqcraQMLPLL2TFWJwGnyn67q8Qc9YZhmSQ3fAMgVAQkriCpyeby1DXIIqbn7vEpiZl9raKQkCgYEAsJO6YP0kAFoFTvWse9B+jynGMWAAyju7de7/7r+UPVajDsUo4huhucWQhZKLyActwrvnkxKjnjcMgV3lSS38Ogopb/zGBulrpAASIJCE+09Rf4AAV1AaatJ3AZdS+RS5PDifj6dnjIVaI9Cckgdvx52s8FpuSDhLx3I1GjcyZVc=";
// 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
public static String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8nR3nbY6xlPCw0+2xAbBHzLZdjX/9qPLJWANubjYvpn/zXVwIbRIueQh11UWmY37gtaMBbqQTRIvYnLxTwmSccXvYwpQ1WvmIwD8xIGQqa+wtCTKR9aXzQ6nIG3kkM6LomSkreCm5cxL9dbzXFfsZvmP58icGDQn3WBJOyQOeHZF1CXnf9Rg9n3dKmw9cb8Zdzg6EvCSXJEIW1Q+8VyzxI8crCre29ScHpOTtOMVeEB5LSq+Z2V7Llye9p730JDmjS07+vIy61vlJhXhNRM7fYpS+y3FF10BLis1PNe8wwkWWRXJ5YtNg8PRMBcvchJT4CAN1rcD9QUhStDs7tV16wIDAQAB";
// 服务器异步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
public static String notify_url = "http://47.242.43.143/alipay.trade.page.pay-JAVA-UTF-8/notify_url.jsp";
// 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
public static String return_url = "http://47.242.43.143/alipay.trade.page.pay-JAVA-UTF-8/return_url.jsp";
// 签名方式
public static String sign_type = "RSA2";
// 字符编码格式
public static String charset = "utf-8";
// 支付宝网关
public static String gatewayUrl = "https://openapi.alipaydev.com/gateway.do";
// 支付宝网关
public static String log_path = "C:\\";
//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
/**
* 写日志,方便测试(看网站需求,也可以改成把记录存入数据库)
* @param sWord 要写入日志里的文本内容
*/
public static void logResult(String sWord) {
FileWriter writer = null;
try {
writer = new FileWriter(log_path + "alipay_log_" + System.currentTimeMillis()+".txt");
writer.write(sWord);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
到这里基本已经配置完成。
5.接下来需要下载沙盒版支付宝app测试
下载安装完成后使用下面指定账户登录
部署测试界面如下图
这就是一个简单的demo配置。