开始
发起rest请求-RestTemplate
首先需要创建一个配置项
把restTemplate当做一个Bean,让我们的容器扫描到。
一定要注意给restTemplate加上@Bean注解
@Configuration
public class WebMvcConfig {
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
return builder.build();
}
}
构建http的headers
设置contentType
参数类型是mediaType
MediaType里面有很多的类型
可以搜索下这里有很多的类型
我们使用这个类型
要调用支付中心,还需要传入账号和密码。这两个参数在headers是必须要传的。
url就是支付中心要调用的地址。
公共的参数在baseController没定义
//支付中心的调用地址
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";
参数2request就是一个请求,这个请求是一个对象。就是一个HttpEntity
参数3返回类型
这个body就是返回过来的ImoocJSONResult
// 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
重启后端服务
前端提交订单
清空orders订单表内所有数据
然后前端点击提交订单。
支付中心订单表没有生成订单,这是因为数据库是我们本地的。
实际上是调用的云端的服务。
查看云端的订单数据库,复制mechantId
然后到自己本地的库内搜索这个订单id
云端数据库
这样商户订单,我们就成功的在支付中心生成了
wjw
本地因为没有账号密码去提交数据到支付中心,所以只能提交订单后,在本地的orders订单表内查询订单的状态了。
210303ADZ3ZD0G9P。自己在orders表内搜索。
订单状态表的状态。当前的状态是10,待支付的状态。