Przeglądaj źródła

Merge remote-tracking branch 'origin/master'

hmp 4 lat temu
rodzic
commit
d6f88065d7

+ 1 - 0
src/main/java/org/springblade/gateway/mall_gateway/service/impl/AppMallServiceImpl.java

@@ -90,6 +90,7 @@ public class AppMallServiceImpl extends ServiceImpl<MallMapper, Mall> implements
 			account.setType(AppConstant.PLATFORM.MALL.name());
 			accountService.saveOrUpdate(account);
 		}
+
 		return this.saveOrUpdate(mallDTO);
 	}
 

+ 65 - 51
src/main/java/org/springblade/payment/plugin/YeePayPlugin.java

@@ -2,34 +2,34 @@ package org.springblade.payment.plugin;
 
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.IdUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springblade.common.cache.PaymentCache;
-import org.springblade.common.enums.AppConstant;
 import org.springblade.common.enums.OrderType;
 import org.springblade.common.enums.PaymentType;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.ldt.bills.entity.Bills;
-import org.springblade.ldt.bills.entity.WithdrawRec;
 import org.springblade.ldt.bills.service.IBillsService;
 import org.springblade.ldt.bills.service.IWithdrawRecService;
+import org.springblade.ldt.shop.entity.Shop;
+import org.springblade.ldt.shop.service.IShopService;
 import org.springblade.ldt.user.service.ILoginUserService;
 import org.springblade.payment.entity.PayParam;
 import org.springblade.payment.entity.SuccessParams;
 import org.springblade.payment.service.impl.PaymentService;
-import org.springblade.yeePay.entity.CreateCodeDto;
+import org.springblade.yeePay.common.YeePayConst;
+import org.springblade.yeePay.common.YeepayApiConstant;
 import org.springblade.yeePay.entity.InitOrderDto;
-import org.springblade.yeePay.entity.TransferDto;
+import org.springblade.yeePay.entity.MerchantInfo;
+import org.springblade.yeePay.entity.saas.PayLinkOrderDto;
 import org.springblade.yeePay.service.YeePayService;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.springblade.yeePay.service.YeepaySaasService;
 import org.springframework.stereotype.Component;
 import javax.servlet.http.HttpServletRequest;
-import java.time.LocalDateTime;
-import java.util.Objects;
+
 
 /**
  * @author: lianghanqiang
@@ -38,31 +38,33 @@ import java.util.Objects;
  */
 @Component
 @Slf4j
+@AllArgsConstructor
 public class YeePayPlugin implements Payment {
 
-	@Autowired
 	YeePayService yeePayService;
-	@Autowired
 	IBillsService billsService;
-	@Autowired
 	ILoginUserService loginUserService;
-	@Autowired
 	PaymentService paymentService;
-	@Autowired
+	YeepaySaasService yeepaySaasService;
 	IWithdrawRecService withdrawRecService;
+	YeePayConst yeePayConst;
+	IShopService shopService;
 
 
 	@Override
 	public R nativePay(PayParam payParam) {
-//		Bills bills = billsService.getById(payParam.getOrderId());
-//		return yeePayService.createCode(CreateCodeDto.builder()
-//			.goodsName(bills.getTitle())
-//			.amount(bills.getPrice().doubleValue())
-//			.expiredTime(DateUtil.formatDateTime(bills.getExTime()))
-//			.notifyUrl(callbackUrl(PaymentType.YEE_PAY.name()))
-//			.scene("OFFLINE")
-//			.build());
-		return null;
+		Bills bills = billsService.getById(payParam.getOrderId());
+
+		PayLinkOrderDto payLinkOrderDto = PayLinkOrderDto.builder()
+			.goodsName(bills.getTitle())
+			.amount(bills.getPrice())
+			.expiredTime(DateUtil.formatDateTime(bills.getExTime()))
+			.notifyUrl(callbackUrl(PaymentType.YEE_PAY.name()))
+			.scene(YeepayApiConstant.sceneType.OFFLINE.name())
+			.build();
+
+		orderTypeHandle(payLinkOrderDto,OrderType.valueOf(bills.getType()),bills);
+		return R.data(yeepaySaasService.payLinkOrder(payLinkOrderDto));
 	}
 
 	@Override
@@ -140,34 +142,46 @@ public class YeePayPlugin implements Payment {
 	@Override
 	public R miniProgram(PayParam payParam) {
 
-//		//查询订单状态
-//		Bills bill = getOrderDetail(payParam,billsService);
-//		Assert.notNull(bill,"订单查询失败,无此订单信息!");
-//
-//
-//		//封装回调参数
-//		SuccessParams successParams = SuccessParams
-//			.builder()
-//			.bills(bill)
-//			.orderType(OrderType.valueOf(bill.getType()).name())
-//			.build();
-//
-//		PaymentCache.putSuccessParams(Convert.toStr(bill.getId()),successParams);
-//
-//		return yeePayService.initOrder(
-//			InitOrderDto.builder()
-//				.payWay("MINI_PROGRAM")
-//				.channel("WECHAT")
-//				.scene("OFFLINE")
-//				.goodsName(bill.getTitle())
-//				.orderId(Convert.toStr(bill.getId()))
-//				.orderAmount(bill.getPrice().doubleValue())
-//				.appId(bill.getAppid())
-//				.userId(bill.getOpenid())
-//				.userIp("127.0.0.1")
-//				.notifyUrl(callbackUrl(PaymentType.YEE_PAY.name()))
-//				.build()
-//		);
-		return null;
+		//查询订单状态
+		Bills bill = getOrderDetail(payParam,billsService);
+		Assert.notNull(bill,"订单查询失败,无此订单信息!");
+
+
+		//封装回调参数
+		SuccessParams successParams = SuccessParams
+			.builder()
+			.bills(bill)
+			.orderType(OrderType.valueOf(bill.getType()).name())
+			.build();
+
+		PaymentCache.putSuccessParams(Convert.toStr(bill.getId()),successParams);
+
+		InitOrderDto initOrderDto = InitOrderDto.builder()
+			.payWay(YeepayApiConstant.payWayType.MINI_PROGRAM.name())
+			.channel(YeepayApiConstant.channelType.WECHAT.name())
+			.scene(YeepayApiConstant.sceneType.OFFLINE.name())
+			.goodsName(bill.getTitle())
+			.orderId(Convert.toStr(bill.getId()))
+			.orderAmount(bill.getPrice().doubleValue())
+			.appId(bill.getAppid())
+			.userId(bill.getOpenid())
+			.userIp("127.0.0.1")
+			.fundProcessType(YeepayApiConstant.fundProcessType.DELAY_SETTLE.name())
+			.notifyUrl(callbackUrl(PaymentType.YEE_PAY.name()))
+			.build();
+
+		orderTypeHandle(initOrderDto,OrderType.valueOf(bill.getType()),bill);
+		return R.data(yeepaySaasService.aggPrepay(initOrderDto));
+	}
+
+	private void orderTypeHandle(MerchantInfo merchantInfo, OrderType orderType, Bills bills){
+		switch (orderType){
+			case USER_PAY:
+				Shop shop = shopService.getById(bills.getReceiveId());
+				merchantInfo.setParentMerchantNo(yeePayConst.getPlatformServiceNo());
+				merchantInfo.setMerchantNo(shop.getMerchantNo());
+				break;
+			default:
+		}
 	}
 }

+ 16 - 1
src/main/java/org/springblade/yeePay/api/YeepayCommon.java

@@ -14,7 +14,22 @@ public enum  YeepayCommon {
 	/**
 	 *  添加图片到易宝服务器
 	 * */
-	ADD_FILE_TO_YEEPAY("/yos/v1.0/sys/merchant/qual/upload","POST");
+	ADD_FILE_TO_YEEPAY("/yos/v1.0/sys/merchant/qual/upload","POST"),
+
+	/**
+	 *  添加图片到易宝服务器
+	 * */
+	ADD_WECHAT_CONFIG("/rest/v2.0/aggpay/wechat-config/add","POST"),
+
+	/**
+	 *  添加图片到易宝服务器
+	 * */
+	QUERY_WECHAT_CONFIG("/rest/v2.0/aggpay/wechat-config/query","GET"),
+
+
+
+
+	;
 
 	String requestUrl;
 	String requestMethods;

+ 7 - 0
src/main/java/org/springblade/yeePay/common/YeepayApiConstant.java

@@ -133,6 +133,13 @@ public interface YeepayApiConstant {
 	 */
 	enum payWayType {
 		MERCHANT_SCAN,//付款码支付
+		USER_SCAN,//用户扫码
+		MINI_PROGRAM,//小程序支付
+		WECHAT_OFFIACCOUNT,//微信公众号
+		ALIPAY_LIFE,//支付宝生活号
+		JS_PAY,//JS支付
+		SDK_PAY,//SDK支付
+		H5_PAY,//H5支付
 	}
 
 	/**

+ 25 - 4
src/main/java/org/springblade/yeePay/controller/YeepayController.java

@@ -3,10 +3,9 @@ package org.springblade.yeePay.controller;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springblade.core.tool.api.R;
-import org.springblade.yeePay.entity.saas.AuthStateQueryDto;
-import org.springblade.yeePay.entity.saas.InvitationDto;
-import org.springblade.yeePay.entity.saas.WechatApplyDto;
-import org.springblade.yeePay.entity.saas.WechatAuthDto;
+import org.springblade.yeePay.entity.ConfigAppDto;
+import org.springblade.yeePay.entity.InitOrderDto;
+import org.springblade.yeePay.entity.saas.*;
 import org.springblade.yeePay.service.YeepayCommonService;
 import org.springblade.yeePay.service.YeepaySaasService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -58,7 +57,29 @@ public class YeepayController {
 		return R.data(yeepaySaasService.queryInvitation(requestId));
 	}
 
+	@PostMapping("orderInit")
+	@ApiOperation("聚合支付下单")
+	public R orderInit(@RequestBody InitOrderDto initOrderDto){
+		return R.data(yeepaySaasService.aggPrepay(initOrderDto));
+	}
+
+	@PostMapping("payLinkOrder")
+	@ApiOperation("聚合码支付下单")
+	public R payLinkOrder(@RequestBody PayLinkOrderDto payLinkOrderDto){
+		return R.data(yeepaySaasService.payLinkOrder(payLinkOrderDto));
+	}
 
+	@PostMapping("configApp")
+	@ApiOperation("配置小程序")
+	public R configApp(@RequestBody ConfigAppDto configAppDto){
+		return R.data(yeepayCommonService.configApp(configAppDto));
+	}
+
+	@GetMapping("queryAppStatus")
+	@ApiOperation("查询小程序配置信息")
+	public R queryAppStatus(String appIdType,String parentMerchantNo,String merchantNo){
+		return R.data(yeepayCommonService.queryApp(parentMerchantNo,merchantNo,appIdType));
+	}
 
 	@GetMapping("/upload")
 	@ApiOperation("上传文件")

+ 2 - 0
src/main/java/org/springblade/yeePay/entity/ConfigAppDto.java

@@ -16,6 +16,8 @@ import javax.validation.constraints.NotBlank;
 public class ConfigAppDto {
 	String [] tradeAuthDirList;
 	AppInfo [] appIdList;
+	String parentMerchantNo;
+	String merchantNo;
 
 		@ApiModel("App信息实体类,包括小程序以及公众号")
 		@Data

+ 2 - 13
src/main/java/org/springblade/yeePay/entity/saas/PayLinkOrderDto.java

@@ -7,6 +7,7 @@ import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import org.springblade.yeePay.common.YeepayApiConstant;
+import org.springblade.yeePay.entity.MerchantInfo;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import javax.validation.constraints.NotBlank;
@@ -17,20 +18,8 @@ import java.math.BigDecimal;
 @Data
 @Builder
 @ApiModel("生成聚合订单码入参")
-public class PayLinkOrderDto {
-	/**
-	 * 发起方商户编号。
-	 * 标准商户收付款方案中此参数与收款商户编号一致;
-	 * 平台商户收付款方案中此参数为平台商商户编号;
-	 * 服务商解决方案中,①标准商户收款时,该参数为标准商户商编 ②平台商收款或平台商入驻商户收款时,该参数为平台商商编。
-	 */
-	@NotBlank
-	@ApiModelProperty(value = "发起方商户编号", required = true)
-	private String parentMerchantNo;
+public class PayLinkOrderDto extends MerchantInfo {
 
-	@NotBlank
-	@ApiModelProperty(value = "收款商户商编", required = true)
-	private String merchantNo;
 
 	@NotBlank
 	@ApiModelProperty(value = "商户收款请求号。可包含字母、数字、下划线;需保证在商户端不重复", required = true)

+ 1 - 200
src/main/java/org/springblade/yeePay/service/YeePayService.java

@@ -16,6 +16,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.bouncycastle.jcajce.provider.asymmetric.ec.BCECPrivateKey;
 import org.springblade.core.tool.api.R;
 import org.springblade.wx.config.ConfigForClient;
+import org.springblade.yeePay.api.YeepayCommon;
 import org.springblade.yeePay.common.YeePayConst;
 import org.springblade.yeePay.entity.*;
 import org.springblade.yeePay.utils.Sm4GcmUtils;
@@ -36,69 +37,9 @@ public class YeePayService {
 	ConfigForClient configForClient;
 	@Autowired
 	YeePayConst yeePayConst;
-	@Autowired
-	private ApplicationEventPublisher eventPublisher;
 
 	YopClient yopClient = YopClientBuilder.builder().build();
 
-//	/**
-//	 *	易宝 公众号配置
-//	 * @param configAppDto
-//	 * @return*/
-//	public R configApp(ConfigAppDto configAppDto) {
-//		YopRequest request = new YopRequest(yeePayConst.getWeChatConfigAddUrl(), "POST");
-//
-//		addMerchantNo(request);
-//		if(configAppDto.getAppIdList()!=null){
-//			request.addParameter("appIdList", JSON.toJSONString(configAppDto.getAppIdList()));
-//		}
-//		if(configAppDto.getTradeAuthDirList()!=null){
-//			request.addParameter("tradeAuthDirList", JSON.toJSONString(configAppDto.getTradeAuthDirList()));
-//		}
-//		try {
-//			YopResponse response = yopClient.request(request);
-//			return R.data(JSON.parseObject(response.getStringResult()));
-//		} catch (YopClientException e) {
-//			e.printStackTrace();
-//		}
-//		return R.fail("配置失败");
-//	}
-
-//	/**
-//	 *	易宝 查询公众号配置
-//	 *
-//	 * @param appIdType
-//	 * @return*/
-//	public R queryApp(String appIdType) {
-//		YopRequest request = new YopRequest(yeePayConst.getWeChatConfigQueryUrl(), "GET");
-//		if(appIdType!=null){
-//			request.addParameter("appIdType",appIdType);
-//		}
-//		addMerchantNo(request);
-//		try {
-//			YopResponse response = yopClient.request(request);
-//			return R.data(JSON.parseObject(response.getStringResult()));
-//		} catch (YopClientException e) {
-//			e.printStackTrace();
-//		}
-//		return R.fail("查询失败");
-//	}
-
-//	/**
-//	 * 	易宝 统一下单
-//	 *
-//	 * @param initOrderDto
-//	 * @return*/
-//	public R initOrder(InitOrderDto initOrderDto){
-//		YopRequest request = new YopRequest(yeePayConst.getPrePayUrl(), "POST");
-////		initOrderDto.setNotifyUrl(yeePayConst.getPayNotify());
-//		addMerchantNo(request);
-//		YeepayUtils.addParamsFromObj(initOrderDto,request,initOrderDto.getClass());
-//		return execute(request);
-//	}
-
-
-
 	/**
 	 * 	解析解密支付通知数据
 	 * @param response 加密数据
@@ -162,134 +103,6 @@ public class YeePayService {
 	}
 
 
-//	/**
-//	 *	代付:转账到银行卡(单笔出款)
-//	 * @param transferDto 转账信息
-//	 * */
-//	public R transferToCard(TransferDto transferDto) {
-//		YopRequest request = new YopRequest(yeePayConst.getTransferOrderUrl(), "POST");
-//		transferDto.setNotifyUrl(yeePayConst.getTransferNotify());
-//		addMerchantNo(request);
-////		request.addParameter("requestNo", IdUtil.simpleUUID());
-//		YeepayUtils.addParamsFromObj(transferDto,request, transferDto.getClass());
-//
-//		return execute(request);
-//	}
-
-//	/**
-//	 *	代付:转账到银行卡(批量出款)
-//	 * @param batchTransferDto 转账信息
-//	 * */
-//	public R batchTransferToCard(BatchTransferDto batchTransferDto) {
-//		YopRequest request = new YopRequest(yeePayConst.getBatchTransferUrl(), "GET");
-//		batchTransferDto.setNotifyUrl(yeePayConst.getBatchTransferNotify());
-//		batchTransferDto.setParentMerchantNo(yeePayConst.getParentMerchantNo());
-//		batchTransferDto.setMerchantNo(yeePayConst.getMerchantNo());
-////		RequestConfig requestConfig = request.getRequestConfig();
-//		request.setContent(JSONObject.toJSONString(batchTransferDto));
-//		return execute(request);
-//	}
-//
-//	private R execute(YopRequest request){
-//		YopResponse response = null;
-//		try {
-//			response = yopClient.request(request);
-//			return R.data(JSON.parseObject(response.getStringResult()));
-//		} catch (YopClientException e) {
-//			e.printStackTrace();
-//		}
-//		return R.fail("操作失败");
-//	}
-
-//	/**
-//	 * 	转账订单查询
-//	 * @param requestNo 易宝订单号
-//	 * */
-//	public R queryTransferOrder(String requestNo ){
-//		YopRequest request = new YopRequest(yeePayConst.getQueryTransferOrderUrl(), "GET");
-//		addMerchantNo(request);
-//		request.addParameter("requestNo", requestNo);
-//		return execute(request);
-//	}
-
-
-//	private void addMerchantNo(YopRequest request){
-//		request.addParameter("parentMerchantNo",yeePayConst.getParentMerchantNo());
-//		request.addParameter("merchantNo",yeePayConst.getMerchantNo());
-//	}
-
-
-//
-//	/**
-//	 * 	查询账户余额
-//	 * */
-//	public R queryBalance() {
-//		YopRequest request = new YopRequest(yeePayConst.getQueryBalanceUrl(), "GET");
-//		request.addParameter("merchantNo", yeePayConst.getMerchantNo());
-//		return execute(request);
-//	}
-
-//	/**
-//	 * 	生成订单聚合码
-//	 * @param createCodeDto
-//	 * */
-//	public R createCode(CreateCodeDto createCodeDto) {
-//		YopRequest request = new YopRequest(yeePayConst.getCreateCodeUrl(), "POST");
-//		addMerchantNo(request);
-//		YeepayUtils.addParamsFromObj(createCodeDto,request,createCodeDto.getClass());
-//		return execute(request);
-//	}
-
-
-//
-//	/**
-//	 * 	网关--充值
-//	 * @param payGateWayDto 网关入参实体
-//	 * */
-//	public R payByGateWay(PayGateWayDto payGateWayDto) {
-//		YopRequest request = new YopRequest(yeePayConst.getPayGateWayUrl(), "POST");
-//		payGateWayDto.setNotifyUrl(yeePayConst.getGatewayNotify());
-//		addMerchantNo(request);
-//		YeepayUtils.addParamsFromObj(payGateWayDto,request,payGateWayDto.getClass());
-//		YopResponse response = null;
-//		String token = null;
-//		try {
-//			response = yopClient.request(request);
-//			token= JSON.parseObject(response.getStringResult()).getString("token");
-//		} catch (YopClientException e) {
-//			e.printStackTrace();
-//			return R.fail("付款失败!");
-//		}
-//		Assert.notNull(token,"获取订单token失败,下单异常");
-//		List<KeyAndValue> params = new ArrayList<>();
-//		String timeStr = System.currentTimeMillis() / 1000 + "";
-//		params.add(KeyAndValue.builder().key("appKey").value(yeePayConst.getAppKey()).build());
-//		params.add(KeyAndValue.builder().key("merchantNo").value(yeePayConst.getMerchantNo()).build());
-//		params.add(KeyAndValue.builder().key("token").value(token).build());
-//		params.add(KeyAndValue.builder().key("timestamp").value(timeStr).build());
-//		params.add(KeyAndValue.builder().key("directPayType").value("").build());
-//		params.add(KeyAndValue.builder().key("cardType").value("").build());
-//		params.add(KeyAndValue.builder().key("userNo").value("").build());
-//		params.add(KeyAndValue.builder().key("userType").value("").build());
-//		params.add(KeyAndValue.builder().key("ext").value("").build());
-//
-//		String payUrl = "https://cash.yeepay.com/cashier/std?" +
-//			"appKey="+yeePayConst.getAppKey()+
-//			"&merchantNo=" + yeePayConst.getMerchantNo()+
-//			"&token=" +token+
-//			"&timestamp=" +timeStr+
-//			"&directPayType=" +
-//			"&cardType=" +
-//			"&userNo=" +
-//			"&userType=" +
-//			"&ext=" +
-//			"&sign="+this.sign(params);
-//		return R.data(JSONObject.parseObject("{\n" +
-//			" \"payUrl\": \""+payUrl+"\"\n" +
-//			"}"));
-//
-//
-//	}
 
 	public static void main(String[] args) throws CertificateException, NoSuchProviderException {
 		YeePayService yeePayService = new YeePayService();
@@ -309,17 +122,5 @@ public class YeePayService {
 		return sign;
 	}
 
-//
-//	/**
-//	 * 	扫码支付
-//	 * @param chargeDto
-//	 * */
-//	public R chargePay(ChargeDto chargeDto) {
-//		YopRequest request = new YopRequest(yeePayConst.getChargeUrl(), "POST");
-//		addMerchantNo(request);
-//		request.addParameter("notifyUrl",yeePayConst.getChargeNotify());
-//		YeepayUtils.addParamsFromObj(chargeDto,request,chargeDto.getClass());
-//		return execute(request);
-//	}
 
 }

+ 45 - 0
src/main/java/org/springblade/yeePay/service/YeepayCommonService.java

@@ -3,14 +3,18 @@ package org.springblade.yeePay.service;
 import cn.hutool.http.HttpRequest;
 import cn.hutool.http.HttpResponse;
 import com.alibaba.fastjson.JSON;
+import com.yeepay.yop.sdk.exception.YopClientException;
 import com.yeepay.yop.sdk.service.common.YopClient;
 import com.yeepay.yop.sdk.service.common.YopClientBuilder;
 import com.yeepay.yop.sdk.service.common.request.YopRequest;
 import com.yeepay.yop.sdk.service.common.response.YopResponse;
 import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.tool.api.R;
 import org.springblade.yeePay.api.YeepayCommon;
 import org.springblade.yeePay.common.YeePayConst;
+import org.springblade.yeePay.entity.ConfigAppDto;
+import org.springblade.yeePay.utils.YeepayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
@@ -69,4 +73,45 @@ public class YeepayCommonService {
 
 		return JSON.parseObject(resString).getString("merQualUrl");
 	}
+
+	/**
+	 *	易宝 公众号配置
+	 * @param configAppDto
+	 * @return*/
+	public R configApp(ConfigAppDto configAppDto) {
+		YopRequest request = YeepayCommon.ADD_WECHAT_CONFIG.buildRequest();
+		YeepayUtils.addParamsFromObj(configAppDto,request,ConfigAppDto.class);
+		try {
+			YopResponse response = yopClient.request(request);
+			return R.data(JSON.parseObject(response.getStringResult()));
+		} catch (YopClientException e) {
+			e.printStackTrace();
+		}
+		return R.fail("配置失败");
+	}
+
+	/**
+	 *	易宝 查询公众号配置
+	 *
+	 *
+	 * @param parentMerchantNo
+	 * @param merchantNo
+	 * @param appIdType
+	 * @return*/
+	public R queryApp(String parentMerchantNo, String merchantNo, String appIdType) {
+		YopRequest request = YeepayCommon.QUERY_WECHAT_CONFIG.buildRequest();
+		request.addParameter("parentMerchantNo",parentMerchantNo);
+		request.addParameter("merchantNo",merchantNo);
+		if(appIdType!=null){
+			request.addParameter("appIdType",appIdType);
+		}
+		try {
+			YopResponse response = yopClient.request(request);
+			return R.data(JSON.parseObject(response.getStringResult()));
+		} catch (YopClientException e) {
+			e.printStackTrace();
+		}
+		return R.fail("查询失败");
+	}
+
 }

+ 12 - 5
src/main/java/org/springblade/yeePay/utils/YeepayUtils.java

@@ -3,9 +3,8 @@ package org.springblade.yeePay.utils;
 import com.alibaba.fastjson.JSON;
 import com.yeepay.yop.sdk.service.common.request.YopRequest;
 
-import java.util.Arrays;
-import java.util.Objects;
-import java.util.Optional;
+import java.lang.reflect.Field;
+import java.util.*;
 
 /**
  * @author: lianghanqiang
@@ -20,8 +19,16 @@ public class  YeepayUtils {
 	 * @param request 所需添加参数请求
 	 * @param clazz */
 	public static void addParamsFromObj(Object obj, YopRequest request, Class clazz){
-		Arrays.stream(clazz.getDeclaredFields())
-			.forEach(field -> {
+
+
+		//获取包含父类在内的所有属性
+		List<Field> fieldList = new ArrayList<>();
+		while (clazz != null) {
+			fieldList.addAll(new ArrayList<>(Arrays.asList(clazz.getDeclaredFields())));
+			clazz = clazz.getSuperclass();
+		}
+
+			(fieldList).stream().forEach(field -> {
 					field.setAccessible(true);
 					try {
 						Object paramValue = field.get(obj);

+ 5 - 0
src/main/resources/processes/mall.bpmn20.xml

@@ -26,6 +26,7 @@
     </sequenceFlow>
     <sequenceFlow id="sid-6B163AD6-8471-4C6A-A660-14E4B40C8544" name="入驻成功" sourceRef="sid-3EF8A9A9-5882-4287-A655-294674647A6E" targetRef="sid-369DD664-1B1B-4649-A6CB-615B2561BECE"></sequenceFlow>
     <sequenceFlow id="sid-9A785468-6976-4B3C-A8F5-CE49D6086297" sourceRef="startEvent1" targetRef="sid-76CE154F-B67C-4302-AFBA-A6F0CBF0B180"></sequenceFlow>
+    <sequenceFlow id="sid-0CBC1D6D-FE45-49F5-9D88-9A314395B4D7" name="修改资料" sourceRef="sid-66E1BB76-5EE7-4702-B205-6CEB87416CB6" targetRef="sid-76CE154F-B67C-4302-AFBA-A6F0CBF0B180"></sequenceFlow>
   </process>
   <bpmndi:BPMNDiagram id="BPMNDiagram_mall">
     <bpmndi:BPMNPlane bpmnElement="mall" id="BPMNPlane_mall">
@@ -56,6 +57,10 @@
         <omgdi:waypoint x="635.0" y="159.94999968266256"></omgdi:waypoint>
         <omgdi:waypoint x="635.0" y="345.0"></omgdi:waypoint>
       </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="sid-0CBC1D6D-FE45-49F5-9D88-9A314395B4D7" id="BPMNEdge_sid-0CBC1D6D-FE45-49F5-9D88-9A314395B4D7">
+        <omgdi:waypoint x="429.95000000000005" y="405.0"></omgdi:waypoint>
+        <omgdi:waypoint x="584.9999999997791" y="405.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge bpmnElement="sid-6B163AD6-8471-4C6A-A660-14E4B40C8544" id="BPMNEdge_sid-6B163AD6-8471-4C6A-A660-14E4B40C8544">
         <omgdi:waypoint x="894.9499999999999" y="385.0"></omgdi:waypoint>
         <omgdi:waypoint x="1035.0" y="385.0"></omgdi:waypoint>

+ 1 - 1
src/main/resources/wxConfig.properties

@@ -16,7 +16,7 @@
 
 #联兑通客户端
 wx.client.appId = wx9ad53e8c83ae1a51
-wx.client.appSecret = fe94990e1f90f65df8bb47e530697906
+wx.client.appSecret = 9b9b5eafad345f5664e5e373b8cae10a
 
 
 wx.shop.appId = wx2db9c41e85d5a4fc