开始

发起rest请求-RestTemplate

image.png
首先需要创建一个配置项
image.png
把restTemplate当做一个Bean,让我们的容器扫描到。
image.png
一定要注意给restTemplate加上@Bean注解

  1. @Configuration
  2. public class WebMvcConfig {
  3. @Bean
  4. public RestTemplate restTemplate(RestTemplateBuilder builder) {
  5. return builder.build();
  6. }
  7. }

构建http的headers
image.png
设置contentType
image.png
参数类型是mediaType
image.png

MediaType里面有很多的类型image.png
可以搜索下这里有很多的类型
image.png
我们使用这个类型
image.png

image.png
要调用支付中心,还需要传入账号和密码。这两个参数在headers是必须要传的。
image.png
image.png

image.png
url就是支付中心要调用的地址。
image.png
公共的参数在baseController没定义
image.png

//支付中心的调用地址
    public static final String paymentUrl="http://payment.t.mukewang.com/foodie-payment/payment/createMerchantOrder";
    //微信支付成功 -> 支付中心 -> 天天吃货平台
    public  static  final  String payReturnUrl="http://localhost:8088/orders/nofityMerchantOrderPaid?orderId=210205HKAYGCMD68";

image.png
参数2request就是一个请求,这个请求是一个对象。就是一个HttpEntity
1.png

image.png
参数3返回类型
image.png

这个body就是返回过来的ImoocJSONResult
image.png

image.png

 // 3.向支付中心发送当前订单,用于保存支付中心的订单数据
        MerchantOrdersVO merchantOrdersVO=new MerchantOrdersVO();
        merchantOrdersVO.setReturnUrl(payReturnUrl);
        HttpHeaders headers=new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        headers.add("imoocUserId","imooc");
        headers.add("password","imooc");
        HttpEntity<MerchantOrdersVO> entity=
                new HttpEntity<>(merchantOrdersVO,headers);
        ResponseEntity<IMOOCJSONResult> responseEntity = restTemplate.postForEntity(paymentUrl, entity, IMOOCJSONResult.class);

        IMOOCJSONResult paymentResult = responseEntity.getBody();
        if(paymentResult.getStatus()!=200){
            return IMOOCJSONResult.errorMsg("支付中心订单创建失败,请联系管理员");
        }
        return IMOOCJSONResult.ok(orderId);

测试

重新的install
image.png
重启后端服务
前端提交订单
image.png

清空orders订单表内所有数据
image.png
然后前端点击提交订单。
image.png
支付中心订单表没有生成订单,这是因为数据库是我们本地的。
image.png
实际上是调用的云端的服务。
查看云端的订单数据库,复制mechantId
image.png
然后到自己本地的库内搜索这个订单id
image.png
云端数据库
image.png
这样商户订单,我们就成功的在支付中心生成了

wjw

本地因为没有账号密码去提交数据到支付中心,所以只能提交订单后,在本地的orders订单表内查询订单的状态了。

2.png
210303ADZ3ZD0G9P。自己在orders表内搜索。
3.png
订单状态表的状态。当前的状态是10,待支付的状态。
4.png

结束