package com.walker.pay.allinpay; 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.NumberGenerator; import com.walker.infrastructure.utils.StringUtils; import com.walker.pay.PayType; import com.walker.pay.exception.OrderException; import com.walker.pay.support.DefaultOrder; import org.junit.Test; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.web.client.RestTemplate; import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; public class TestH5OrderGenerator { // @Test public void testOrder(){ H5OrderGenerator h5OrderGenerator = new H5OrderGenerator(this.getRestTemplate()); DefaultOrder order = new DefaultOrder(); order.setId(NumberGenerator.getLongSequenceNumber()); order.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); order.setPayType(PayType.H5); order.setPayDefinitionId("2"); order.setTotalMoney(1); order.setNotifyUrl("http://47.99.216.98:7003/pay/tl/notify.do"); order.setIp("127.0.0.1"); order.setNonce(StringUtils.generateRandomNumber(6)); order.setTitle("H5支付商品"); order.setAttach("test"); try { H5ResponsePay responsePay = (H5ResponsePay)h5OrderGenerator.generate("", order, this.getConfiguration()); System.out.println("返回结果: "); } catch (OrderException e) { throw new RuntimeException(e); } } /** * String类型转换器,默认是 iso-8859-1 * @return */ protected 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; } protected Map getConfiguration(){ Map configuration = new HashMap<>(); configuration.put(Constants.CONFIG_KEY_APP_ID, new DefaultVariable(VariableType.String, "00000051", null)); configuration.put(Constants.CONFIG_KEY_MCH_ID, new DefaultVariable(VariableType.String, "990581007426001", null)); configuration.put(Constants.CONFIG_KEY_MD5_KEY, new DefaultVariable(VariableType.String, "a0ea3fa20dbd7bb4d5abf1d59d63bae8", null)); configuration.put(Constants.CONFIG_KEY_RSA_PRI_KEY, new DefaultVariable(VariableType.String, "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAJgHMGYsspghvP+yCbjLG43CkZuQ3YJyDcmEKxvmgblITfmiTPx2b9Y2iwDT9gnLGExTDm1BL2A8VzMobjaHfiCmTbDctu680MLmpDDkVXmJOqdlXh0tcLjhN4+iDA2KkRqiHxsDpiaKT6MMBuecXQbJtPlVc1XjVhoUlzUgPCrvAgMBAAECgYAV9saYTGbfsdLOF5kYo0dve1JxaO7dFMCcgkV+z2ujKtNmeHtU54DlhZXJiytQY5Dhc10cjb6xfFDrftuFcfKCaLiy6h5ETR8jyv5He6KH/+X6qkcGTkJBYG1XvyyFO3PxoszQAs0mrLCqq0UItlCDn0G72MR9/NuvdYabGHSzEQJBAMXB1/DUvBTHHH4LiKDiaREruBb3QtP72JQS1ATVXA2v6xJzGPMWMBGQDvRfPvuCPVmbHENX+lRxMLp39OvIn6kCQQDEzYpPcuHW/7h3TYHYc+T0O6z1VKQT2Mxv92Lj35g1XqV4Oi9xrTj2DtMeV1lMx6n/3icobkCQtuvTI+AcqfTXAkB6bCz9NwUUK8sUsJktV9xJN/JnrTxetOr3h8xfDaJGCuCQdFY+rj6lsLPBTnFUC+Vk4mQVwJIE0mmjFf22NWW5AkAmsVaRGkAmui41Xoq52MdZ8WWm8lY0BLrlBJlvveU6EPqtcZskWW9KiU2euIO5IcRdpvrB6zNMgHpLD9GfMRcPAkBUWOV/dH13v8V2Y/Fzuag/y5k3/oXi/WQnIxdYbltad2xjmofJ7DbB7MJqiZZD8jlr8PCZPwRNzc5ntDStc959", null)); configuration.put(Constants.CONFIG_KEY_RSA_PUB_KEY, new DefaultVariable(VariableType.String, "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCm9OV6zH5DYH/ZnAVYHscEELdCNfNTHGuBv1nYYEY9FrOzE0/4kLl9f7Y9dkWHlc2ocDwbrFSm0Vqz0q2rJPxXUYBCQl5yW3jzuKSXif7q1yOwkFVtJXvuhf5WRy+1X5FOFoMvS7538No0RpnLzmNi3ktmiqmhpcY/1pmt20FHQQIDAQAB", null)); configuration.put(Constants.CONFIG_KEY_SM2_PRI_KEY, new DefaultVariable(VariableType.String, "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgjj4Rk+b0YjwO+UwXofnHf4bK+kaaY5Btkd8nMP2VimmgCgYIKoEcz1UBgi2hRANCAAQqlALW4qGC3bP1x3wo5QsKxaCMEZJ2ODTTwOQ+d8UGU7GoK/y/WMBQWf5upMnFU06p5FxGooXYYoBtldgm03hq", null)); configuration.put(Constants.CONFIG_KEY_SM2_PUB_KEY, new DefaultVariable(VariableType.String, "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEBQicgWm0KAMqhO3bdqMUEDrKQvYg8cCXHhdGwq7CGE6oJDzJ1P/94HpuVdBf1KidmPxr7HOH+0DAnpeCcx9TcQ==", null)); return configuration; } }