diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/pay/AlipayController.java b/mallinkAdmin/src/main/java/com/iformall/controller/pay/AlipayController.java index 226aeaf59..af4358ef2 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/pay/AlipayController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/pay/AlipayController.java @@ -66,7 +66,6 @@ public class AlipayController extends BaseController { */ @PostMapping(value = "/imageUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") @ApiOperation("上传图片") - @SystemControllerLog(description = "上传图片") public ResultData imageUpload(@RequestParam("file") MultipartFile multiReq ,@RequestParam Map param) { String tenantId = param.get("tenantId"); @@ -133,7 +132,6 @@ public class AlipayController extends BaseController { @ApiOperation("创建商圈会员卡") @PostMapping(value = "/merchantMemberConfig") - @SystemControllerLog(description = "支付账号-新增") public ResultData merchantMemberConfig(@RequestBody Map param) { String tenantId = param.get("tenantId"); if (StringUtils.isBlank(tenantId)) { @@ -182,7 +180,7 @@ public class AlipayController extends BaseController { //设置模板编号 wxMall.setAlipayMemberTemplateId(templateId); mallService.update(wxMall); - return new ResultData(); + return new ResultData(templateId); } } catch (Exception e) { @@ -191,10 +189,9 @@ public class AlipayController extends BaseController { } } - @ApiOperation("消息订阅") - @PostMapping(value = "/topicSubscribe") - @SystemControllerLog(description = "支付账号-新增") - public ResultData topicSubscribe(@RequestBody Map param) { + @ApiOperation("商圈交易成功信息订阅") + @PostMapping(value = "/smartDistrictTradeSuccessTopicSubscribe") + public ResultData smartDistrictTradeSuccessTopicSubscribe(@RequestBody Map param) { String tenantId = param.get("tenantId"); if (StringUtils.isBlank(tenantId)) { return new ResultData(Result.ERROR,"tenantId不能为空"); @@ -208,7 +205,35 @@ public class AlipayController extends BaseController { } try { - boolean result = aliPayUtil.smartDistrictTopicSubscribe(wxMall.getAlipayAppAuthToken()); + boolean result = aliPayUtil.smartDistrictTopicSubscribe(wxMall.getAlipayAppAuthToken(),"alipay.business.mall.trade.success"); + if (result) { + return new ResultData(); + }else { + return new ResultData(Result.ERROR,"消息订阅失败"); + } + } catch (Exception e) { + logger.error("topicSubscribe error.",e); + return new ResultData(Result.ERROR,"topicSubscribe error."); + } + } + + @ApiOperation("商圈交易退款信息订阅") + @PostMapping(value = "/smartDistrictTradeRefundTopicSubscribe") + public ResultData smartDistrictTradeRefundTopicSubscribe(@RequestBody Map param) { + String tenantId = param.get("tenantId"); + if (StringUtils.isBlank(tenantId)) { + return new ResultData(Result.ERROR,"tenantId不能为空"); + } + WxMall wxMall = mallService.getByTenantId(tenantId); + if (null == wxMall ) { + return new ResultData(Result.ERROR,"wxMall未查询到"); + } + if(StringUtils.isBlank(wxMall.getAlipayAppAuthToken())) { + return new ResultData(Result.ERROR,"wxMall alipayAppAuthToken为空"); + } + + try { + boolean result = aliPayUtil.smartDistrictTopicSubscribe(wxMall.getAlipayAppAuthToken(),"alipay.business.mall.trade.refunded"); if (result) { return new ResultData(); }else { diff --git a/mallinkAdmin/src/main/resources/doc/支付宝自助积分接入文档.docx b/mallinkAdmin/src/main/resources/doc/支付宝自助积分接入文档.docx new file mode 100644 index 000000000..70fd124fb Binary files /dev/null and b/mallinkAdmin/src/main/resources/doc/支付宝自助积分接入文档.docx differ diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/AliPayController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/AliPayController.java index 6b73dbcc3..4467cbfc5 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/AliPayController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/AliPayController.java @@ -186,7 +186,7 @@ public class AliPayController extends BaseController { &msg_method=alipay.business.mall.trade.refunded&utc_timestamp=1516797622752&version=1.1&sign_type=RSA2¬ify_id=d275fec564e62af6bedbcee73f3f05fi5x&app_id=2013121700999429&sign=I+Y/lvqYUEEc10EPdpntRhFIQ== * @throws Exception 可能产生的任何异常 */ - @PostMapping(value = "/") + @RequestMapping(value = "/") public void __Notify(@RequestBody Map paramMap) throws Exception { logger.info(">>>>>>>>alipay callback"+paramMap); } diff --git a/mallinkService/src/main/java/com/iformall/service/pay/alipay/AliPayUtil.java b/mallinkService/src/main/java/com/iformall/service/pay/alipay/AliPayUtil.java index 36c7e72c0..527d85e26 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/alipay/AliPayUtil.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/alipay/AliPayUtil.java @@ -93,7 +93,7 @@ public class AliPayUtil { return null; } - private static JSONObject getGenericResponse(String result,String key) { + private static JSONObject getGenericResponseWithCodes(String result,String key,String[] successCodes) { if (StringUtils.isBlank(result)) { log.error("alipay apiresponse ["+key+"] error. no result."+result); return null; @@ -103,8 +103,10 @@ public class AliPayUtil { JSONObject resultObject = object.getJSONObject(key); if (null != resultObject ) { String code = resultObject.getString("code"); - if (("10000".equals(code))) { - return resultObject; + for (String successCode : successCodes) { + if ((successCode.equals(code))) { + return resultObject; + } } } } @@ -112,6 +114,10 @@ public class AliPayUtil { return null; } + private static JSONObject getGenericResponse(String result,String key) { + return getGenericResponseWithCodes(result,key,new String[] {"10000"}); + } + //门店照片上传 public String merchantImageUpload(String appAuthToken,String imageName,byte[] file) { String temfolder = "/alipaytempfile/"+UUID.randomUUID(); @@ -299,10 +305,10 @@ public class AliPayUtil { } //商圈消息订阅 - public boolean smartDistrictTopicSubscribe(String appAuthToken) { + public boolean smartDistrictTopicSubscribe(String appAuthToken,String topic) { try { - AlipayOpenApiGenericResponse response = AliPayApi.topicSubscribe(getConfig(),appAuthToken, "app_auth", "alipay.open.auth.appauth.cancelled", "HTTP", "BIZ_TAG"); - JSONObject result = getGenericResponse(response.getHttpBody(),"alipay_open_app_message_topic_subscribe_response"); + AlipayOpenApiGenericResponse response = AliPayApi.topicSubscribe(getConfig(),appAuthToken, "app_auth", topic, "HTTP", "BIZ_TAG"); + JSONObject result = getGenericResponseWithCodes(response.getHttpBody(),"alipay_open_app_message_topic_subscribe_response",new String[] {"40004","10000"}); if (null != result) { return true; } @@ -335,17 +341,17 @@ public class AliPayUtil { return buffer; } -// public static void main(String[] args) { -// AliPayUtil util = new AliPayUtil(); -//// String token = getAppAuthToken("Pfbe94a5103a0414db99ce865204ee63"); -//// System.out.println(token); -// //File file = new File("C://logo-img.png"); -// //System.out.println(util.merchantImageUpload("202104BB054c88e950ba4513854e4275ff71cF63", "aa.jpg", File2byte(file))); -// //System.out.println(util.createSmartDistrictMemberCardModel("202104BB054c88e950ba4513854e4275ff71cF63", "会员卡", "OKJx3oOPTUOaINs0AQ_qMgAAACMAAQQD", "OKJx3oOPTUOaINs0AQ_qMgAAACMAAQQD")); -// //System.out.println(util.setSmartDistrictMemberCardModelConfig("202104BB054c88e950ba4513854e4275ff71cF63", "20210417000000002702655000300637")); -// //System.out.println(util.getSmartDistrictMemberCardUrl("202104BB054c88e950ba4513854e4275ff71cF63", "20210417000000002702655000300637", "https://ctest.malls.iformall.com/C/api/alipay/callback", "123")); -// //System.out.println(util.getH5SmartDistrictMallVipPointsUrl("2021002139648762", "https://ctest.malls.iformall.com/C/api/alipay/callback", "123")); -// System.out.println(util.smartDistrictTopicSubscribe("202104BB054c88e950ba4513854e4275ff71cF63")); -// } + public static void main(String[] args) { + AliPayUtil util = new AliPayUtil(); +// String token = getAppAuthToken("Pfbe94a5103a0414db99ce865204ee63"); +// System.out.println(token); + //File file = new File("C://logo-img.png"); + //System.out.println(util.merchantImageUpload("202104BB054c88e950ba4513854e4275ff71cF63", "aa.jpg", File2byte(file))); + //System.out.println(util.createSmartDistrictMemberCardModel("202104BB054c88e950ba4513854e4275ff71cF63", "会员卡", "OKJx3oOPTUOaINs0AQ_qMgAAACMAAQQD", "OKJx3oOPTUOaINs0AQ_qMgAAACMAAQQD")); + //System.out.println(util.setSmartDistrictMemberCardModelConfig("202104BB054c88e950ba4513854e4275ff71cF63", "20210417000000002702655000300637")); + //System.out.println(util.getSmartDistrictMemberCardUrl("202104BB054c88e950ba4513854e4275ff71cF63", "20210417000000002702655000300637", "https://ctest.malls.iformall.com/C/api/alipay/callback", "123")); + //System.out.println(util.getH5SmartDistrictMallVipPointsUrl("2021002139648762", "https://ctest.malls.iformall.com/C/api/alipay/callback", "123")); + System.out.println(util.smartDistrictTopicSubscribe("202104BB054c88e950ba4513854e4275ff71cF63","alipay.business.mall.trade.success")); + } }