wuxw 3 anni fa
parent
commit
5e7d78b460

+ 1 - 1
java110-bean/src/main/java/com/java110/dto/ownerCarOpenUser/OwnerCarOpenUserDto.java

@@ -16,7 +16,7 @@ import java.util.Date;
 public class OwnerCarOpenUserDto extends PageDto implements Serializable {
 
     public static final String OPEN_TYPE_WECHAT = "WECHAT";
-    public static final String OPEN_TYPE_ALIPAY = "ALI";
+    public static final String OPEN_TYPE_ALIPAY = "ALIPAY";
 
     private String openId;
     private String nickname;

+ 58 - 0
service-acct/src/main/java/com/java110/acct/cmd/alipay/GetOpenIdFromAliPayCmd.java

@@ -0,0 +1,58 @@
+package com.java110.acct.cmd.alipay;
+
+import com.alibaba.fastjson.JSONObject;
+import com.alipay.api.AlipayClient;
+import com.alipay.api.DefaultAlipayClient;
+import com.alipay.api.request.AlipaySystemOauthTokenRequest;
+import com.alipay.api.request.AlipayUserInfoShareRequest;
+import com.alipay.api.response.AlipaySystemOauthTokenResponse;
+import com.alipay.api.response.AlipayUserInfoShareResponse;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.factory.CommunitySettingFactory;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.vo.ResultVo;
+
+import java.text.ParseException;
+
+
+@Java110Cmd(serviceCode = "alipay.getOpenIdFromAliPay")
+public class GetOpenIdFromAliPayCmd extends Cmd {
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        Assert.hasKeyAndValue(reqJson, "authCode", "未包含authCode");
+        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区ID");
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        String communityId = reqJson.getString("communityId");
+        String openId = "";
+        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
+                CommunitySettingFactory.getValue(communityId, "APP_ID"),
+                CommunitySettingFactory.getRemark(communityId, "APP_PRIVATE_KEY"),
+                "json",
+                "UTF-8",
+                CommunitySettingFactory.getRemark(communityId, "ALIPAY_PUBLIC_KEY"),
+                "RSA2");
+        AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
+        request.setCode(reqJson.getString("authCode"));
+        request.setGrantType("authorization_code");
+        try {
+            AlipaySystemOauthTokenResponse oauthTokenResponse = alipayClient.execute(request);
+            AlipayUserInfoShareRequest requestUserInfo = new AlipayUserInfoShareRequest();
+            AlipayUserInfoShareResponse userinfoShareResponse = alipayClient.execute(requestUserInfo, oauthTokenResponse.getAccessToken());
+            openId = userinfoShareResponse.getUserId();
+        } catch (Exception e) {
+            //处理异常
+            e.printStackTrace();
+            throw new CmdException("获取用户信息失败"+e);
+        }
+
+        context.setResponseEntity(ResultVo.createResponseEntity(openId));
+
+    }
+}

+ 1 - 1
service-common/src/main/java/com/java110/common/cmd/machine/GetCarMachineQrCodeUrl.java

@@ -78,7 +78,7 @@ public class GetCarMachineQrCodeUrl extends Cmd {
         smallWeChatDto.setWeChatType(SmallWeChatDto.WECHAT_TYPE_PUBLIC);
         List<SmallWeChatDto> smallWeChatDtos = smallWeChatInnerServiceSMOImpl.querySmallWeChats(smallWeChatDto);
         String ownerUrl = MappingCache.getValue("OWNER_WECHAT_URL");
-        ownerUrl += ("/#/pages/tempParkingFee/tempParkingFee?paId=" + getPaIds(reqJson));
+        ownerUrl += ("/#/pages/tempParkingFee/tempParkingFee?paId=" + getPaIds(reqJson)+"&communityId="+reqJson.getString("communityId"));
         if (smallWeChatDtos != null && smallWeChatDtos.size() > 0) {
             ownerUrl += ("&appId=" + smallWeChatDtos.get(0).getAppId());
         }