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接口,微信机器人