shikeying
2024-01-11 3b67e947e36133e2a40eb2737b15ea375e157ea0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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<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;
    }
 
    protected Map<String, Variable> getConfiguration(){
        Map<String, Variable> 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;
    }
}