package com.walker.pay.payunk; import com.walker.infrastructure.arguments.Variable; import com.walker.infrastructure.arguments.VariableType; import com.walker.infrastructure.arguments.support.DefaultVariable; import com.walker.infrastructure.utils.DateUtils; import com.walker.infrastructure.utils.MoneyUtils; import com.walker.infrastructure.utils.NumberGenerator; import com.walker.pay.PayEngineProvider; import com.walker.pay.PayType; import com.walker.pay.exception.OrderException; import com.walker.pay.support.DefaultOrder; import com.walker.web.RestTemplateConfig; import com.walker.web.RestTemplateFactory; import org.junit.Test; import org.springframework.web.client.RestTemplate; import java.util.HashMap; import java.util.Map; public class TestPayUnkEngine { // @Test public void testMoney(){ // System.out.println(NumberFormatUtils.scaleAccuracy2(30.0/100.0)); // double money = 1/100.0; // System.out.println(money); System.out.println(MoneyUtils.scaleYuan2Accuracy(30)); System.out.println(MoneyUtils.scaleYuan2Accuracy(100)); System.out.println(MoneyUtils.scaleYuan2Accuracy(1)); } @Test public void payAliAnDf(){ RestTemplate restTemplate = this.getRestTemplate(); PayEngineProvider payEngineProvider = new PayUnkEngineProvider(restTemplate); payEngineProvider.setConfiguration(this.getConfiguration()); payEngineProvider.setOrderCallback(new PayUnkOrderCallback()); DefaultOrder order = new DefaultOrder(); order.setId(NumberGenerator.getLongSequenceNumber()); order.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); order.setPayType(PayType.PayUnk_BEHALF_ALIPAY_ONE); order.setPayDefinitionId("3"); order.setTotalMoney(10); order.setNotifyUrl("http://47.99.216.98:8082/admin/front/kyzt/receipt/pay/notify"); // order.setNotifyUrl(Constants.CALL_BACK_SUCCESS); order.setIp("127.0.0.1"); order.setTitle("测试商品"); String attach = "order," + 9987654321L; order.setAttach(attach); // 支付宝个人账号 order.setBuyerId("13838277463"); order.setNonce("时克英"); try { Trans2AlipayResponsePay responseValue = (Trans2AlipayResponsePay)payEngineProvider.generatePrepareOrder(order); System.out.println("返回[支付宝转账订单]调用结果: " + responseValue); if(responseValue.getStatus()){ System.out.println("url = " + responseValue.getUrl()); System.out.println("data = " + responseValue.getData()); } } catch (OrderException e) { throw new RuntimeException(e); } } protected Map getConfiguration(){ Map configuration = new HashMap<>(); configuration.put(Constants.CONFIG_KEY_APPID, new DefaultVariable(VariableType.String, "APP202310209174137956073295", null).setId(Constants.CONFIG_KEY_APPID)); // 支付宝A版代付到户编号:3635 configuration.put(Constants.CONFIG_KEY_USER_ACCOUNT_ID, new DefaultVariable(VariableType.String, "3635", null).setId(Constants.CONFIG_KEY_USER_ACCOUNT_ID)); // configuration.put(Constants.CONFIG_KEY_ALIPAY_IDENTITY, new DefaultVariable(VariableType.String, "2088820986081574", null).setId(Constants.CONFIG_KEY_ALIPAY_IDENTITY)); // configuration.put(Constants.CONFIG_KEY_ALIPAY_AGREEMENT_NO, new DefaultVariable(VariableType.String, "20235824012463444332", null).setId(Constants.CONFIG_KEY_ALIPAY_AGREEMENT_NO)); configuration.put(Constants.CONFIG_KEY_ALIPAY_IDENTITY, new DefaultVariable(VariableType.String, "identity", null).setId(Constants.CONFIG_KEY_ALIPAY_IDENTITY)); configuration.put(Constants.CONFIG_KEY_ALIPAY_AGREEMENT_NO, new DefaultVariable(VariableType.String, "agreement", null).setId(Constants.CONFIG_KEY_ALIPAY_AGREEMENT_NO)); return configuration; } protected RestTemplate getRestTemplate(){ RestTemplateConfig config = new RestTemplateConfig(); config.setKeepAliveDurationSeconds(300); config.setMaxIdleConnections(20); config.setConnectTimeoutSeconds(3); config.setReadTimeoutSeconds(3); config.setWriteTimeoutSeconds(3); return RestTemplateFactory.createRestTemplate(RestTemplateFactory.HttpType.OkHttp, config); // 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; } }