package com.walker.pay.wechat; import com.walker.infrastructure.utils.DateUtils; import com.walker.infrastructure.utils.NumberGenerator; import com.walker.infrastructure.utils.StringUtils; import com.walker.pay.PayEngineProvider; import com.walker.pay.PayType; import com.walker.pay.exception.OrderException; import com.walker.pay.response.ScanOrderResponsePay; import com.walker.pay.support.DefaultOrder; import com.walker.pay.wechat.v2.AppOrderResponsePay; import com.walker.pay.wechat.v2.H5ResponsePay; import com.walker.pay.wechat.v2.WechatV2OrderCallback; import org.junit.Test; import org.springframework.web.client.RestTemplate; public class TestWechatPayV2 extends TestBase { // @Test public void testPayType(){ System.out.println("5 = " + PayType.valueOf("OfficialAccount")); } // @Test public void testH5PayOrder(){ RestTemplate restTemplate = this.getRestTemplate(); PayEngineProvider payEngineProvider = new WechatV2PayEngineProvider(restTemplate); payEngineProvider.setConfiguration(this.getConfiguration()); payEngineProvider.setOrderCallback(new WechatV2OrderCallback()); DefaultOrder order = new DefaultOrder(); order.setId(NumberGenerator.getLongSequenceNumber()); order.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); order.setPayType(PayType.H5); order.setPayDefinitionId("1"); order.setTotalMoney(1); order.setNotifyUrl("http://101.43.168.96:8082/admin/pay/notify/wx_v2/orderNotify"); order.setIp("127.0.0.1"); order.setNonce(StringUtils.generateRandomNumber(6)); order.setTitle("h5支付商品"); String attach = "order," + 9987654321L; order.setAttach(attach); order.setBuyerId("oIydh5wC4wpmHjkmdk0cvAT9spFM"); try { H5ResponsePay responseValue = (H5ResponsePay)payEngineProvider.generatePrepareOrder(order); System.out.println("返回APP调用结果: " + responseValue); } catch (OrderException e) { throw new RuntimeException(e); } } // @Test public void testRequestAppOrder(){ RestTemplate restTemplate = this.getRestTemplate(); PayEngineProvider payEngineProvider = new WechatV2PayEngineProvider(restTemplate); payEngineProvider.setConfiguration(this.getConfiguration()); DefaultOrder order = new DefaultOrder(); order.setId(NumberGenerator.getLongSequenceNumber()); order.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); order.setPayType(PayType.App); order.setPayDefinitionId("1"); order.setTotalMoney(1); order.setNotifyUrl("http://47.99.216.98:7003/pay/wx/notify.do"); order.setIp("127.0.0.1"); order.setNonce(StringUtils.generateRandomNumber(6)); order.setTitle("app支付商品"); order.setAttach("test"); try { AppOrderResponsePay responseValue = (AppOrderResponsePay)payEngineProvider.generatePrepareOrder(order); System.out.println("返回APP调用结果: " + responseValue); } catch (OrderException e) { throw new RuntimeException(e); } } // @Test public void testRequestScanOrder(){ // RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = this.getRestTemplate(); PayEngineProvider payEngineProvider = new WechatV2PayEngineProvider(restTemplate); payEngineProvider.setConfiguration(this.getConfiguration()); DefaultOrder order = new DefaultOrder(); order.setId(NumberGenerator.getLongSequenceNumber()); order.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); order.setPayType(PayType.Scan); order.setPayDefinitionId("1"); order.setTotalMoney(1); order.setNotifyUrl("http://47.99.216.98:7003/pay/wx/notify.do"); order.setIp("127.0.0.1"); order.setNonce(StringUtils.generateRandomNumber(6)); order.setTitle("一个苹果"); order.setAttach("test"); try { ScanOrderResponsePay responseValue = (ScanOrderResponsePay)payEngineProvider.generatePrepareOrder(order); System.out.println("返回扫码调用结果: " + responseValue); } catch (OrderException e) { throw new RuntimeException(e); } } // /** // * String类型转换器,默认是 iso-8859-1 // * @return // */ // private RestTemplate getRestTemplate(){ // RestTemplate restTemplate = new RestTemplate(); // List> messageConverters = restTemplate.getMessageConverters(); // Iterator> iterator=messageConverters.iterator(); // while(iterator.hasNext()){ // HttpMessageConverter converter=iterator.next(); // //原有的String是ISO-8859-1编码 去掉 // if(converter instanceof StringHttpMessageConverter){ // iterator.remove(); // } // } // messageConverters.add(new StringHttpMessageConverter(StandardCharsets.UTF_8)); // return restTemplate; // } // // private Map getConfiguration(){ // Map configuration = new HashMap<>(); // configuration.put(Constants.CONFIG_KEY_APP_ID, new DefaultVariable(VariableType.String, "wx8e4834af01a60a32", null)); // configuration.put(Constants.CONFIG_KEY_MCH_ID, new DefaultVariable(VariableType.String, "1630059373", null)); // configuration.put(Constants.CONFIG_KEY_API_KEY, new DefaultVariable(VariableType.String, "Zhongzhouzhihuishuili12345678901", null)); // return configuration; // } }