diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/jodd/JoddHttpMediaInputStreamUploadRequestExecutor.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/jodd/JoddHttpMediaInputStreamUploadRequestExecutor.java
index d0591aee9b..479844e42a 100644
--- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/jodd/JoddHttpMediaInputStreamUploadRequestExecutor.java
+++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/jodd/JoddHttpMediaInputStreamUploadRequestExecutor.java
@@ -4,7 +4,7 @@
 import jodd.http.HttpRequest;
 import jodd.http.HttpResponse;
 import jodd.http.ProxyInfo;
-import jodd.http.up.ByteArrayUploadable;
+import jodd.http.upload.ByteArrayUploadable;
 import me.chanjar.weixin.common.bean.result.WxMediaUploadResult;
 import me.chanjar.weixin.common.enums.WxType;
 import me.chanjar.weixin.common.error.WxError;
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpSchoolService.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpSchoolService.java
index 2e97bf0755..1a43664911 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpSchoolService.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpSchoolService.java
@@ -2,7 +2,9 @@
 
 import me.chanjar.weixin.common.error.WxErrorException;
 import me.chanjar.weixin.cp.bean.school.WxCpCustomizeHealthInfo;
+import me.chanjar.weixin.cp.bean.school.WxCpPaymentResult;
 import me.chanjar.weixin.cp.bean.school.WxCpResultList;
+import me.chanjar.weixin.cp.bean.school.WxCpTrade;
 
 import javax.validation.constraints.NotNull;
 import java.util.List;
@@ -57,4 +59,27 @@ public interface WxCpSchoolService {
    */
   WxCpResultList getHealthQrCode(@NotNull List<String> userIds, @NotNull Integer type) throws WxErrorException;
 
+  /**
+   * 获取学生付款结果
+   * 请求方式: POST(HTTPS)
+   * 请求地址: https://qyapi.weixin.qq.com/cgi-bin/school/get_payment_result?access_token=ACCESS_TOKEN
+   *
+   * @param paymentId
+   * @return
+   * @throws WxErrorException
+   */
+  WxCpPaymentResult getPaymentResult(@NotNull String paymentId) throws WxErrorException;
+
+  /**
+   * 获取订单详情
+   * 请求方式: POST(HTTPS)
+   * 请求地址: https://qyapi.weixin.qq.com/cgi-bin/school/get_trade?access_token=ACCESS_TOKEN
+   *
+   * @param paymentId
+   * @param tradeNo
+   * @return
+   * @throws WxErrorException
+   */
+  WxCpTrade getTrade(@NotNull String paymentId, @NotNull String tradeNo) throws WxErrorException;
+
 }
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpSchoolServiceImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpSchoolServiceImpl.java
index 329c924069..023ee60566 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpSchoolServiceImpl.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpSchoolServiceImpl.java
@@ -7,7 +7,9 @@
 import me.chanjar.weixin.cp.api.WxCpSchoolService;
 import me.chanjar.weixin.cp.api.WxCpService;
 import me.chanjar.weixin.cp.bean.school.WxCpCustomizeHealthInfo;
+import me.chanjar.weixin.cp.bean.school.WxCpPaymentResult;
 import me.chanjar.weixin.cp.bean.school.WxCpResultList;
+import me.chanjar.weixin.cp.bean.school.WxCpTrade;
 
 import javax.validation.constraints.NotNull;
 import java.util.List;
@@ -64,4 +66,23 @@ public WxCpResultList getHealthQrCode(@NotNull List<String> userIds, @NotNull In
     return WxCpResultList.fromJson(responseContent);
   }
 
+  @Override
+  public WxCpPaymentResult getPaymentResult(@NotNull String paymentId) throws WxErrorException {
+    String apiUrl = this.cpService.getWxCpConfigStorage().getApiUrl(GET_PAYMENT_RESULT);
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("payment_id", paymentId);
+    String responseContent = this.cpService.post(apiUrl, jsonObject.toString());
+    return WxCpPaymentResult.fromJson(responseContent);
+  }
+
+  @Override
+  public WxCpTrade getTrade(@NotNull String paymentId, @NotNull String tradeNo) throws WxErrorException {
+    String apiUrl = this.cpService.getWxCpConfigStorage().getApiUrl(GET_TRADE);
+    JsonObject jsonObject = new JsonObject();
+    jsonObject.addProperty("payment_id", paymentId);
+    jsonObject.addProperty("trade_no", tradeNo);
+    String responseContent = this.cpService.post(apiUrl, jsonObject.toString());
+    return WxCpTrade.fromJson(responseContent);
+  }
+
 }
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/school/WxCpPaymentResult.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/school/WxCpPaymentResult.java
new file mode 100644
index 0000000000..e707ba9183
--- /dev/null
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/school/WxCpPaymentResult.java
@@ -0,0 +1,65 @@
+package me.chanjar.weixin.cp.bean.school;
+
+import com.google.gson.annotations.SerializedName;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import me.chanjar.weixin.cp.bean.WxCpBaseResp;
+import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 获取学生付款结果.
+ *
+ * @author Wang_Wong
+ */
+@Data
+public class WxCpPaymentResult extends WxCpBaseResp implements Serializable {
+  private static final long serialVersionUID = -5028321625142879581L;
+
+  @SerializedName("project_name")
+  private String projectName;
+
+  @SerializedName("amount")
+  private Integer amount;
+
+  @SerializedName("payment_result")
+  private List<PaymentResult> paymentResult;
+
+  @Setter
+  @Getter
+  public static class PaymentResult{
+
+    @SerializedName("student_userid")
+    private String studentUserId;
+
+    @SerializedName("trade_no")
+    private String tradeNo;
+
+    @SerializedName("payer_parent_userid")
+    private String payerParentUserId;
+
+    @SerializedName("trade_state")
+    private Integer tradeState;
+
+    public static PaymentResult fromJson(String json) {
+      return WxCpGsonBuilder.create().fromJson(json, PaymentResult.class);
+    }
+
+    public String toJson() {
+      return WxCpGsonBuilder.create().toJson(this);
+    }
+
+  }
+
+  public static WxCpPaymentResult fromJson(String json) {
+    return WxCpGsonBuilder.create().fromJson(json, WxCpPaymentResult.class);
+  }
+
+  public String toJson() {
+    return WxCpGsonBuilder.create().toJson(this);
+  }
+
+}
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/school/WxCpTrade.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/school/WxCpTrade.java
new file mode 100644
index 0000000000..8283174b26
--- /dev/null
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/school/WxCpTrade.java
@@ -0,0 +1,39 @@
+package me.chanjar.weixin.cp.bean.school;
+
+import com.google.gson.annotations.SerializedName;
+import lombok.Data;
+import me.chanjar.weixin.cp.bean.WxCpBaseResp;
+import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
+
+import java.io.Serializable;
+
+/**
+ * 获取订单详情.
+ *
+ * @author Wang_Wong
+ */
+@Data
+public class WxCpTrade extends WxCpBaseResp implements Serializable {
+  private static final long serialVersionUID = -5028321625142879581L;
+
+  /**
+   * 微信交易单号
+   */
+  @SerializedName("transaction_id")
+  private String transactionId;
+
+  /**
+   * 交易时间
+   */
+  @SerializedName("pay_time")
+  private Long payTime;
+
+  public static WxCpTrade fromJson(String json) {
+    return WxCpGsonBuilder.create().fromJson(json, WxCpTrade.class);
+  }
+
+  public String toJson() {
+    return WxCpGsonBuilder.create().toJson(this);
+  }
+
+}
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java
index 8ea37c36a8..d2b5ccaaf1 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java
@@ -182,6 +182,9 @@ interface School {
     String GET_TEACHER_CUSTOMIZE_HEALTH_INFO = "/cgi-bin/school/user/get_teacher_customize_health_info";
     String GET_STUDENT_CUSTOMIZE_HEALTH_INFO = "/cgi-bin/school/user/get_student_customize_health_info";
     String GET_HEALTH_QRCODE = "/cgi-bin/school/user/get_health_qrcode";
+
+    String GET_PAYMENT_RESULT = "/cgi-bin/school/get_payment_result";
+    String GET_TRADE = "/cgi-bin/school/get_trade";
   }
 
   interface Living {
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpSchoolTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpSchoolTest.java
index ddb1d47c09..5f2896d7a6 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpSchoolTest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpSchoolTest.java
@@ -5,7 +5,9 @@
 import me.chanjar.weixin.common.error.WxErrorException;
 import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl;
 import me.chanjar.weixin.cp.bean.school.WxCpCustomizeHealthInfo;
+import me.chanjar.weixin.cp.bean.school.WxCpPaymentResult;
 import me.chanjar.weixin.cp.bean.school.WxCpResultList;
+import me.chanjar.weixin.cp.bean.school.WxCpTrade;
 import me.chanjar.weixin.cp.config.WxCpConfigStorage;
 import me.chanjar.weixin.cp.demo.WxCpDemoInMemoryConfigStorage;
 import org.testng.annotations.Test;
@@ -44,6 +46,34 @@ public void test() throws WxErrorException {
     String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
 
 
+    /**
+     * 获取学生付款结果
+     * https://developer.work.weixin.qq.com/document/path/94553
+     */
+    String paymentResultStr = "{\"errcode\":0,\"errmsg\":\"ok\",\"project_name\":\"学费\",\"amount\":998,\"payment_result\":[{\"student_userid\":\"xxxx\",\"trade_state\":1,\"trade_no\":\"xxxxx\",\"payer_parent_userid\":\"zhangshan\"}]}";
+    WxCpPaymentResult cpPaymentResult = WxCpPaymentResult.fromJson(paymentResultStr);
+    log.info("cpPaymentResult:{}", cpPaymentResult.toJson());
+
+    WxCpPaymentResult paymentResult = cpService.getSchoolService().getPaymentResult("");
+    log.info("paymentResult:{}", paymentResult.toJson());
+
+    /**
+     * 获取订单详情
+     * https://developer.work.weixin.qq.com/document/path/94554
+     */
+    String tradeStr = "{\n" +
+      "\t\"errcode\":0,\n" +
+      "\t\"errmsg\":\"ok\",\n" +
+      "\t\"transaction_id\":\"xxxxx\",    \t     \n" +
+      "\t\"pay_time\":12345\n" +
+      "}";
+    WxCpTrade wxCpTrade = WxCpTrade.fromJson(tradeStr);
+    log.info("wxCpTrade:{}", wxCpTrade.toJson());
+
+    WxCpTrade trade = cpService.getSchoolService().getTrade("", "");
+    log.info("trade:{}", trade.toJson());
+
+
     /**
      * 获取老师健康信息
      * https://developer.work.weixin.qq.com/document/path/93744