|
@@ -12,6 +12,8 @@ import com.example.util.RedisUtil;
|
|
|
import com.example.util.UUIDUtils;
|
|
|
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
|
|
|
import com.github.binarywang.wxpay.bean.notify.WxPayRefundNotifyResult;
|
|
|
+import com.github.binarywang.wxpay.bean.request.WxPayAuthcode2OpenidRequest;
|
|
|
+import com.github.binarywang.wxpay.bean.request.WxPayMicropayRequest;
|
|
|
import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest;
|
|
|
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
|
|
|
import com.github.binarywang.wxpay.bean.result.WxPayOrderQueryResult;
|
|
@@ -334,5 +336,117 @@ public class WechatH5PayController extends BaseController {
|
|
|
return responseSuccess(new ResultVO());
|
|
|
}
|
|
|
|
|
|
+ @PostMapping("/pay/native")
|
|
|
+ public ResponseBase payNative(@RequestBody WxPayFrom wxPayFrom, HttpServletRequest request) {
|
|
|
+// String orderId = wxPayFrom.getOrderId();
|
|
|
+// String openid = wxPayFrom.getOpenid();
|
|
|
+ String tradeType = wxPayFrom.getTradeType();
|
|
|
+
|
|
|
+ WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
|
|
|
+ //商品id
|
|
|
+ orderRequest.setProductId("001");
|
|
|
+ //随机字符串
|
|
|
+ String s = UUIDUtils.randomUUID();
|
|
|
+
|
|
|
+ orderRequest.setNonceStr(s);
|
|
|
+ //商品描述
|
|
|
+ String productName = "测试商品";
|
|
|
+ orderRequest.setBody(productName);
|
|
|
+ //商户订单号(支付编号)
|
|
|
+ GeneratorIdUtils generatorIdUtils = new GeneratorIdUtils();
|
|
|
+ String orderNum = generatorIdUtils.nextId();
|
|
|
+ log.info("OutTradeNo:" + orderNum);
|
|
|
+ //设置商户订单号
|
|
|
+ orderRequest.setOutTradeNo(orderNum);
|
|
|
+ //设置金额
|
|
|
+ //data.getTotalPrice();
|
|
|
+ BigDecimal money = new BigDecimal("1");
|
|
|
+ //元转成分
|
|
|
+ money = money.multiply(new BigDecimal(100));
|
|
|
+ int i = money.intValue();
|
|
|
+ if ("test".equals(tradeType)) {
|
|
|
+ //测试环境一分钱
|
|
|
+ orderRequest.setTotalFee(1);
|
|
|
+ } else {
|
|
|
+ orderRequest.setTotalFee(i);
|
|
|
+ }
|
|
|
+ //终端ip
|
|
|
+ String ipAddress = getIpAddress(request);
|
|
|
+ orderRequest.setSpbillCreateIp(ipAddress);
|
|
|
+ // 通知地址 支付成功后回调地址
|
|
|
+ log.info("wxpayCallbackUrl=================>{}", wxpayCallbackUrl);
|
|
|
+ orderRequest.setNotifyUrl(wxpayCallbackUrl);
|
|
|
+ //交易类型
|
|
|
+ orderRequest.setTradeType(WxPayConstants.TradeType.NATIVE);
|
|
|
+ Object unOrder = null;
|
|
|
+ try {
|
|
|
+ unOrder = wxPayService.createOrder(orderRequest);
|
|
|
+ } catch (WxPayException e) {
|
|
|
+ //e.printStackTrace();
|
|
|
+ log.error(e.getMessage());
|
|
|
+ //签名完成新增支付订单
|
|
|
+ return responseError(500, "微信支付失败");
|
|
|
+ }
|
|
|
+ //更新本地订单支付id
|
|
|
+ //orderClient.update(data);
|
|
|
+
|
|
|
+ //签名完成新增支付订单
|
|
|
+ return responseSuccess(new ResultVO(ResultEnum.SUCCESS, unOrder));
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/pay/authcode")
|
|
|
+ public ResponseBase payauthcode(@RequestBody WxPayFrom wxPayFrom, HttpServletRequest request) {
|
|
|
+ //测试支付
|
|
|
+ String tradeType = wxPayFrom.getTradeType();
|
|
|
+ //付款码
|
|
|
+ String authCode = wxPayFrom.getAuthCode();
|
|
|
+ WxPayMicropayRequest orderRequest = new WxPayMicropayRequest();
|
|
|
+ orderRequest.setAuthCode(authCode);
|
|
|
+ //随机字符串
|
|
|
+ String s = UUIDUtils.randomUUID();
|
|
|
+ orderRequest.setNonceStr(s);
|
|
|
+ //商品描述
|
|
|
+ orderRequest.setBody("测试商品!");
|
|
|
+ //商户订单号(支付编号)
|
|
|
+ GeneratorIdUtils generatorIdUtils = new GeneratorIdUtils();
|
|
|
+ String orderNum = generatorIdUtils.nextId();
|
|
|
+ log.info("OutTradeNo:" + orderNum);
|
|
|
+ //设置商户订单号
|
|
|
+ orderRequest.setOutTradeNo(orderNum);
|
|
|
+ //商户订单号(支付编号)
|
|
|
+ //设置金额
|
|
|
+ //data.getTotalPrice();
|
|
|
+ BigDecimal money = new BigDecimal("1");
|
|
|
+ //元转成分
|
|
|
+ money = money.multiply(new BigDecimal(100));
|
|
|
+ int i = money.intValue();
|
|
|
+ if ("test".equals(tradeType)) {
|
|
|
+ //测试环境一分钱
|
|
|
+ orderRequest.setTotalFee(1);
|
|
|
+ } else {
|
|
|
+ orderRequest.setTotalFee(i);
|
|
|
+ }
|
|
|
+ //终端ip
|
|
|
+ String ipAddress = getIpAddress(request);
|
|
|
+ orderRequest.setSpbillCreateIp(ipAddress);
|
|
|
+ // 通知地址 支付成功后回调地址
|
|
|
+ log.info("wxpayCallbackUrl=================>{}", wxpayCallbackUrl);
|
|
|
+ //交易类型
|
|
|
+ Object unOrder = null;
|
|
|
+ try {
|
|
|
+ unOrder = wxPayService.micropay(orderRequest);
|
|
|
+ } catch (WxPayException e) {
|
|
|
+ //e.printStackTrace();
|
|
|
+ log.error(e.getMessage());
|
|
|
+ //签名完成新增支付订单
|
|
|
+ return responseError(500, "微信支付失败");
|
|
|
+ }
|
|
|
+ //更新本地订单支付id
|
|
|
+ //orderClient.update(data);
|
|
|
+
|
|
|
+ //签名完成新增支付订单
|
|
|
+ return responseSuccess(new ResultVO(ResultEnum.SUCCESS, unOrder));
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|