JAVA全系列 教程
3762个小节阅读:7092.1k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
<!--引入支付宝相关的jar包-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>3.3.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/alipay-sdk-java-3.3.0.jar</systemPath>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>alipay-trade-sdk-java</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/alipay-trade-sdk-1.0.jar</systemPath>
</dependency>
ximport com.alipay.api.response.AlipayTradePrecreateResponse;
import com.alipay.demo.trade.config.Configs;
import com.alipay.demo.trade.model.builder.AlipayTradePrecreateRequestBuilder;
import com.alipay.demo.trade.model.builder.AlipayTradeRefundRequestBuilder;
import com.alipay.demo.trade.model.result.AlipayF2FPrecreateResult;
import com.alipay.demo.trade.model.result.AlipayF2FRefundResult;
import com.alipay.demo.trade.service.AlipayTradeService;
import com.alipay.demo.trade.service.impl.AlipayTradeServiceImpl;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.util.HashMap;
import java.util.Map;
/**
* @Author:
* 支付类
*/
public class PayService {
//输出日志
static Log log = LogFactory.getLog("trade_precreate");
//支付定当关付的对象
static AlipayTradeService tradeService;
//初始化对象
static {
// 一定要在创建AlipayTradeService之前设置参数
Configs.init("zfbinfo.properties");
tradeService = new AlipayTradeServiceImpl.ClientBuilder().build();
}
// 商户操作员编号,添加此参数可以为商户操作员做销售统计
static String operatorId = "test_operator_id";
// (必填) 商户门店编号,通过门店号和商家后台可以配置精准到门店的折扣信息,详询支付宝技术支持
static String storeId = "test_store_id";
// 支付超时,定义为120分钟
static String timeoutExpress = "120m";
/**
* 支付的方法
* @param outTradeNo (必填) 商户网站订单系统中唯一订单号,64个字符以内,只能包含字母、数字、下划线, 需保证商户系统端不能重复,建议通过数据库sequence生成,
* @param subject (必填) 订单标题,粗略描述用户的支付目的。如“喜士多(浦东店)消费”
* @param totalAmount (必填) 订单总金额,单位为元,不能超过1亿元
* @param undiscountableAmount (可选) 订单不可打折金额,可以配合商家平台配置折扣活动,如果酒水不参与打折,则将对应金额填写至此字段
* @param body 订单描述,可以对交易或商品进行一个详细地描述,比如填写"购买商品2件共15.00元"
* @param notifyUrl /支付宝服务器主动通知商户服务器里指定的页面http路径,根据需要设置
* @return
*/
public static Map<String,Object> pay(String outTradeNo,
String subject,
String totalAmount,
String undiscountableAmount,
String body,
String notifyUrl
){
System.out.println(notifyUrl);
AlipayTradePrecreateRequestBuilder builder =new AlipayTradePrecreateRequestBuilder()
.setSubject(subject)
.setTotalAmount(totalAmount)
.setOutTradeNo(outTradeNo)
.setUndiscountableAmount(undiscountableAmount)
.setBody(body)
.setOperatorId(operatorId)
.setStoreId(storeId)
.setTimeoutExpress(timeoutExpress)
.setNotifyUrl(notifyUrl);
// .setNotifyUrl("http://www.test-notify-url.com");//支付宝服务器主动通知商户服务器里指定的页面http路径,根据需要设置
//发起支付
AlipayF2FPrecreateResult result = tradeService.tradePrecreate(builder);
Map<String,Object> map=new HashMap<>();
String msg;
Integer code;
switch (result.getTradeStatus()) {
case SUCCESS:
log.info("支付宝预下单成功: )");
AlipayTradePrecreateResponse res = result.getResponse();
//得到支付码,本质就是一个URL
String qrCode=res.getQrCode();
map.put("qrCode",qrCode);
msg="下单成功";
code=200;
break;
case FAILED:
log.error("支付宝预下单失败!!!");
msg="下单失败";
code=500;
break;
case UNKNOWN:
log.error("系统异常,预下单状态未知!!!");
msg="系统异常";
code=404;
break;
default:
log.error("不支持的交易状态,交易返回异常!!!");
msg="不支持的交易状态";
code=404;
break;
}
map.put("msg",msg);
map.put("code",code);
return map;
}
}
xxxxxxxxxx
import java.util.Map;
/**
* @Author:
*/
public class TestPay {
public static void main(String[] args) {
String outTradeNo="OD123124124ABCDE94";
String subject="SXT-医疗管理系统支付平台";
String totalAmount="100";
String undiscountableAmount=null;
String body="买药用的";
String notifyUrl="http://45314rh250.qicp.vip/pay/callback/"+outTradeNo;
Map<String, Object> pay = PayService.pay(outTradeNo, subject, totalAmount, undiscountableAmount, body, notifyUrl);
System.out.println(pay);
}
}
xxxxxxxxxx
http://45314rh250.qicp.vip/pay/callback/OD123124124ABCDE94
16:21:48.372 [main] INFO com.alipay.demo.trade.service.impl.AlipayTradeServiceImpl - trade.precreate bizContent:{"out_trade_no":"OD123124124ABCDE94","total_amount":"100","subject":"SXT-医疗管理系统支付平台","body":"买药用的","operator_id":"test_operator_id","store_id":"test_store_id","timeout_express":"120m"}
16:21:48.925 [main] DEBUG sdk.biz.err - 2030-02-13 16:21:48^_^https://openapi.alipaydev.com/gateway.do?alipay_sdk=alipay-sdk-java-3.3.0&app_id=2021000118647783&biz_content=%7B%22out_trade_no%22%3A%22OD123124124ABCDE94%22%2C%22total_amount%22%3A%22100%22%2C%22subject%22%3A%22SXT-%E5%8C%BB%E7%96%97%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F%E6%94%AF%E4%BB%98%E5%B9%B3%E5%8F%B0%22%2C%22body%22%3A%22%E4%B9%B0%E8%8D%AF%E7%94%A8%E7%9A%84%22%2C%22operator_id%22%3A%22test_operator_id%22%2C%22store_id%22%3A%22test_store_id%22%2C%22timeout_express%22%3A%22120m%22%7D&charset=utf-8&format=json&method=alipay.trade.precreate¬ify_url=http%3A%2F%2F45314rh250.qicp.vip%2Fpay%2Fcallback%2FOD123124124ABCDE94&sign=PGusujk2v%2F3Qy4dPwTJldcjJ8AE30VWpHlvFdEPPHsrWlkWD65f7fkAe8cxdxGYUShwatdEIe9NUhJixAUfZ4G3h30fpn8nAjtxCSRSG%2B51C3MLQDM%2FMeCf1Gb3P6%2Fr11VFBu8vYTs1kjaTl1XAiFCCSRdseD1A3AzUdSvLcJxMPGAzYxICfqEVQjnqswqGN5%2FQaOjvSm3GTCSBbAt9rxA9t6%2Bq4JABZjFX4lurHeocnSBTRAbRQb%2FtD%2FpErZAR2eUm%2B8FEeLg2l0U6kBNZjvPZmeYs%2FyIXllCoeq3bhhNjPTrANBZoG3ERDOomRMVC95ZsCrpBmBPJrOr4VnbmAtQ%3D%3D&sign_type=RSA2×tamp=2022-02-13+16%3A21%3A48&version=1.0
16:21:50.223 [main] INFO sdk.biz.err - Summary^_^10000^_^null^_^ProtocalMustParams:charset=utf-8&method=alipay.trade.precreate&sign=PGusujk2v/3Qy4dPwTJldcjJ8AE30VWpHlvFdEPPHsrWlkWD65f7fkAe8cxdxGYUShwatdEIe9NUhJixAUfZ4G3h30fpn8nAjtxCSRSG+51C3MLQDM/MeCf1Gb3P6/r11VFBu8vYTs1kjaTl1XAiFCCSRdseD1A3AzUdSvLcJxMPGAzYxICfqEVQjnqswqGN5/QaOjvSm3GTCSBbAt9rxA9t6+q4JABZjFX4lurHeocnSBTRAbRQb/tD/pErZAR2eUm+8FEeLg2l0U6kBNZjvPZmeYs/yIXllCoeq3bhhNjPTrANBZoG3ERDOomRMVC95ZsCrpBmBPJrOr4VnbmAtQ==¬ify_url=http://45314rh250.qicp.vip/pay/callback/OD123124124ABCDE94&version=1.0&app_id=2021000118647783&sign_type=RSA2×tamp=2022-02-13 16:21:48^_^ProtocalOptParams:alipay_sdk=alipay-sdk-java-3.3.0&format=json^_^ApplicationParams:biz_content={"out_trade_no":"OD123124124ABCDE94","total_amount":"100","subject":"SXT-医疗管理系统支付平台","body":"买药用的","operator_id":"test_operator_id","store_id":"test_store_id","timeout_express":"120m"}^_^553ms,1282ms,16ms
16:21:50.223 [main] INFO com.alipay.demo.trade.service.impl.AlipayTradeServiceImpl - {"alipay_trade_precreate_response":{"code":"10000","msg":"Success","out_trade_no":"OD123124124ABCDE94","qr_code":"https:\/\/qr.alipay.com\/bax04481md03pfwbl1ay00ad"},"sign":"bRlOc5cL2psx0MeNwLVwBkMwTlvQA79UjNNV76yim3ImkxM643DiXU5Q0D04wfYoNVUvELWpJ9NqNo0bztr0gT1t8nafOkqnOwSN0525DjT8gWwEldyyqsCjlCTpgDh66LGK3/4JbuYXysb5bhKQHzAVB5Ux8TxK2sbo1tpSYjCRlBc5x6GzSFQ2f8H+cPQgjcikDOILS5ZGUG6dZZ3gGHraswLmlpAftkl8j6yB4i/o/lnhBTUnOerAnTubSTutH+ARp0iiEMyG4EjVfp0bQso7Ll+EY+bbvqSXIXmL5Q5cRWKPZO21oGxPSSL+M16AFVShgvulFkU5sMyFB7/faA=="}
16:21:50.223 [main] INFO trade_precreate - 支付宝预下单成功: )
{msg=下单成功, code=200, qrCode=https://qr.alipay.com/bax04481md03pfwbl1ay00ad}