mirror of
https://gitee.com/egzosn/pay-java-parent.git
synced 2026-05-08 20:16:05 +08:00
微信支付简单例子
支付配置
UnionPayConfigStorage unionPayConfigStorage = new UnionPayConfigStorage();
unionPayConfigStorage.setMerId("商户id");
unionPayConfigStorage.setKeyPublic("公钥,验签证书链格式: 中级证书路径;根证书路径");
unionPayConfigStorage.setKeyPrivate("私钥, 私钥证书格式: 私钥证书路径;私钥证书对应的密码");
unionPayConfigStorage.setNotifyUrl("异步回调地址");
unionPayConfigStorage.setReturnUrl("同步回调地址");
unionPayConfigStorage.setSignType("RSA2");
unionPayConfigStorage.setInputCharset("UTF-8");
//是否为测试账号,沙箱环境
unionPayConfigStorage.setTest(true);
网络请求配置
HttpConfigStorage httpConfigStorage = new HttpConfigStorage();
/* 网路代理配置 根据需求进行设置**/
//http代理地址
httpConfigStorage.setHttpProxyHost("192.168.1.69");
//代理端口
httpConfigStorage.setHttpProxyPort(3308);
//代理用户名
httpConfigStorage.setHttpProxyUsername("user");
//代理密码
httpConfigStorage.setHttpProxyPassword("password");
/* /网路代理配置 根据需求进行设置**/
/* 网络请求ssl证书 根据需求进行设置**/
//设置ssl证书路径
httpConfigStorage.setKeystorePath("证书绝对路径");
//设置ssl证书对应的密码
httpConfigStorage.setStorePassword("证书对应的密码");
/* /网络请求ssl证书**/
创建支付服务
UnionPayService service = new UnionPayService(unionPayConfigStorage);
创建支付订单信息
PayOrder payOrder = new PayOrder("订单title", "摘要", new BigDecimal(0.01) , new SimpleDateFormat("yyyyMMddHHmmss").format(System.currentTimeMillis()));
主扫申请二维码交易
payOrder.setTransactionType(UnionTransactionType.APPLY_QR_CODE);
BufferedImage image = service.genQrPay(payOrder);
消费(被扫场景)待定
payOrder.setTransactionType(UnionTransactionType.CONSUME);
payOrder.setAuthCode("C2B码(条码号),1-20位数字");
Map<String, Object> params = service.microPay(payOrder);
消费撤销
Map<String, Object> params = service.unionRefundOrConsumeUndo("原交易查询流水号", "订单号", new BigDecimal("退款金额" ),UnionTransactionType.CONSUME_UNDO);
交易状态查询交易:只有同步应答
payOrder.setTransactionType(UnionTransactionType.QUERY);
Map<String, Object> params = service.query(null,"商户单号");
退货交易:后台资金类交易,有同步应答和后台通知应答
payOrder.setTransactionType(UnionTransactionType.REFUND);
Map<String, Object> params = service.refund("原交易查询流水号", "订单号", null,new BigDecimal("退款金额" ));
文件传输类接口:后台获取对账文件交易,只有同步应答
String fileConten = service.downloadbill(new Date(),"格式为MMDD");