1.使用支付宝注册登录支付宝开放平台 转送门
2.阿里支付需要使用的maven依赖
<!-- 支付需要使用 依赖-->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</dependency>
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
</dependency>
<dependency>
<groupId>com.alipay</groupId>
<artifactId>alipay-sdk-java</artifactId>
</dependency>
<dependency>
<groupId>com.alipay</groupId>
<artifactId>alipay-trade-sdk</artifactId>
</dependency>
3.配置支付参数
**这里要注意支付跳转路径,发布项目时,外网可以访问到,当前为测试版本
// 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号
public static String APP_ID = "阿里开放平台获取";
// 商户私钥,您的PKCS8格式RSA2私钥,这些就是我们刚才设置的
public static String MERCHANT_PRIVATE_KEY = "阿里开发平台获取";
// 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。,这些就是我们刚才设置的
public static String ALIPAY_PUBLIC_KEY = "注册阿里开发平台获取";
//异步通知,再这里我们设计自己的后台代码
public static String notify_url = "http://localhost:8080/alipay.trade.page.pay-JAVA-UTF-8/notify_url.jsp";
// 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
public static String return_url = "http://localhost:8091/bill/costInvert";
// 签名方式
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:\\";
参数获取位置:链接地址
4.支付使用参数配置
@Override
public String webPagePay(String outTradeNo, Integer totalAmount, String subject) throws Exception {
AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
/** 同步通知,支付完成后,支付成功页面*/
alipayRequest.setReturnUrl(AlipayConfig.return_url);
/** 异步通知,支付完成后,需要进行的异步处理*/
alipayRequest.setNotifyUrl(AlipayConfig.notify_url);
alipayRequest.setBizContent("{\"out_trade_no\":\""+ outTradeNo +"\","
+ "\"total_amount\":\""+ totalAmount +"\","
+ "\"subject\":\""+ subject +"\","
+ "\"body\":\"商品名称\","
+ "\"timeout_express\":\"90m\","
+ "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");
/**转换格式*/
String result = alipayClient.pageExecute(alipayRequest).getBody().replace('\"','\'').replace('\n',' ');
return result;
}
5.测试(提供专属的测试账号,包含个人和商户)
从开发者中心获取测试的账号,这里要注意,当前只是测试的账号,所以使用的也是支付宝提供的沙箱钱包,不能直接使用自己的支付宝进行测试