发布时间:2025-12-09 15:54:17 浏览次数:6
为商家提供代理收款服务
支付订单,并不是用户提交的商品订单,而是商户向微信支付平台申请的支付链接
wxpay的maven依赖生成
<!-- https://mvnrepository.com/artifact/com.github.wxpay/wxpay-sdk --><dependency> <groupId>com.github.wxpay</groupId> <artifactId>wxpay-sdk</artifactId> <version>0.0.3</version></dependency>创建一类,实现WxPayConfig接口
重写三分方法,分别设置AppID\商户ID\商户密钥
必须设置的配置参数:
// 必填选项 用于设置支付完成时的回调方法接口 data.put("notify_url","/pay/success"); package com.qfedu.fmmall.controller;import com.github.wxpay.sdk.WXPay;import com.qfedu.fmmall.config.MyPayConfig;import com.qfedu.fmmall.entity.Orders;import com.qfedu.fmmall.service.OrderService;import com.qfedu.fmmall.vo.ResultStatus;import com.qfedu.fmmall.vo.ResultVO;import io.swagger.annotations.Api;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;import java.sql.SQLException;import java.util.HashMap;import java.util.List;import java.util.Map;@RestController@CrossOrigin@RequestMapping("/order")@Api(value = "提供订单相关的接口",tags = "订单管理")public class OrderController { @Autowired private OrderService orderService; @PostMapping("/add/{cids}") public ResultVO add(@PathVariable("cids") List<Integer> cids, @RequestBody Orders orders){ ResultVO resultVO=null;// 测试用的OrderId try { Map<String, String> orderInfo = orderService.addOrder(cids, orders); String orderId=orderInfo.get("orderId");// 订单快照创建成功,申请支付链接 HashMap<String,String> data=new HashMap<>();// 设置当前订单信息 data.put("body",orderInfo.get("productNames")); //商品描述 data.put("out_trade_no",orderId);//使用当前用户订单编号作为当前支付交易的交易编号 data.put("fee_type","CNY"); //支付币种 data.put("total_fee", orders.getActualAmount()+""); //支付金额 data.put("trade_type","NATIVE");//交易类型// 必填选项 用于设置支付完成时的回调方法接口 data.put("notify_url","/pay/success"); WXPay wxPay=new WXPay(new MyPayConfig()); Map<String, String> resp = wxPay.unifiedOrder(data);// 把微信支付平台生成的链接获取到 orderInfo.put("payUrl",resp.get("code_url")); resultVO=new ResultVO(ResultStatus.OK,"提交订单成功!",orderInfo); System.out.println(resp);// code_url -> weixin://wxpay/bizpayurl?pr=Iv5Fsq6zz } catch (SQLException e) { resultVO= new ResultVO(ResultStatus.NO,"下单失败",null); } catch (Exception e) { e.printStackTrace(); } return resultVO; }}