开始

BaseController内定义
image.png

image.png

支付中心-代码讲解

支付中心在另外的一个项目里面,部署在线上的。我们直接调用线上的环境。
image.png

image.png
image.png

image.png
验证BO内的属性字段
image.png
调用service创建支付中心的订单。
image.png

image.png

回到我们自己的代码

回到我们创建订单的service实现方法里面
image.png
复制支付中心的这个BO类
image.png

  1. package com.imooc.pojo.bo;
  2. public class MerchantOrdersBO {
  3. private String merchantOrderId; // 商户订单号
  4. private String merchantUserId; // 商户方的发起用户的用户主键id
  5. private Integer amount; // 实际支付总金额(包含商户所支付的订单费邮费总额)
  6. private Integer payMethod; // 支付方式 1:微信 2:支付宝
  7. private String returnUrl; // 支付成功后的回调地址(学生自定义)
  8. public String getMerchantOrderId() {
  9. return merchantOrderId;
  10. }
  11. public void setMerchantOrderId(String merchantOrderId) {
  12. this.merchantOrderId = merchantOrderId;
  13. }
  14. public String getMerchantUserId() {
  15. return merchantUserId;
  16. }
  17. public void setMerchantUserId(String merchantUserId) {
  18. this.merchantUserId = merchantUserId;
  19. }
  20. public Integer getAmount() {
  21. return amount;
  22. }
  23. public void setAmount(Integer amount) {
  24. this.amount = amount;
  25. }
  26. public Integer getPayMethod() {
  27. return payMethod;
  28. }
  29. public void setPayMethod(Integer payMethod) {
  30. this.payMethod = payMethod;
  31. }
  32. public String getReturnUrl() {
  33. return returnUrl;
  34. }
  35. public void setReturnUrl(String returnUrl) {
  36. this.returnUrl = returnUrl;
  37. }
  38. }

粘贴到我们自己的项目里面
image.png

改个名字 叫做VO
image.png

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;
    }
}

创建订单里面代码
image.png
把这个VO传回给controller
image.png

  //4.构建商户订单,用户传给支付中心
        MerchantOrdersVO merchantOrdersVO=new MerchantOrdersVO();
        merchantOrdersVO.setMerchantOrderId(orderId);
        merchantOrdersVO.setMerchantUserId(userId);
        merchantOrdersVO.setAmount(realPayAmount + postAmount);

定义orderVO

image.png
记得生成getter和setter
image.png
image.png
方法的返回类型要修改下。
image.png

 /**
     * 用于创建订单相关信息
     * @param submitOrderBO
     */
    public OrderVO createOrder(SubmitOrderBO submitOrderBO);

image.png

controller内修改

image.png

              // 1.创建订单
        OrderVO orderVO = orderService.createOrder(submitOrderBO);
        String orderId=orderVO.getOrderId();

设置returnUrl ,因为我们放在了BaseController里面
image.png

 // 1.创建订单
        OrderVO orderVO = orderService.createOrder(submitOrderBO);
        String orderId=orderVO.getOrderId();
        MerchantOrdersVO merchantOrdersVO=new MerchantOrdersVO();
        merchantOrdersVO.setReturnUrl(payReturnUrl);

下一步,商户订单信息发送给支付中心

结束