微信开发工具关联svn_微信开发者工具 svn - CSDN
  • 微信开发之TortoiseSVN

    2017-02-13 00:13:06
    TortoiseSVN是一个代码管理工具。新浪云服务器(SAE)的支持中心--代码部署手册有详细的说明。 TortoiseSVN用于管理代码,和Git类似,可以提高我们的工作效率。 新浪云会将代码放在SVN仓库,我们利用TortoideSVN...

    TortoiseSVN是一个代码管理工具。新浪云服务器(SAE)的支持中心--代码部署手册有详细的说明。

    TortoiseSVN用于管理代码,和Git类似,可以提高我们的工作效率。

    新浪云会将代码放在SVN仓库,我们利用TortoideSVN上传代码到仓库和下载代码到电脑。我们也可以在线编辑代码,但是一般不采用这种方式。

    下面讲解三种 1 检出 2 添加版本 3 在原有版本上添加内容

    检出:

    1 新建文件夹,用于存储自己的代码,文件夹名建议和应用名一致,方便管理

    2 右键--SVNChectout..

    URL of repository:就是SVN仓库的地址,在代码部署手册有说:

    https://svn.sinacloud.com/YOUR_APP_NAME   怎么看appname ,就是:假如应用 http://woxiangaini1.applinzi.com,那么名字就是:woxiangaini1 
    输入后点击 OK 用户名和密码分别是安全邮箱和安全密码,注意不是登录密码。
    添加版本:新建文件夹:如果是版本1 就文件夹名字是1  新建文件 config.yaml 用NotePad++编辑:输入:
    name:woxiangaini1(回车) version:1(版本号)
    再在文件夹里面新建.php,书写自己想要的代码
    书写完毕 右键 TortoiseSVN commit 上传,上传成功之后会出现绿色的打钩
    打开新浪云服务器 应用--管理记录  显示更新版本的记录

    原有版本添加内容:
    添加完毕之后 右键--TortoiseSVN update  选中新添加的文件夹  添加成功之后出现蓝色的加号
    右键--TortoiseSVN commit 将更新之后的内容上传

    展开全文
  • 为什么要写这篇博文?主要是记录摸着石头过黄河的过程。...但细心的你,是否发现了工程java文件好像失去了关联引用。比如,你想点击去看 调用,这时是点不了的。  下面就说说如何正确导入svn拉取的工程...

     

      为什么要写这篇博文?主要是记录摸着石头过黄河的过程。之前在eclipse装了svn插件,拉取远程工程,在eclipse显示的工程,并不会分开显示模块工程,反而

    是以总工程的姿态呈现。或许你觉得不管分模块展示,还是总工程展示,都无所谓。但细心的你,是否发现了工程java文件好像失去了关联引用。比如,你想点击去看

    调用,这时是点不了的。

     

      下面就说说如何正确导入svn拉取的工程,并在eclipse中以模块工程的姿势呈现。

     

    首先, 必须搞清楚 svn拉取工程的两个概念 --- 检出(check out) 与   导出(export)。

    ①、检出(check out)

      检出的工程的文件,包含了.svn文件。文件的增删改操作会被svn客户端识别到。可以对其update、Commit操作

    ②、导出(export)

      导出的工程文件夹,是不含.svn文件. 文件的增删改是不会被svn客户端识别的。无法对其update、Commit操作  

     

    通过上述的科普后,当然我们在eclipse使用svn插件"check out"工程。

    检出工程后,进入工程的根目录下,使用命令mvn eclipse:eclipse将工程转为eclipse工程。

    导入工程, 记得选上Search for nested projects。这时我们看到projects : 会以模块工程的姿态呈现

     

     通过上述步骤导进来的工程,是有关联引用的。这时对文件的增删改,都会svn客户端识别到的。可进行update、Commit操作。

     

    总结下 : 

    ①、svn 检出

    ②、eclipse移除工程(注意 : 并不是删除)

    ③、mvn eclipse:eclipse 将工程转为eclipse工程

    ④、导入,记得勾上Search for nested projects 即可 

     

    转载于:https://www.cnblogs.com/chenmo-xpw/p/5617474.html

    展开全文
  • (这里的token值是我们自定义的一个字符串,它配置在服务端项目)在手机微信客户端搜索你的微信公众平台公众号(订阅号),当然通过二维码会更快速准确,呵呵。 下面我们先重服务器端开始。 进入百度云平台的管理...

    利用百度云平台运行我们自己的服务端项目,在平台上线运行。利用这个项目对应的域名将其配置到微信公众平台,并填写token值。(这里的token值是我们自定义的一个字符串,它配置在服务端项目)在手机微信客户端搜索你的微信公众平台公众号(订阅号),当然通过二维码会更快速准确,呵呵。

    下面我们先重服务器端开始。

    进入百度云平台的管理控制台(请大家进入旧版--右上角)http://developer.baidu.com/dev点击创建应用,并创建一个手机web应用。


    出现以下页面后,点击云环境:


    创建域名,选择开发语言(我用的是Java),选着版本管理器(我用的是svn),点击确定:


    等待后弹出提示创建成功后,点击确定,跳转到如下页面---------创建版本:


    点击创建版本后,会出现两种选择,一种是在线创建项目,然后在线编辑发布,本人还是觉得第二种顺手,上传war包,即将本地建好的web项目发布为war包,然后上传,在上线,我们就以上传war包方式为例:这里我们就暂且停下:开始来编辑我们需要的web项目。


    在eclipse中心建一个web项目(tomcat服务器)新建MainServer.java

    需要导入的jar包:大家没有的可以到我的云盘去下载:点击打开链接

    1. <span style="font-family:SimHei;font-size:12px;">package com.weixin.zfeng.server;  
    2.   
    3. import java.io.BufferedReader;  
    4. import java.io.IOException;  
    5. import java.io.InputStreamReader;  
    6. import java.security.MessageDigest;  
    7. import java.util.Arrays;  
    8. import java.util.Date;  
    9.   
    10. import javax.servlet.ServletException;  
    11. import javax.servlet.ServletInputStream;  
    12. import javax.servlet.http.HttpServlet;  
    13. import javax.servlet.http.HttpServletRequest;  
    14. import javax.servlet.http.HttpServletResponse;  
    15. import org.dom4j.Document;  
    16. import org.dom4j.DocumentHelper;  
    17. import org.dom4j.Element;  
    18.   
    19. import com.weixin.zfeng.utils.Weather;  
    20.   
    21.   
    22. public class MainServer extends HttpServlet{  
    23.     //这里是你定义的token值  
    24.     private final String TOKEN = "haha";  
    25.     @Override  
    26.     protected void doPost(HttpServletRequest req, HttpServletResponse resp)  
    27.             throws ServletException, IOException {  
    28.         //取出随机字符串  
    29.         String echostr=req.getParameter("echostr");    
    30.         if(null==echostr||echostr.isEmpty()){    
    31.             responseMsg(req,resp);    
    32.         }else{    
    33.             if(this.checkSignature(req)){    
    34.                 resp.getWriter().print(echostr);   
    35.             }else{    
    36.                 resp.getWriter().print("");                                                                                                                                                                                                                                                                                                                                             
    37.             }    
    38.         }    
    39.           
    40.     }  
    41.       
    42.     @Override  
    43.     protected void doGet(HttpServletRequest req, HttpServletResponse resp)  
    44.             throws ServletException, IOException {  
    45.         doPost(req, resp);  
    46.     }  
    47.       
    48.     //回复  
    49.     public void responseMsg(HttpServletRequest req,HttpServletResponse resp) throws IOException{    
    50.         String postStr=null;    
    51.         try{    
    52.             postStr=this.readStreamParameter(req.getInputStream());    
    53.         }catch(Exception e){    
    54.             e.printStackTrace();    
    55.         }    
    56.         //System.out.println(postStr);    
    57.         if (null!=postStr&&!postStr.isEmpty()){    
    58.             Document document=null;    
    59.             try{    
    60.                 document = DocumentHelper.parseText(postStr);   
    61.                 if(null==document){    
    62.                     resp.getWriter().print("");  
    63.                     return;    
    64.                 }    
    65.             }catch(Exception e){    
    66.                 e.printStackTrace();    
    67.             }    
    68.               
    69.             Element root=document.getRootElement();    
    70.             String fromUsername = root.elementText("FromUserName");    
    71.             String toUsername = root.elementText("ToUserName");    
    72.             String keyword = root.elementTextTrim("Content");    
    73.             String time = new Date().getTime()+"";    
    74.             String textTpl = "<xml>"+    
    75.                         "<ToUserName><![CDATA[%1$s]]></ToUserName>"+    
    76.                         "<FromUserName><![CDATA[%2$s]]></FromUserName>"+    
    77.                         "<CreateTime>%3$s</CreateTime>"+    
    78.                         "<MsgType><![CDATA[%4$s]]></MsgType>"+    
    79.                         "<Content><![CDATA[%5$s]]></Content>"+    
    80.                         "<FuncFlag>0</FuncFlag>"+    
    81.                         "</xml>";                 
    82.               
    83.               
    84.             //发送消息类型  
    85.             String msgType = "text";    
    86.             String contentStr = "";  
    87.             String resultStr="";//返回消息  
    88.               
    89.             //关注订阅号后,返回的提示  
    90.             if(null==keyword||keyword.equals("")){    
    91.                 contentStr = "hi,how are you! I'm server and with baiduyun";  
    92.             }  
    93.           //微信客户端发送time,服务器解析到后返回当前时间  
    94.             else if(keyword.equals("time")){  
    95.                 contentStr = new Date().toString();  
    96.             }  
    97.             resultStr = String.format(textTpl, fromUsername, toUsername, time, msgType, contentStr+"---zhaofeng");    
    98.             resp.getWriter().print(resultStr);  
    99.     
    100.         }else {    
    101.             resp.getWriter().print("");    
    102.         }    
    103.         resp.getWriter().flush();  
    104.         resp.getWriter().close();  
    105.     }    
    106.     //检查请求  
    107.     public boolean checkSignature(HttpServletRequest request){    
    108.         //这里是微信进行安全验证的四个值,由于token为明文,所以前用前三个值进行加密计算后的值与token对比(不具体描述)  
    109.         String signature = request.getParameter("signature");    
    110.         String timestamp = request.getParameter("timestamp");    
    111.         String nonce = request.getParameter("nonce");    
    112.         String token=TOKEN;    
    113.           
    114.         String[] tmpArr={token,timestamp,nonce};    
    115.         Arrays.sort(tmpArr);    
    116.         String tmpStr=this.ArrayToString(tmpArr);    
    117.         tmpStr=this.SHA1Encode(tmpStr);    
    118.         if(tmpStr.equalsIgnoreCase(signature)){    
    119.             return true;    
    120.         }else{    
    121.             return false;    
    122.         }    
    123.     }    
    124.       
    125.     public String SHA1Encode(String sourceString) {    
    126.         String resultString = null;    
    127.         try {    
    128.            resultString = new String(sourceString);    
    129.            MessageDigest md = MessageDigest.getInstance("SHA-1");    
    130.            resultString = byte2hexString(md.digest(resultString.getBytes()));    
    131.         } catch (Exception ex) {    
    132.         }    
    133.         return resultString;    
    134.     }   
    135.       
    136.       
    137.     private String byte2hexString(byte[] bytes) {  
    138.         StringBuffer buf = new StringBuffer(bytes.length * 2);    
    139.         for (int i = 0; i < bytes.length; i++) {    
    140.             if (((int) bytes[i] & 0xff) < 0x10) {    
    141.                 buf.append("0");    
    142.             }    
    143.             buf.append(Long.toString((int) bytes[i] & 0xff16));    
    144.         }    
    145.         return buf.toString().toUpperCase();    
    146.     }  
    147.   
    148.     //  
    149.     public String ArrayToString(String [] arr){    
    150.         StringBuffer bf = new StringBuffer();    
    151.         for(int i = 0; i < arr.length; i++){    
    152.          bf.append(arr[i]);    
    153.         }    
    154.         return bf.toString();    
    155.     }    
    156.     
    157.     //流中读取数据  
    158.     public String readStreamParameter(ServletInputStream in){    
    159.         StringBuilder buffer = new StringBuilder();    
    160.         BufferedReader reader=null;    
    161.         try{    
    162.             reader = new BufferedReader(new InputStreamReader(in));    
    163.             String line=null;    
    164.             while((line = reader.readLine())!=null){    
    165.                 buffer.append(line);    
    166.             }    
    167.         }catch(Exception e){    
    168.             e.printStackTrace();    
    169.         }finally{    
    170.             if(null!=reader){    
    171.                 try {    
    172.                     reader.close();    
    173.                 } catch (IOException e) {    
    174.                     e.printStackTrace();    
    175.                 }    
    176.             }    
    177.         }    
    178.         return buffer.toString();    
    179.     }    
    180. }  
    181. </span>  
    这里是一个最基本的骨架代码,大家可以在上面进行跟多丰富的扩展。接着我们将项目导出为war包。接着就是刚刚说到的上传war包了,这里就不再讲了。上传成功后点击上线(哦这里有个下提示,当然这里不存在,免费用户每次只能上传50M以内哦),等待提示“代码已生效”后,出现:


    接着我们就应该配置微信公众平台了:(申请注册微信公众平台要求比较严格,需要审核几天到N天不等)。https://mp.weixin.qq.com/

    前不久我是借用别个的账号进行测试的,我的公众号都几天了还没有通过,哎~所以这里没法给大家截图。其实微信里边配置很简单,就是一个访问项目的域名,和一个token值,填正确这两个后就可以确定了,然后就是关注账号进行测试了。我的上一个测试用的是return这个号,大家关注后发送time试下效果(相同代码)

    这里的域名就是你创建web项目时写的mytestserverforweixin.duapp.com注意这里并不是完全正确的域名,还需要在前面加上你的版本号:1.mytestserverforweixin.duapp.com。希望过几天我的公众号能够通过,

    到时候给大家截两张图更好。

    展开全文
  • vscode wechat settings.json

    2019-06-24 17:35:08
    // { // "window.zoomLevel": 0, // "editor.fontSize": 16, // "files.associations": { // "*.wpy": "vue", // "*.wxss": "css", // "*.wxml": "html" // } // } // Place your settings in this file to ove...

     

    // { // "window.zoomLevel": 0, // "editor.fontSize": 16, // "files.associations": { // "*.wpy": "vue", // "*.wxss": "css", // "*.wxml": "html" // } // } // Place your settings in this file to overwrite the default settings { // 配置 glob 模式以排除文件和文件夹。 "files.exclude": { "**/.git": true, "**/.svn": true, "**/.hg": true, "**/CVS": true, "**/.DS_Store": true, // "**/node_modules": true, "**/bower_components": true // "**/dist": true }, // 配置语言的文件关联(如: "*.extension": "html")。这些关联的优先级高于已安装语言的默认关联。 "files.associations": { "*.vue": "vue", "*.wpy": "vue", "*.wxss": "postcss", "*.tpl": "vue", "*.md@xxx": "markdown", "*.wepy": "vue" }, // 一个制表符等于的空格数。该设置在 `editor.detectIndentation` 启用时根据文件内容进行重写。 "editor.tabSize": 2, // 当打开文件时,将基于文件内容检测 "editor.tabSize" 和 "editor.insertSpaces"。 "editor.detectIndentation": false, "window.zoomLevel": 1, "editor.wordWrap": "on", "workbench.iconTheme": "vs-seti", "editor.wordSeparators": "`~!@#$%^&*()=+[{]}\\|;:'\",.<>/?。", "editor.minimap.enabled": true, // 控制键入时是否应自动显示建议 "editor.quickSuggestions": { "other": true, "comments": true, "strings": true }, // 配置 glob 模式以在搜索中排除文件和文件夹。从 files.exclude 设置中继承所有 glob 模式。 "search.exclude": { "**/node_modules": true, "**/bower_components": true, "**/dist": true }, // 控制编辑器是否应呈现缩进参考线 "editor.renderIndentGuides": true, "emmet.syntaxProfiles": { "vue-html": "html", "vue": "html" }, // 配置内置 HTML 语言支持是否建议 Angular V1 标记和属性。 "html.suggest.angular1": false, // 自动更新扩展 "extensions.autoUpdate": true, // 对属性进行换行。 "html.format.wrapAttributes": "auto", // Link file types to the beautifier type "beautify.language": { "js": { "type": [ "javascript", "json" ], "filename": [ ".jshintrc", ".jsbeautify", ".eslintrc.js" ] }, "css": [ "css", "scss" ], "html": [ "htm", "html" ] }, "git.enabled": false, "editor.renderControlCharacters": true, "typescript.check.npmIsInstalled": false, "extensions.ignoreRecommendations": false, // 覆盖当前所选颜色主题的颜色。 此为实验性设置,因为下一版本中将更改颜色名称。 // "workbench.experimental.colorCustomizations": { // "statusBarBackground": "#666666", // "panelBackground": "#555555", // "sideBarBackground": "#444444" // } // When enabled, emmet abbreviations are expanded when pressing TAB. "emmet.triggerExpansionOnTab": true, "workbench.panel.location": "bottom", "editor.fontSize": 16 }


    作者:采香行处蹙连钱
    链接:https://www.jianshu.com/p/6ff790113bec
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    转载于:https://www.cnblogs.com/rhxuza1993/p/10186267.html

    展开全文
  • 微信公众号的开发,这个博主写的很好,有需要的请参考:转载自:...所以下面给大家分享一下我的经验: 第一部分 介绍微信公众号的一些简单介绍以及微信扮演的一些角色,微信公众号的重...

    微信公众号的开发,这个博主写的很好,有需要的请参考:

    转载自:http://www.cnblogs.com/liuhongfeng/p/4846260.html


    相信很多人或多或少听说了微信公众平台的火热。但是开发还是有一点门槛,鉴于挺多朋友问我怎么开发,问多了,自己平时也进行以下总结。

    所以下面给大家分享一下我的经验:

     

     

    第一部分   介绍微信公众号的一些简单介绍以及微信扮演的一些角色,微信公众号的重要性。

     

    1. 微信公众号是什么?

     

       官网的介绍:再小的个体也有品牌。

      

     

     

    2. 微信已经成为人们生活中必不可少的一部分

     

    早上醒来时间:

     

              可以说人类抱着微信睡着,然后从微信中醒来;

    每天早晨,起床气少了,困意不再那么困了,因为惦记着微信里发生了什么;

             每天早晨,每个草根,每个屌丝,每个文艺青年,甚至每个大妈,都开始向古代帝王批阅奏折一样,点个赞,给个评语,然后等待那些似有可无的回复。。。

     

    起床时间:

     

             不刷牙、不洗脸、不下床、不嘿咻……而要干的第一件事,用各种各样的手机、平板……打开同一个APP:微信。

             人类上厕所,因为微信,大号的时间延长了N分钟,小号也被大号了。

     

    上班的路上:

     

             开车的碰上红灯或者堵车,也不再像过去那么焦急了,正好可以低头看看微信了。时间过得飞起!

    人类眼睛的阅读文字图文量,也重新回来不低的数字。

             人类的思想见识,突然广了起来,闷骚有了明骚的资本,孤寂的有自己的春天,清高的忽然改成清新路线了。

        全国微民,每四分钟低一下头,看微信刷朋友圈。

     

    晚上的时间:

     

       全国微信用户已达四亿,连一向爱跳广场舞的大妈大爷也开始成微民了。

     

     

    总之:微信已经在我们生活中任何地方。

     

            不论什么人,不论你是谁,都可以随便的发出声音了。

             我去去去,该刷朋友圈了!

       

     

     

    3. 微信公众号能帮助我们干些什么?

     

         具体的商业应用。不在累赘。

        

    4. 微信公众号的类别有什么?

     

       服务号和订阅号的区别。

       

     

    详细的规则:

    不同的公众号类型具备不同的接口权限,具体如下表: 请注意:

    1、微博认证视作未认证,因此微博认证的公众号不会拥有微信认证公众号特有的接口。
    2、微信认证分为资质认证和名称认证两部分,只需要资质认证通过,就可获得接口。
    

    接口名称未认证订阅号微信认证订阅号未认证服务号微信认证服务号
    基础支持-获取access_token
    基础支持-获取微信服务器IP地址
    接收消息-验证消息真实性、接收普通消息、接收事件推送、接收语音识别结果
    发送消息-被动回复消息
    发送消息-客服接口  
    发送消息-群发接口  
    发送消息-模板消息接口(发送业务通知)   
    用户管理-用户分组管理  
    用户管理-设置用户备注名  
    用户管理-获取用户基本信息  
    用户管理-获取用户列表  
    用户管理-获取用户地理位置   
    用户管理-网页授权获取用户openid/用户基本信息   
    推广支持-生成带参数二维码   
    推广支持-长链接转短链接口   
    界面丰富-自定义菜单 
    素材管理-素材管理接口  
    智能接口-语义理解接口   
    多客服-获取多客服消息记录、客服管理   
    微信支付接口   需申请
    微信小店接口   需申请
    微信卡券接口 需申请 需申请
    微信设备功能接口   需申请
    微信JS-SDK-基础接口
    微信JS-SDK-分享接口  
    微信JS-SDK-图像接口
    微信JS-SDK-音频接口
    微信JS-SDK-智能接口(网页语音识别)
    微信JS-SDK-设备信息
    微信JS-SDK-地理位置
    微信JS-SDK-界面操作
    微信JS-SDK-微信扫一扫
    微信JS-SDK-微信小店   
    微信JS-SDK-微信卡券  
    微信JS-SDK-微信支付   

     

     

     

    第二部分  微信公众号开发需要准备的一些资料以及如何搭建一个测试服务器

     

    一、服务器准备

     

    1.方式一:买的云主机。推荐 爱名网

    2.方式二:BAE(注册百度账号,然后登录 百度云开发 

    3.方式三:SAE(注册新浪微博,然后登录SAE ,点击注册「新浪云福利」现在还有1000云豆免费领!一起来用吧!)  比较推荐的方式。

    4.方式四:  购买花生壳这种本地映射外网的工具。通过这样的工具方便我们在本地进行调试。(推荐) 具体文章请参考:如何架设本地web 服务器来调试自己的微信公众号服务

    5.方式五:可以通过免费映射工具。比如:ngrok  ,natapp 等;

    大家看自己情况进行选择。

     

    二、详细介绍这几种方式。

     

    方式一:通过云服务器方式形式进行。

     

    一般需要懂一些linux相关的知识,这里不进行详细展开说明。

    如果需要了解,可以参考我的linux栏目相关文章。http://www.souvc.com/?cat=330

     

     

    方式二:通过BAE来充当服务器。(现在已经收费了,需要免费的童鞋,可能不大适合)

     

    (1)用百度账号,登录百度开发者中心。来到主界面如下图:

     

     

     (2)选择应用引擎(BAE)

     

     

     (3)创建一个自己的应用。并选择开发环境,我这里选择的是java-tomcat。以及维护代码方式,我选择的是svn方式。

     

     

    (4)确定创建成功。

     

     

     (5)查看应用信息。

     

     

     (6)访问自己的应用链接。出现以下的界面,说明了成功。

     

     

     

    方式三 : 利用sae充当服务器。

     

    (1)注册新浪sae账号。

     

    SAE官网地址:点击注册

     

    (2)创建java应用。

     

         A: 进入sae控制台:http://sae.sina.com.cn/

     

     

          B: 创建新应用。

     

     

          C:选择java环境。

     

     

       D: 填写自己的应用信息。(改为自己的应用信息)

     

         E: 把自己的应用包上传即可。

     

     

     

     

    方式四:  购买花生壳这种本地映射外网的工具。

     

    详细搭建方法,可以参考:第2章 如何架设本地web 服务器来调试自己的微信公众号服务

     

     

    方式五:通过免费的映射工具。

     

    (1)natapp  

    官网 :https://natapp.cn/

     

    (2)ngrok

     

    官网:https://www.ngrok.cc/

     

    (3)nat123

    官网:http://www.nat123.com/

     

    现在服务器配置暂时到这里。后面再说如何配置。欢留言迎大家在留言进行补充说明!

     

     

    第三部分  微信账号相关资料的准备 

     

    申请一个微信号(下载微信客户端,手机注册,或是qq注册)

    申请一个微信公众号 (去申请),申请什么样的微信公众号,请参照 微信详细注册步骤

    申请一个微信公众平台接口测试帐号 (去申请

     

     

     

    其他文章关联:

    第一篇:微信公众平台开发实战Java版之了解微信公众平台基础知识以及资料准备

    第二篇 :微信公众平台开发实战Java版之开启开发者模式,接入微信公众平台开发

    第三篇 :微信公众平台开发实战Java版之请求消息,响应消息以及事件消息类的封装

    第四篇 :微信公众平台开发实战Java版之完成消息接受与相应以及消息的处理

    第五篇 :微信公众平台开发实战Java版之如何获取公众号的access_token以及缓存access_token

    第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单

    第七篇 :微信公众平台开发实战Java版之如何获取微信用户基本信息

    第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息

    第九篇 :微信公众平台开发实战Java版之如何实现自定义分享内容

    其他:Web开发须知:URL编码与解码

     


    ---------------------------------------------------------------------------------------------------------------------------------
    ---------------------------------------------------------------------------------------------------------------------------------------- 



    展开全文
  • 原文传送门... 版本说明:  V1:  ... 2014-2-13更新,红色字体代表最近一次更新的内容。... 2014-3-30 更新,上一版本有很多读者反应说最后还是无法通过微信 token 认证
  • 登录微信公众平台官网后,进入到公众平台后台管理页面。 选择 公众号基本设置-》基本配置 ,点击“修改配置”按钮,填写服务器地址(URL)、Token和EncodingAESKey。   微信公众号配置界面:    以上...
  • 什么是SVN? 什么是CVS? SVN跟CVS又有什么关系呢?  SVN全名Subversion,即版本控制系统。SVN与CVS一样,是一个跨平台的软件,支持大多数常见的操作系统。作为一个开源的版本控制系统,Subversion 管理着随时间改变的...
  • 申请服务器资源 想要进行微信开发,少不了后台服务器端程序的开发,那么我们首先就要申请服务器资源。目前有很多云服务器可选,比如新浪的sae,这里就以sae为例来讲解。 1. 打开http://sae.sina.com.cn/登录。 2....
  • 转载请标明出处,谢谢!  ... 2014-3-30 更新,上一版本有很多读者反应说最后还是无法通过微信 token 认证,此版本特意解决这个问题。红色字体代表最近一次更新的内容。 至读者:  
  • 在公司做项目集成代码用的是svn,在最开始听了一位同事说使用versions来进行svn访问,但是versions并不是一个免费的软件,于是上网下载几个破解版才搞好,终于能访问到svn了。但是随着自己的使用,发现了一些坑爹的...
  • 一. 申请服务器资源  想要进行微信开发,少不了后台服务器端程序的开发,那么我们首先就要申请服务器资源。目前有很多云服务器可选,比如新浪的sae,这里就以sae为例来讲解。  1. 打开http://sae.sina.co
  • 闲来无事创建了一个微信公众账号,名曰“深圳生活小助手”, 关注的人不多,平时发一些深圳新闻,趣事啥的,为了丰富公众号的内容,准备添加一些便民查询功能,例如天气预报、快递查询等等。 于是就有了本文的内容。...
  •  想要进行微信开发,少不了后台服务器端程序的开发,那么我们首先就要申请服务器资源。目前有很多云服务器可选,比如新浪的sae,这里就以sae为例来讲解。  1. 打开http://sae.sina.com.cn/ 登录。  2. ...
  • LNMP的配置与优化 一、LNMP的下载 LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat/Fedora、Debian/Ubuntu/Raspbian/Deepin VPS或独立主机安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/...
  • 第一部分:微信公众号对接的基本介绍 一、填写服务器配置信息的介绍 登录微信公众平台官网后,进入到公众平台后台管理页面。选择 公众号基本设置-》基本配置 ,点击“修改配置”按钮,填写服务器地址(URL)、...
  • 在冲突解决之后,需要使用svnresolved来告诉subversion冲突解决,这样才能提交更新。冲突发生时,subversion会在WorkCopy中保存所有的目标文件版本(上次更新版本、当前获取的版本,即别人提交的版本、自己更新的版本...
  • 但是开发还是有一点门槛,鉴于挺多朋友问我怎么开发,问多了,自己平时也进行以下总结。 所以下面给大家分享一下我的经验: 第一部分 介绍微信公众号的一些简单介绍以及微信扮演的一些角色,微信公众号的重要...
  • 第一部分:微信公众号对接的基本介绍   一、填写服务器配置信息的介绍   登录微信公众平台官网后,进入到公众平台后台管理页面。 选择 公众号基本设置-》基本配置 ,点击“修改配置”按钮,填写服务器地址...
  •  想要进行微信开发,少不了后台服务器端程序的开发,那么我们首先就要申请服务器资源。目前有很多云服务器可选,比如新浪的sae,这里就以sae为例来讲解。  1. 打开http://sae.sina.com.cn/ 登录。  2. 点击...
1 2 3 4 5 ... 20
收藏数 736
精华内容 294
关键字:

微信开发工具关联svn