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<HttpMessageConverter<?>> messageConverters = restTemplate.getMessageConverters();
|
// Iterator<HttpMessageConverter<?>> 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<String, Variable> getConfiguration(){
|
// Map<String, Variable> 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;
|
// }
|
}
|