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
上一篇:
uniapp开发微信小程序-2.页面制作
下一篇:
个人微信号API接口,微信机器人
