cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
@@ -91,7 +91,7 @@ /** * 支付宝支付 */ public ResultUtil alipay(String smid,String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) { public ResultUtil alipay(String smid,String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) { // //构造client // CertAlipayRequest certAlipayRequest = new CertAlipayRequest (); // //设置网关地址 cloud-server-competition/pom.xml
@@ -89,10 +89,11 @@ <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <version>4.8.10.ALL</version> <version>4.38.10.ALL</version> </dependency> </dependencies> cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java
@@ -6,7 +6,7 @@ import com.alipay.api.AlipayClient; import com.alipay.api.CertAlipayRequest; import com.alipay.api.DefaultAlipayClient; import com.alipay.api.domain.AlipayTradeAppPayModel; import com.alipay.api.domain.*; import com.alipay.api.request.*; import com.alipay.api.response.*; import com.dsh.competition.util.httpClinet.HttpClientUtil; @@ -134,12 +134,27 @@ model.setSubject("报名赛事");//商品的标题/交易标题/订单标题/订单关键字等。 model.setOutTradeNo(outTradeNo);//商户网站唯一订单号 model.setTimeoutExpress("30m"); model.setSellerId(smid); model.setTotalAmount(amount);//付款金额 model.setProductCode("QUICK_MSECURITY_PAY"); model.setPassbackParams(passbackParams);//自定义参数 SettleInfo settleInfo = new SettleInfo(); settleInfo.setSettlePeriodTime("3d"); SettleDetailInfo settleDetailInfo = new SettleDetailInfo(); settleDetailInfo.setTransInType("defaultSettle"); settleDetailInfo.setAmount(amount); List<SettleDetailInfo> settleDetailInfos = new ArrayList<>(); settleDetailInfos.add(settleDetailInfo); settleInfo.setSettleDetailInfos(settleDetailInfos); model.setSettleInfo(settleInfo); SubMerchant subMerchant = new SubMerchant(); subMerchant.setMerchantId(smid); model.setSubMerchant(subMerchant); ExtendParams extendParams = new ExtendParams(); extendParams.setRoyaltyFreeze("true");// 冻结资金 用于后续分账处理 model.setExtendParams(extendParams); request.setBizModel(model); request.setNotifyUrl(callbackPath + notifyUrl); try { //这里和普通的接口调用不同,使用的是sdkExecute AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request); @@ -273,6 +288,15 @@ return response; } } /** * 统一确认结算接口 * @param smid * @param code * @param outTradeNo * @param amount * @return */ public ResultUtil confirm(String smid,String code, String outTradeNo, String amount) { AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, cloud-server-course/pom.xml
@@ -122,7 +122,7 @@ <dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <version>4.8.10.ALL</version> <version>4.38.10.ALL</version> </dependency> <dependency> <groupId>com.huaweicloud</groupId> cloud-server-course/src/main/java/com/dsh/course/util/PayMoneyUtil.java
@@ -6,7 +6,7 @@ import com.alipay.api.AlipayClient; import com.alipay.api.CertAlipayRequest; import com.alipay.api.DefaultAlipayClient; import com.alipay.api.domain.AlipayTradeAppPayModel; import com.alipay.api.domain.*; import com.alipay.api.request.*; import com.alipay.api.response.*; import com.dsh.course.util.httpClinet.HttpClientUtil; @@ -177,8 +177,22 @@ model.setTotalAmount(amount);//付款金额 model.setProductCode("QUICK_MSECURITY_PAY"); model.setPassbackParams(passbackParams);//自定义参数 SettleInfo settleInfo = new SettleInfo(); settleInfo.setSettlePeriodTime("3d"); SettleDetailInfo settleDetailInfo = new SettleDetailInfo(); settleDetailInfo.setTransInType("defaultSettle"); settleDetailInfo.setAmount(amount); List<SettleDetailInfo> settleDetailInfos = new ArrayList<>(); settleDetailInfos.add(settleDetailInfo); settleInfo.setSettleDetailInfos(settleDetailInfos); model.setSettleInfo(settleInfo); SubMerchant subMerchant = new SubMerchant(); subMerchant.setMerchantId(smid); model.setSubMerchant(subMerchant); ExtendParams extendParams = new ExtendParams(); extendParams.setRoyaltyFreeze("true");// 冻结资金 用于后续分账处理 model.setExtendParams(extendParams); request.setBizModel(model); model.setSellerId(smid); request.setNotifyUrl(callbackPath + notifyUrl); try { //这里和普通的接口调用不同,使用的是sdkExecute cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java
@@ -26,6 +26,7 @@ import com.dsh.guns.modular.system.model.*; import com.dsh.guns.modular.system.service.*; import com.dsh.guns.modular.system.util.PayMoneyUtil; import com.dsh.guns.modular.system.util.ResultUtil; import com.github.binarywang.wxpay.service.BankService; @@ -57,13 +58,16 @@ @Autowired private TOperatorCityService operatorCityService; @Autowired private IOperatorAuthService operatorAuthService; @Autowired private IOperatorUserService operatorUserService; @Autowired private IUserService userService; @Autowired private ICityService cityService; @Autowired private IOperatorAuthService operatorAuthService; private PayMoneyUtil payMoneyUtil; @Autowired private IStoreService storeService; private String appPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA==";//支付宝开发者应用私钥 @@ -76,6 +80,7 @@ @ResponseBody public List<TStore> getStores(Integer id) { payMoneyUtil.getMessage(); return storeService.list(new QueryWrapper<TStore>() .eq("operatorId",id) .ne("state",3)); @@ -411,73 +416,7 @@ legalFront = uploadImg(legalFront).toString(); // 法人身份证背面照 legalBack = uploadImg(legalBack).toString(); // 商户行业资质图片 iqImage = uploadImg(iqImage).toString(); operatorAuthService.saveOrUpdate(operatorAuth); // todo 填写申请单 //第二步:提交申请单 // AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","2021003199648333", // "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCXnbOiY2VkKb5ubpcwKqzmqbKotpKGA79yn2aQeZiTWhqmLdCKjVp64naGpnOQEC7hDZluOO1crWHVhIEp7XGIEVawA7mb/dBbzo4wQQYVtLX6iEZViYk/mA7G59S/lvsLVi+jkVGlx2Co8JhvkTRtCEFgUnVA9o2jKy5BIEwrusNuDjrn5X+3ZvfZJN/iV0yzhzXynzioZt/DIcdODOVPUrem8T/5ifJ6ydSKIumgquBKyQnFOj+LRt5qMioBVzLnod0S/6kKMoNVN3/qx/PHRaeHbrF7I67IpGNROg0D9C4d9xXbGhSqQciXitLVnNzWuCov4Ie5nT5VCg9RjXyVAgMBAAECggEAf5rU81lgnnqbseoWCQ4B02kD2wc+Lti8qsYJ1pLgnTP6td5dZB8wBbjQNOem35sfOX7uoVv8OkIa00/gPd9/7BtbsGySLP3j/UDNX0N60Y30k1VajOdiwklCNpor7swtog75rVrDMxmo+sb0JQI684E9NMpxsSlRcAEJvvpl4W7LkhfJZyCUNXPAAh9SOkFOeaXATueEQ57V5vpeKM2JRJy//1P1LS2c/quLRIPqaTYgVAvxfdAYQvvP0vPijxHtxJlDxPa8xBCv7D46d+HeIA6X5ZkoTKLYbe2D36utP8rqGsXw1EyrYyuq6HdEAi/I4YXvWyLsXuQTSACSp+piAQKBgQD6am94xyQ4CRiMA/T1kvPPkXD+y/1Sbr3+T1S6X4naAGdkZS+TbPaWEddd2Huml6q+C2UcGhQpupBkbk88Nbs94jOulsfF6b24nOo1xH5z/BtS0kYuYaNLhebJtzrR9gupT1Uv0q+QybWZ3hQswOK0vwpkDk9DOysFynfMyXXlwQKBgQCa/z3oZ4iYZpTLNdRhMS0u593Jq8MDemimBJGEXPvDBByyE5Ohf22UqP5MjS1euosAQSva+/HmKeEigLgjoQTo29mA1nzPe0AKN3huWbqPIOdeIOA694Nj6ooOPS8iDMjKu61wPz/rZ57bv41LsPXr0y4UsU30JWg2rzgRnGgT1QKBgH30c0VIxUr6KEKk6t1qoP/SpAdFC5Ie6am0tWVZELl6Yob47kk1EYLCTpWBghB1UQhuKtlLtMCYenBJm8kpLZke4ef7J1jBDRCCvLt2rjQgpo2t/mbt7XjbTQ5A/3EEVTFAGhUH4A7vpkxSi8tG6cEIJm3VVMD4TdeH02JKIucBAoGAA0v+kxzwqN01uQTSGackIOVJsGp44XAPHcjnF3uq10EVIyyLbVn6iLj3f8VY+7TYFA9O0X+ea5jkcwlt4UQhiJp0i+sECJ3EhPMdGqvJ7hVzFmt4mYh+QPfSK+9dO0ouUzGexM5zm5w+osn2RW/kKzn4tvP2hoTtLIyZkrZS+GkCgYAQGKe84pXggSIPwztg0aBJUC9b4fXe3PR4DFTM85lBUKYJnQGRzf6NDCD83hwJoNdnyZkztyK72LDOn2NOzPfYcfUl6MQFPovXeMWaVidRfo4ZgyFA/C1egduebaIkXE+DpGhiy7alQ4k+LxUfy6oJBT9Sq8oq7EVBEkeff3p66g==","json","GBK", // "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB","RSA2"); // AlipayMerchantIndirectAuthorderCreateRequest request = new AlipayMerchantIndirectAuthorderCreateRequest(); // String param = "{" + // " \"out_biz_no\":\""+uuid+"\"," + // " \"contact_person_info\":{" + // " \"contact_name\":\""+name+"\"," + // " \"contact_phone_no\":\""+phone+"\"," + // " \"contact_card_no\":\""+number+"\"," + // " \"contact_cert_type\":\"RESIDENT\"" + // " }," + // " \"auth_identity_info\":{" + // " \"identity_type\":\""+bodyType+"\"," + // " \"is_financial_org\":false," + // " \"certificate_type\":\"BUSINESS_CERT\"," + // " \"certificate_info\":{" + // " \"cert_no\":\""+businessNumber+"\"," + // " \"cert_image\":\""+string+"\"," + // " \"merchant_name\":\""+businessName+"\"," + // " \"legal_person_name\":\""+legalRepresentative+"\"," + // " \"register_address\":\""+registerAddress+"\"," + // " \"effect_time\":\""+businessTerm+"\"," + // " \"expire_time\":\""+businessEnd+"\"" + // " }," + // " }," + // " \"legal_person_info\":{" + // " \"card_type\":\"RESIDENT\"," + // " \"person_name\":\""+legalRepresentative+"\"," + // " \"card_no\":\""+legalNumber+"\"," + // " \"effect_time\":\""+legalTerm+"\"," + // " \"expire_time\":\""+legalEnd+"\"," + // " \"card_front_img\":\""+legalFront+"\"," + // " \"card_back_img\":\""+legalBack+"\"," + // " \"is_benefit_person\":"+isBeneficiary+"" + // " },"; // String bene = " \"benefit_person_info\":{" + // " \"person_name\":\""+beneficiary+"\"," + // " \"card_no\":\""+beneficiaryNumber+"\"," + // " \"card_type\":\"RESIDENT\"," + // " \"effect_time\":\""+beneficiaryTerm+"\"," + // " \"expire_time\":\""+beneficiaryEnd+"\"," + // " \"card_front_img\":\""+beneficiaryFront+"\"," + // " \"card_back_img\":\""+beneficiaryBack+"\"" + // " },"; // if (bodyType.equals("ENTERPRISE")){ // request.setBizContent(param // + bene+ // "}"); // }else{ // request.setBizContent(param // + // "}"); // } // // AlipayMerchantIndirectAuthorderCreateResponse response = null; // try { // response = alipayClient.execute(request); // } catch (AlipayApiException e) { // e.printStackTrace(); // } AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, @@ -559,7 +498,6 @@ try { response = alipayClient.execute(request); } catch (AlipayApiException e) { System.err.println("???????????"); e.printStackTrace(); } if(response.isSuccess()){ cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java
@@ -7,13 +7,23 @@ import com.alipay.api.CertAlipayRequest; import com.alipay.api.DefaultAlipayClient; import com.alipay.api.domain.AlipayTradeAppPayModel; import com.alipay.api.msg.AlipayMsgClient; import com.alipay.api.msg.MsgHandler; import com.alipay.api.request.*; import com.alipay.api.response.*; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.guns.modular.system.model.OperatorAuthAlipay; import com.dsh.guns.modular.system.model.OperatorUser; import com.dsh.guns.modular.system.service.IOperatorAuthService; import com.dsh.guns.modular.system.service.IOperatorUserService; import org.apache.commons.lang3.StringUtils; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletRequest; import java.io.*; import java.util.*; @@ -47,7 +57,84 @@ private String alipay_root_cert_path = "C:/cert/alipay/user/alipay_root_cert_path.crt";//支付宝CA根证书文件路径 private String certPath = "C:\\cert\\1523106371_20211206_cert\\apiclient_cert.p12";//微信证书 String signType = "RSA2" ; String serverHost = "openchannel.alipay.com" ; @Autowired private IOperatorAuthService operatorAuthService; @Autowired private IOperatorUserService operatorUserService; /** * 处理直付通审核通过和拒绝消息 */ public void getMessage() { final AlipayMsgClient alipayMsgClient = AlipayMsgClient.getInstance(aliAppid); try { alipayMsgClient.setConnector(serverHost); } catch (Exception e) { e.printStackTrace(); } alipayMsgClient.setSecurityConfig(signType, appPrivateKey, alipay_public_key); try { alipayMsgClient.connect(); } catch (InterruptedException e) { e.printStackTrace(); } alipayMsgClient.setMessageHandler( new MsgHandler() { /** * 客户端接收到消息后回调此方法 * @param msgApi 接收到的消息的消息api名 * @param msgId 接收到的消息的消息id * @param bizContent 接收到的消息的内容,json格式 */ public void onMessage (String msgApi, String msgId, String bizContent) { // 直付通进件审核通过 if (StringUtils.equals(msgApi,"ant.merchant.expand.indirect.zft.passed")){ // 修改运营商状态 将返回的商户号填入运营商 System.out.println( "receive message. msgApi:" + msgApi + " msgId:" + msgId + " bizContent:" + bizContent); JSONObject json = JSONObject.parseObject(bizContent); // 商户号 String smid = json.getString("smid"); // 审核备注信息 String memo = json.getString("memo"); // 订单id String orderId = json.getString("order_id"); // 通过订单id查询 OperatorAuthAlipay auth = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>() .eq("orderNo",orderId)); auth.setSmid(smid); auth.setAuditState(2); auth.setRefuseReason(memo); operatorAuthService.updateById(auth); Integer operatorId = auth.getOperatorId(); OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>() .eq("operatorId", operatorId)); operatorId1.setAlipayNum(smid); operatorId1.setAlipayAudit(2); operatorUserService.updateById(operatorId1); } // 直付通进件审核失败 if (StringUtils.equals(msgApi,"ant.merchant.expand.indirect.zft.rejected")){ JSONObject json = JSONObject.parseObject(bizContent); // 商户号 String orderId = json.getString("order_id"); // 官方拒绝理由 String reason = json.getString("reason"); // 通过订单id查询 OperatorAuthAlipay auth = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>() .eq("orderNo",orderId)); auth.setAuditState(3); auth.setRefuseReason(reason); operatorAuthService.updateById(auth); Integer operatorId = auth.getOperatorId(); OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>() .eq("operatorId", operatorId)); operatorId1.setAlipayAudit(3); operatorUserService.updateById(operatorId1); } } }); } /** * 支付宝支付 */ cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html
@@ -9,7 +9,6 @@ <div class="row row-lg"> <div class="col-sm-12"> <div class="row"> <div class="col-sm-3"> <#NameCon id="name" name="管理员姓名:" /> </div> @@ -44,7 +43,6 @@ </select> </div> </div> <div class="col-sm-3"> <div class="input-group"> <div class="input-group-btn open"> @@ -58,7 +56,6 @@ <option value="1">审核中</option> <option value="2">审核通过</option> <option value="3">审核失败</option> </select> </div> </div> cloud-server-other/pom.xml
@@ -104,7 +104,7 @@ <dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <version>4.8.10.ALL</version> <version>4.38.10.ALL</version> </dependency> </dependencies> cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java
@@ -6,10 +6,9 @@ import com.alipay.api.AlipayClient; import com.alipay.api.CertAlipayRequest; import com.alipay.api.DefaultAlipayClient; import com.alipay.api.domain.AlipayTradeAppPayModel; import com.alipay.api.domain.ExtendParams; import com.alipay.api.domain.RoyaltyDetailInfos; import com.alipay.api.domain.RoyaltyInfo; import com.alipay.api.domain.*; import com.alipay.api.msg.AlipayMsgClient; import com.alipay.api.msg.MsgHandler; import com.alipay.api.request.*; import com.alipay.api.response.*; import lombok.Synchronized; @@ -71,7 +70,11 @@ private String certPath = "C:\\cert\\1523106371_20211206_cert\\apiclient_cert.p12";//微信证书 public ResultUtil confirm(String smid,String code, String outTradeNo, String amount) { AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, @@ -180,7 +183,21 @@ model.setTotalAmount(amount);//付款金额 model.setProductCode("QUICK_MSECURITY_PAY"); model.setPassbackParams(passbackParams);//自定义参数 model.setSellerId(smid); SettleInfo settleInfo = new SettleInfo(); settleInfo.setSettlePeriodTime("3d"); SettleDetailInfo settleDetailInfo = new SettleDetailInfo(); settleDetailInfo.setTransInType("defaultSettle"); settleDetailInfo.setAmount(amount); List<SettleDetailInfo> settleDetailInfos = new ArrayList<>(); settleDetailInfos.add(settleDetailInfo); settleInfo.setSettleDetailInfos(settleDetailInfos); model.setSettleInfo(settleInfo); SubMerchant subMerchant = new SubMerchant(); subMerchant.setMerchantId(smid); model.setSubMerchant(subMerchant); ExtendParams extendParams = new ExtendParams(); extendParams.setRoyaltyFreeze("true");// 冻结资金 用于后续分账处理 model.setExtendParams(extendParams); request.setBizModel(model); request.setNotifyUrl(callbackPath + notifyUrl);