package com.ruoyi.order.controller;
|
|
import com.wechat.pay.java.core.Config;
|
import com.wechat.pay.java.core.RSAAutoCertificateConfig;
|
import com.wechat.pay.java.core.exception.HttpException;
|
import com.wechat.pay.java.core.exception.MalformedMessageException;
|
import com.wechat.pay.java.core.exception.ServiceException;
|
import com.wechat.pay.java.service.partnerpayments.jsapi.JsapiService;
|
import com.wechat.pay.java.service.partnerpayments.jsapi.model.CloseOrderRequest;
|
import com.wechat.pay.java.service.partnerpayments.jsapi.model.PrepayRequest;
|
import com.wechat.pay.java.service.partnerpayments.jsapi.model.PrepayResponse;
|
import com.wechat.pay.java.service.partnerpayments.jsapi.model.QueryOrderByIdRequest;
|
import com.wechat.pay.java.service.partnerpayments.jsapi.model.QueryOrderByOutTradeNoRequest;
|
import com.wechat.pay.java.service.partnerpayments.jsapi.model.Transaction;
|
|
/** JsapiService使用示例 */
|
public class JsapiServiceExample {
|
|
/** 商户号 */
|
public static String merchantId = "190000****";
|
|
/** 商户API私钥路径 */
|
public static String privateKeyPath = "/Users/yourname/your/path/apiclient_key.pem";
|
|
/** 商户证书序列号 */
|
public static String merchantSerialNumber = "5157F09EFDC096DE15EBE81A47057A72********";
|
|
/** 商户APIV3密钥 */
|
public static String apiV3Key = "...";
|
|
public static JsapiService service;
|
|
public static void main(String[] args) {
|
// 初始化商户配置
|
Config config =
|
new RSAAutoCertificateConfig.Builder()
|
.merchantId(merchantId)
|
// 使用 com.wechat.pay.java.core.util 中的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
|
.privateKeyFromPath(privateKeyPath)
|
.merchantSerialNumber(merchantSerialNumber)
|
.apiV3Key(apiV3Key)
|
.build();
|
|
// 初始化服务
|
service = new JsapiService.Builder().config(config).build();
|
// ... 调用接口
|
try {
|
closeOrder();
|
} catch (HttpException e) { // 发送HTTP请求失败
|
// 调用e.getHttpRequest()获取请求打印日志或上报监控,更多方法见HttpException定义
|
} catch (ServiceException e) { // 服务返回状态小于200或大于等于300,例如500
|
// 调用e.getResponseBody()获取返回体打印日志或上报监控,更多方法见ServiceException定义
|
} catch (MalformedMessageException e) { // 服务返回成功,返回体类型不合法,或者解析返回体失败
|
// 调用e.getMessage()获取信息打印日志或上报监控,更多方法见MalformedMessageException定义
|
}
|
}
|
|
/** 关闭订单 */
|
public static void closeOrder() {
|
|
CloseOrderRequest request = new CloseOrderRequest();
|
// 调用request.setXxx(val)设置所需参数,具体参数可见Request定义
|
// 调用接口
|
service.closeOrder(request);
|
}
|
|
/** JSAPI支付下单 */
|
public static PrepayResponse prepay() {
|
PrepayRequest request = new PrepayRequest();
|
// 调用request.setXxx(val)设置所需参数,具体参数可见Request定义
|
// 调用接口
|
return service.prepay(request);
|
}
|
|
/** 微信支付订单号查询订单 */
|
public static Transaction queryOrderById() {
|
|
QueryOrderByIdRequest request = new QueryOrderByIdRequest();
|
request.setTransactionId("4208450740201411110007820472");
|
// 调用request.setXxx(val)设置所需参数,具体参数可见Request定义
|
// 调用接口
|
return service.queryOrderById(request);
|
}
|
|
/** 商户订单号查询订单 */
|
public static Transaction queryOrderByOutTradeNo() {
|
|
QueryOrderByOutTradeNoRequest request = new QueryOrderByOutTradeNoRequest();
|
// 调用request.setXxx(val)设置所需参数,具体参数可见Request定义
|
// 调用接口
|
return service.queryOrderByOutTradeNo(request);
|
}
|
}
|