开始
BaseController内定义
支付中心-代码讲解
支付中心在另外的一个项目里面,部署在线上的。我们直接调用线上的环境。
验证BO内的属性字段
调用service创建支付中心的订单。
回到我们自己的代码
回到我们创建订单的service实现方法里面
复制支付中心的这个BO类
package com.imooc.pojo.bo;
public class MerchantOrdersBO {
private String merchantOrderId; // 商户订单号
private String merchantUserId; // 商户方的发起用户的用户主键id
private Integer amount; // 实际支付总金额(包含商户所支付的订单费邮费总额)
private Integer payMethod; // 支付方式 1:微信 2:支付宝
private String returnUrl; // 支付成功后的回调地址(学生自定义)
public String getMerchantOrderId() {
return merchantOrderId;
}
public void setMerchantOrderId(String merchantOrderId) {
this.merchantOrderId = merchantOrderId;
}
public String getMerchantUserId() {
return merchantUserId;
}
public void setMerchantUserId(String merchantUserId) {
this.merchantUserId = merchantUserId;
}
public Integer getAmount() {
return amount;
}
public void setAmount(Integer amount) {
this.amount = amount;
}
public Integer getPayMethod() {
return payMethod;
}
public void setPayMethod(Integer payMethod) {
this.payMethod = payMethod;
}
public String getReturnUrl() {
return returnUrl;
}
public void setReturnUrl(String returnUrl) {
this.returnUrl = returnUrl;
}
}
粘贴到我们自己的项目里面
改个名字 叫做VO
package com.imooc.pojo.vo;
public class MerchantOrdersVO {
private String merchantOrderId; // 商户订单号
private String merchantUserId; // 商户方的发起用户的用户主键id
private Integer amount; // 实际支付总金额(包含商户所支付的订单费邮费总额)
private Integer payMethod; // 支付方式 1:微信 2:支付宝
private String returnUrl; // 支付成功后的回调地址(学生自定义)
public String getMerchantOrderId() {
return merchantOrderId;
}
public void setMerchantOrderId(String merchantOrderId) {
this.merchantOrderId = merchantOrderId;
}
public String getMerchantUserId() {
return merchantUserId;
}
public void setMerchantUserId(String merchantUserId) {
this.merchantUserId = merchantUserId;
}
public Integer getAmount() {
return amount;
}
public void setAmount(Integer amount) {
this.amount = amount;
}
public Integer getPayMethod() {
return payMethod;
}
public void setPayMethod(Integer payMethod) {
this.payMethod = payMethod;
}
public String getReturnUrl() {
return returnUrl;
}
public void setReturnUrl(String returnUrl) {
this.returnUrl = returnUrl;
}
}
创建订单里面代码
把这个VO传回给controller
//4.构建商户订单,用户传给支付中心
MerchantOrdersVO merchantOrdersVO=new MerchantOrdersVO();
merchantOrdersVO.setMerchantOrderId(orderId);
merchantOrdersVO.setMerchantUserId(userId);
merchantOrdersVO.setAmount(realPayAmount + postAmount);
定义orderVO
记得生成getter和setter
方法的返回类型要修改下。
/**
* 用于创建订单相关信息
* @param submitOrderBO
*/
public OrderVO createOrder(SubmitOrderBO submitOrderBO);
controller内修改
// 1.创建订单
OrderVO orderVO = orderService.createOrder(submitOrderBO);
String orderId=orderVO.getOrderId();
设置returnUrl ,因为我们放在了BaseController里面
// 1.创建订单
OrderVO orderVO = orderService.createOrder(submitOrderBO);
String orderId=orderVO.getOrderId();
MerchantOrdersVO merchantOrdersVO=new MerchantOrdersVO();
merchantOrdersVO.setReturnUrl(payReturnUrl);
下一步,商户订单信息发送给支付中心