您现在的位置是:首页 > 博文答疑 > 微信到MF的连接实验博文答疑
微信到MF的连接实验
Leo2015-08-27【3】
简介微信到MF的连接实验
<由于个人资源限制,利用个人资源提供如下实验>
准备:
微信公众号:Mainfram
PHP服务器: powerone.cn <因为没有Java服务器,因此用php作为微信与java服务器作为中间连接使用,实际应用中可以直接使用java服务器>
Java服务器:个人PC WEBSPHERE 服务器
MQ: 个人PC端MQ 和 Mainframe端MQ
MF: MF虚拟机
动态IP映射工具:花生壳<因为是个人IP问题,略>
数据流程:
微信公众号 < - >微信服务器 < - >PHP服务器 < - > Java 服务器 < - > PC MQ < - > MF MQ < - > MF逻辑处理(MQ CICS DB2)
<相关图片素材可以从网盘下载 http://yunpan.cn/cmcgXeAMRgFEI 访问密码 e692>
1, 微信公众号使用效果截图如下:
数据库数据如下:
2, PHP服务器上的微信接口
case "+": $postdata = trim(substr($keyword, 1)); $curlPost = $postdata; $ch = curl_init(); //初始化一个CURL对象 curl_setopt($ch, CURLOPT_URL, "http://xxxxxxx/WechatServlet"); //设置你所需要抓取的URL curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //设置curl参数,要求结果是否输出到屏幕上,为true的时候是不返回到网页中 假设上面的0换成1的话,那么接下来的$data就需要echo一下。 curl_setopt($ch, CURLOPT_POST, 1); //post提交 curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); $data = curl_exec($ch); //运行curl,请求网页。 curl_close($ch); $content = $data; break; |
3, JAVA服务器上的接口:
因为token验证和xml格式已经被PHP处理过,因此java中token验证和xml的处理过程可以忽略,php直接传递给java Servlet
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //doGet(request, response); request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8");
/** 读取接收到的xml消息 */ StringBuffer sb = new StringBuffer(); InputStream is = request.getInputStream(); InputStreamReader isr = new InputStreamReader(is, "UTF-8"); BufferedReader br = new BufferedReader(isr); String s = ""; while ((s = br.readLine()) != null) { sb.append(s); } String xml = sb.toString(); //次即为接收到微信端发送过来的xml数据
String result = ""; /** 判断是否是微信接入激活验证,只有首次接入验证时才会收到echostr参数,此时需要把它直接返回 */ String echostr = request.getParameter("echostr"); if (echostr != null && echostr.length() > 1) { result = echostr; } else { //正常的微信处理流程 //result = xml; String inputstring = xml; Secondbean mybean = new Secondbean(); mybean.setUserid(inputstring); mybean.passtoMF(); mybean.retreivefromMF(); result = mybean.getMessage(); } |
4, MQ 配置截图如下:
5,CICS 定义信息如下:
6,COBOL主要logic如下
VIEW WANGLEI.MINI.SRCLIB(MQMINITR) - 01.00 Columns 00001 00072 Command ===> Scroll ===> CSR 016500 014100* 016600 014200 PERFORM 200-MQOPEN THRU 200-MQOPEN-EXIT. 016700 014300 PERFORM 200-MQGET THRU 200-MQGET-EXIT. 016800 014400 PERFORM 200-PROCESS THRU 200-END-PROCESS. 016900 014500 PERFORM 200-MQPUT THRU 200-MQPUT-EXIT. 017000 014600 PERFORM 200-MQCLOSE THRU 200-MQCLOSE-EXIT. 017100 014700 PERFORM 999-RETURN THRU 999-RETURN-EXIT. 017200 014800* VIEW WANGLEI.MINI.SRCLIB(USERINQ) - 01.00 Column Command ===> Scr 012900 019600 200-PROCESSING. 013000 019700 MOVE USERINQ-USER-ID TO USERTB-USER-ID. 013100 019800 EXEC SQL 013200 019900 SELECT USER_ID, 013300 DEPT_ID, 013400 BRANCH_ID, 013500 USER_NAME, 013600 USER_LEVEL, 013700 &n |