java微信支付v3系列——4.创建订单的封装及使用

目录

正文

使用方式也很简单,通过注入的方式获取到wxPayConfig和wxPayClient对象后,创建支付请求参数对象,调用刚刚编写的wxNativePay方法即可。

@Slf4j
@RestController
@RequestMapping("/api/v1/pay/test")
public class PayTestController {
          
   

	@Autowired
	private WxPayConfig wxPayConfig;
	
	@Autowired
	private CloseableHttpClient wxPayClient;
	
	@ApiOperation("1.支付测试接口")
	@GetMapping("/pay/test")
	public Map<String, String> getCheckNum() {
          
   
	    WeChatBasePayData payData = new WeChatBasePayData();
	    payData.setTitle("支付测试商品");
	    payData.setOrderId(IdWorker.getIdStr()); //测试时随机生成一个,代表订单号
	    payData.setPrice(new BigDecimal("0.01"));
	    payData.setNotify(WxNotifyType.REFUND_NOTIFY);
	
	    String path = WxPayCommon.wxNativePay(wxPayConfig, payData, wxPayClient);
	    Map<String, String> map = new HashMap();
	    map.put("path", path);
	    return map;
	}
}

返回数据实例:weixin://wxpay/bizpayurl?pr=BcL4yGozz

使用方式如下,相较于Native,改动的地方下方代码都标明了。

@Slf4j
@RestController
@RequestMapping("/api/v1/pay/test")
public class PayTestController {
          
   

	@Autowired
	private WxPayConfig wxPayConfig;
	
	@Autowired
	private CloseableHttpClient wxPayClient;    
	
	@ApiOperation("1.支付测试接口")
	@GetMapping("/pay/test")
	public Map<String, String> getCheckNum() {
          
   
	    WeChatBasePayData payData = new WeChatBasePayData();
	    payData.setTitle("支付测试商品");
	    payData.setOrderId(IdWorker.getIdStr()); //测试时随机生成一个
	    payData.setPrice(new BigDecimal("0.01"));
	    payData.setNotify(WxNotifyType.REFUND_NOTIFY);
	
	    // String path = WxPayCommon.wxNativePay(wxPayConfig, payData, wxPayClient);
	    // 每个账户所关联的openId都是不一样的,你也别拿我的试,需要看你们项目的环境
	    String path = WxPayCommon.wxJsApiPay(wxPayConfig, payData, "oS3tA4zspa1DYMK5zBYkZv9XMIqw", wxPayClient);
	    Map<String, String> map = new HashMap();
	    map.put("path", path);
	    return map;
	}
}

返回数据实例:wx041634439436321ff6c8e788ac69830000

客户端JSAPI调起支付,这个就不属于服务器端了,各位去自行查看吧

App支付,单从文档来看,请求参数和Native一样,返回的数据类似于JSAPI,但是我的权限没有开通,所以这里只是理论可行,等我未来开通了APP支付再来测试。

使用方式和Native一样,这里就不展示了,返回数据实例:wx261153585405162d4d02642eabe7000000

H5支付同理,把Native方法拷贝,改个地址即可,H5的返回参数是h5_url而不是code_url

经验分享 程序员 微信小程序 职场和发展