Kaynağa Gözat

增加支付接口,调整代码

刘韬 5 yıl önce
ebeveyn
işleme
a3c6a9f8d2

+ 62 - 24
PacsOnline_Wechat_Patient/src/main/java/com/zskk/controller/WeixinApiController.java

@@ -1,12 +1,17 @@
 package com.zskk.controller;
 
+import com.google.protobuf.DescriptorProtos.FieldOptions.JSType;
 import com.jfinal.kit.PropKit;
 import com.jfinal.weixin.sdk.api.AccessTokenApi;
 import com.jfinal.weixin.sdk.api.ApiConfigKit;
 import com.jfinal.weixin.sdk.api.ApiResult;
 import com.jfinal.weixin.sdk.api.CallbackIpApi;
 import com.jfinal.weixin.sdk.api.CustomServiceApi;
+import com.jfinal.weixin.sdk.api.JsTicket;
+import com.jfinal.weixin.sdk.api.JsTicketApi;
+import com.jfinal.weixin.sdk.api.JsTicketApi.JsApiType;
 import com.jfinal.weixin.sdk.api.MenuApi;
+import com.jfinal.weixin.sdk.api.PaymentApi;
 import com.jfinal.weixin.sdk.api.QrcodeApi;
 import com.jfinal.weixin.sdk.api.ShorturlApi;
 import com.jfinal.weixin.sdk.api.TemplateMsgApi;
@@ -19,26 +24,22 @@ import com.zskk.model.Report;
 public class WeixinApiController extends ApiController {
 
     /**
-     * 为WeixinConfig onLineTokenUrl处提供AccessToken
-     * 
-     * 此处是为了开发测试和生产环境同时使用一套appId时为开发测试环境提供AccessToken
-     * 
-     * 设计初衷:https://www.oschina.net/question/2702126_2237352
-     */
-    public void getToken() {
-    	try {
-//          String key = getPara("key");
-//          String json = ApiConfigKit.getAccessTokenCache().get(key);
-    		String json = AccessTokenApi.getAccessToken().getAccessToken();
-          renderText(json);
+	 * 为WeixinConfig onLineTokenUrl处提供AccessToken
+	 * 
+	 * 此处是为了开发测试和生产环境同时使用一套appId时为开发测试环境提供AccessToken
+	 * 
+	 * 设计初衷:https://www.oschina.net/question/2702126_2237352
+	 */
+	public void getToken() {
+		try {
+			String json = AccessTokenApi.getAccessToken().getAccessToken();
+			renderText(json);
 		} catch (Exception e) {
 			// TODO: handle exception
-	          renderText(e.toString());
-
+			renderText(e.toString());
 		}
+	}
 
-    }
-    
     /**
      * 获取公众号菜单
      */
@@ -169,20 +170,26 @@ public class WeixinApiController extends ApiController {
 		case "辽宁省电子胶片平台":
 			appId = PropKit.get("appId_ln");
 			break;
+			
+		case "河南省电子胶片平台":
+			appId = PropKit.get("appId_hn");
+			break;
 
 		default:
 			appId = PropKit.get("appId_zskk");
 			break;
 		}
-		redirect("http://wechat.pacsonline.cn/wx_patient/api/getQrcode?appId=" + appId + "&reportId=" + reportId);
+//		redirect("http://wechat.pacsonline.cn/wx_patient/api/getQrcode?appId=" + appId + "&reportId=" + reportId);
+        ApiConfigKit.setThreadLocalAppId(appId);
+        getQrcode(reportId);
     }
     
     /**
      * 获取参数二维码
      */
-    public void getQrcode()
+    public void getQrcode(String reportId)
     {
-        String reportId = getPara("reportId");
+//        String reportId = getPara("reportId");
 		Report reports = Report.dao.findById(reportId);
 		if (reportId == null || reports == null) {
 			renderNull();
@@ -199,13 +206,43 @@ public class WeixinApiController extends ApiController {
 			//ApiResult qrresult = new ApiResult(reports.getQrCode());
 			renderText(reports.getQrCode());;
 		}
-        
-
-//        String str = "{\"action_name\": \"QR_LIMIT_STR_SCENE\", \"action_info\": {\"scene\": {\"scene_str\": \"123\"}}}";
-//        ApiResult apiResult = QrcodeApi.create(str);
-//        renderText(apiResult.getJson());
     }
 
+    /**
+     * 统一支付
+     */
+    public void unifyPay()
+    {
+        String reportId = getPara("reportId");
+		Report reports = Report.dao.findById(reportId);
+		Exams exams = Exams.dao.findById(reports.getExamId());
+		Institution institution = Institution.dao.findById(exams.getInstitutionId());
+		String appId;
+		switch (institution.getWxSource()) {
+		case "中世康恺电子胶片平台":
+			appId = PropKit.get("appId_zskk");
+			break;
+
+		case "黑龙江省电子胶片平台":
+			appId = PropKit.get("appId_hlj");
+			break;
+
+		case "辽宁省电子胶片平台":
+			appId = PropKit.get("appId_ln");
+			break;
+			
+		case "河南省电子胶片平台":
+			appId = PropKit.get("appId_hn");
+			break;
+
+		default:
+			appId = PropKit.get("appId_zskk");
+			break;
+		}
+//		redirect("http://wechat.pacsonline.cn/wx_patient/api/getQrcode?appId=" + appId + "&reportId=" + reportId);
+        ApiConfigKit.setThreadLocalAppId(appId);
+//        String string = PaymentApi.pushOrder(j);
+    }
     /**
      * 长链接转成短链接
      */
@@ -240,5 +277,6 @@ public class WeixinApiController extends ApiController {
         ApiResult apiResult = CallbackIpApi.getCallbackIp();
         renderText(apiResult.getJson());
     }
+    
 }
 

+ 0 - 7
PacsOnline_Wechat_Patient/src/main/java/com/zskk/service/UserService.java

@@ -132,13 +132,6 @@ public class UserService {
 //		}
 	}
 
-	private String doGet(String url) {
-		Request request = new Request.Builder().url(url).build();
-
-		return url;
-
-	}
-
 	/*
 	 * 发送模板消息
 	 */

+ 79 - 2
PacsOnline_Wechat_Patient/src/main/java/com/zskk/service/WeixinService.java

@@ -2,6 +2,9 @@ package com.zskk.service;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
+
+import javax.management.loading.PrivateClassLoader;
+
 import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
 import com.jfinal.plugin.druid.DruidPlugin;
 import com.jfinal.weixin.sdk.api.ApiResult;
@@ -14,6 +17,26 @@ import com.zskk.model._MappingKit;
 
 public class WeixinService {
 	
+	/*/
+	 * 微信消息推送类型枚举
+	 */
+	public enum PUSH_TYPE {
+		
+		//远程诊断患者支付推送
+		REMOTE_DIAGNOSIS_PATIENT_PAY(1);
+		
+		private int pushType;
+		
+		PUSH_TYPE(int pushType) {
+			this.pushType = pushType;
+		}
+		
+		public int getPushType() {
+			return pushType;
+		}
+		
+	}
+	
 	/**
 	 * 用户同意授权,获取带code的url
 	 * @return
@@ -52,6 +75,43 @@ public class WeixinService {
 		return apiResult;
 	}
 	
+	/*
+	 * 发送模板消息
+	 */
+	public void sendTemplateMsg(String openid, String url, String event, String userName) {
+//		if (PropKit.getBoolean("devMode") == true) {
+//			ApiConfigKit.setThreadLocalApiConfig(getApiConfig());
+//			SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  HH:mm:ss");
+//			String time = sdf.format(new Date());
+//			String json = TemplateData.New().setTouser(openid)
+//					.setTemplate_id("eNs4B9rKo_0N-sF1NRmW6PESmTLm8zi_5Vl6ujeFngA").setTopcolor("#743A3A")
+//					.setUrl(url)
+//					.add("keyword1", time  , "#743A3A")
+//					.add("keyword2", event , "#743A3A")
+//					.add("keyword3", "用药了吗?用药后感觉怎么样?快来说说吧,我们不会将您的资料泄露,完成赢积分!", "#743A3A")
+//					.build();
+//			System.out.println(json);
+//			ApiResult result = TemplateMsgApi.send(json);
+//			System.out.println(result.getJson());
+//		}else{
+//			ApiConfigKit.setThreadLocalApiConfig(getApiConfig());
+//			SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  HH:mm:ss");
+//			String time = sdf.format(new Date());
+//			String json = TemplateData.New().setTouser(openid)
+//					.setTemplate_id("U4cjem6T4heIpO6gS92XE2au9ZTr0mJcgutgEoDIpRI").setTopcolor("#743A3A")
+//					.setUrl(url)
+//					.add("first"   , event      , "#0DB0EB")
+//					.add("keyword1", userName         , "")
+//					.add("keyword2", ""         , "")
+//					.add("keyword3", time       , "")
+//					.add("remark"  , "请按时记录哦", "#BBBBBB")
+//					.build();
+//			System.out.println(json);
+//			ApiResult result = TemplateMsgApi.send(json);
+//			System.out.println(result.getJson());
+//		}
+	}
+	
 	public static void main(String[] args) {
 //			DruidPlugin druidPlugin = new DruidPlugin("jdbc:mysql://www.pacsonline.cn:3306/pacsonline?useSSL=false", "pacs",
 //					"ZSKK@2017~!@#".trim());
@@ -62,8 +122,25 @@ public class WeixinService {
 //			arp.start();
 //
 //			Report report = Report.dao.findById("9c11936e4a8440d6");
-//			System.out.println(report);
-		
+		PUSH_TYPE dType2 = null;
+		 for(PUSH_TYPE xxxEnum : PUSH_TYPE.values()){
+	            if(xxxEnum.getPushType() == 1){
+	    			dType2 = xxxEnum;
+	    			System.out.println(xxxEnum);
+
+	            }
+	        }
+		 switch (dType2) {
+		case REMOTE_DIAGNOSIS_PATIENT_PAY:
+			System.out.println("sdas");
+
+			break;
+
+		default:
+			break;
+		}
+		PUSH_TYPE dType = PUSH_TYPE.REMOTE_DIAGNOSIS_PATIENT_PAY;
+//			System.out.println(dType.getPushType());
 		
 	}
 }