2015-05-20 14:57:31 wyx100 阅读数 42707
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27840 人正在学习 去看看 秦子恒

一.原因

1.网络中断

2.关注和取消过多

3.微信转发url服务器中的web项目异常


二.解决办法

1.正常连接网络

2.过一会再试

3.检查web项目,建议预留一个测试过的项目作为检查使用。



2018-07-27 13:42:02 BThinker 阅读数 17591
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27840 人正在学习 去看看 秦子恒

 

微信公众号开发之授权登录

1、微信公众号技术开发文档阅读

微信公众号的开发首先对开发文档的阅读,技术版本可能有变化,博客里面的内容一段时间过后,可能就出现有些小问题。

微信公众号技术开发文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432

2、微信公众号开发工具

微信公众号开发工具,可以使用微信web开发者工具,可以很好的模拟微信公众号开发的大部分功能(微信公众号支付不行,目前,其他,如授权登录,消息模板,地理位置等等都是可以的)。

微信web开发者工具:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1455784140

只要关注就行,使用测试号,其他的账号使用需要关注你的测试号才能使用。

3、授权登录开发准备

3.1、使用第三方工具,生成内网映射,可以使用花生壳,生成一个可用的域名,在授权的时候使用

花生壳地址:https://hsk.oray.com/

3.2、可以使用微信公众号的测试号,项目上线请申请认证号,认证需要一些费用,但对于微信公众号的大部分的功能实现,已经足够了,目前微信公众号开发的微信支付是不支持的。

申请测试账号,微信公众平台:https://mp.weixin.qq.com/

3.3、微信公众号授权登录的微信开发配置,网页授权获取用户基本信息修改

域名是从花生壳中获取,在授权回调页面域名中不要加上http://,目前微信公众号开发的配置路径都是一样,不要添加http://

这边有一个注意的地方,认证号即上线的时候微信公众号授权登录,需要上传一个文件到服务器中,这个在微信公众号认证号的配置的时候是有提示的,只需要上传认证文件,到服务器就行了。

4、微信授权登陆开发的步骤

1 第一步:用户同意授权,获取code

2 第二步:通过code换取网页授权access_token、openid

3 第三步:刷新access_token(如果需要)

4 第四步:拉取用户信息(需scope为 snsapi_userinfo)

snsapi_base: 到第二步就结束了,获取到openid,其他操作在这个基础上(比如记录该用户访问时间次数信息)

snsapi_userinfo: 获取openid和用户资料(昵称、头像、国、省、城市、性别、权限)

第一步:

@RequestMapping("loginInit.do")
public String loginInit(HttpServletRequest request,HttpServletResponse response)  {
	    //回调地址,要跟下面的地址能调通(getWechatGZAccessToken.do)
	    String backUrl="http://3261045722cwy.vicp.io/wx/getWechatGZAccessToken.do";
	    /**
		*这儿一定要注意!!首尾不能有多的空格(因为直接复制往往会多出空格),其次就是参数的顺序不能变动
	    **/
	    //AuthUtil.APPID微信公众号的appId
	    String url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + AuthUtil.APPID+
				"&redirect_uri=" + URLEncoder.encode(backUrl,"UTF-8")+
				"&response_type=code" +
				"&scope=snsapi_userinfo" +
				"&state=STATE#wechat_redirect";
	    return "redirect:"+url;
}

下面就可以实现了,对于微信公众号一般做免登陆,可以将用户跟openid,进行绑定,查询是否已经绑定,从而不用进行用户登陆

@RequestMapping("getWechatGZAccessToken.do")
public String getWechatGZAccessToken(HttpServletRequest request,HttpServletResponse response) throws Exception{
		//微信公众号的APPID和APPSECRET
		String code=request.getParameter("code");
        String url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + AuthUtil.APPID+
                "&secret=" +AuthUtil.APPSECRET+
                "&code=" +code+
                "&grant_type=authorization_code";
        String result = HttpClientManager.getUrlData(url);
		Map<String,Object> data = JSONObject.fromObject(result);
        String openid=data.get("openid").toString();
        String token=data.get("access_token").toString();
        //获取信息
        String infoUrl="https://api.weixin.qq.com/sns/userinfo?access_token=" +token+
                "&openid=" +openid+
                "&lang=zh_CN";
        String infoResult = HttpClientManager.getUrlData(infoUrl);
        
	}

 HttpClientManager工具类

package com.baosteel.qcsh.wap.controllers.thirdpartylogin.wechat;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;

public class HttpClientManager {
	/**
	 * 执行url请求数据
	 * 
	 * @param urlStr
	 * @return
	 * @throws Exception
	 * @throws IOException
	 */
	public static String getUrlData(String urlStr) throws Exception {
		URL url = new URL(urlStr);
		URLConnection connection = url.openConnection();
		// 一旦发送成功,用以下方法就可以得到服务器的回应:
		String sCurrentLine = "";
		StringBuffer sTotalString = new StringBuffer();
		InputStream l_urlStream = connection.getInputStream();
		// 传说中的三层包装阿!
		BufferedReader l_reader = new BufferedReader(new InputStreamReader(
				l_urlStream, "UTF-8"));
		while ((sCurrentLine = l_reader.readLine()) != null) {
			sTotalString.append(sCurrentLine);
		}
		return sTotalString.toString();
	}

	/**
	 * 执行url请求数据
	 * 
	 * @param urlStr
	 * @return
	 * @throws Exception
	 * @throws IOException
	 */
	public static String postUrlData(String urlStr, String data)
			throws Exception {
		URL url = new URL(urlStr);
		HttpURLConnection http = (HttpURLConnection) url.openConnection();
		http.setRequestMethod("POST");
		http.setRequestProperty("Content-Type",
				"application/x-www-form-urlencoded");
		http.setDoOutput(true);
		http.setDoInput(true);
		System.setProperty("sun.net.client.defaultConnectTimeout", "30000");// 连接超时30秒28
		System.setProperty("sun.net.client.defaultReadTimeout", "30000"); // 读取超时30秒29
																			// 30
		OutputStream os = http.getOutputStream();
		os.write(data.getBytes("UTF-8"));// 传入参数
		os.flush();
		os.close();
		// 一旦发送成功,用以下方法就可以得到服务器的回应:
		String sCurrentLine = "";
		String sTotalString = "";
		InputStream l_urlStream = http.getInputStream();
		// 传说中的三层包装阿!
		BufferedReader l_reader = new BufferedReader(new InputStreamReader(
				l_urlStream, "UTF-8"));
		while ((sCurrentLine = l_reader.readLine()) != null) {
			sTotalString += sCurrentLine;
		}
		return sTotalString;
	}
}

 

 

 

 

 

 

 

 

2017-09-17 08:46:58 towtotow 阅读数 514
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27840 人正在学习 去看看 秦子恒

有的同学给我留言说,

“自己没有微信公众号

想要学习公众平台开发,

怎么办呢?”


其实这样的人很多,

因为申请公众号,服务号需要公司的营业执照,

或者相关组织机构的证件,

而个人是没有这些证件的。


3ceshi.jpg


幸好,

微信也考虑到了这一点,

你只要申请微信开发的测试账号就可以学习公众号开发的内容了…

获取公众平号开发测试账号视频教程在线观看

http://edu.csdn.net/course/detail/2586/40525

2017-09-23 07:27:19 towtotow 阅读数 2609
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27840 人正在学习 去看看 秦子恒

我们在《玩转微信公众号》的视频中,

已经知道公众号分为订阅号,服务号,应用号,

微信公众号开发时,

每个公众号类型会有不同的权限。


12api_quanxian.jpg


比如在开发微信支付功能时,

只有微信服务号能够拥有这个功能,

订阅号就不能使用。


当然还有很多区别,

在这一节微信开发视频教程中告诉你如何查看…

微信公众号开发接口权限与次数限制视频教程在线观看

http://edu.csdn.net/course/detail/2586/40532

2018-09-28 14:11:09 qq_29914837 阅读数 1441
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27840 人正在学习 去看看 秦子恒

本节要求:

①微信公众号申请
②测试公众号的注册
③准备微信公众号开发的环境


微信公众号开发入门指引

微信公众号的接入在微信公众平台-微信公众平台技术文档中有着详细的介绍。在进行微信开发前,建议先完整的浏览下这个文档,可以帮助你有一个对微信开发的整体意识。


一、微信公众号申请

进入申请公众号网页,点击右上角 【立即注册】
在这里插入图片描述
 
 选择注册的账号类型(一般个人选择订阅号)
在这里插入图片描述
按照要求填写注册信息即可
在这里插入图片描述

备注:
 1.微信公众号分为服务号、订阅号、企业号。不同的公众号拥有不同的能力订阅号可以个人申请,服务号和企业号要有企业资质才可以。
 2.如果是服务号和企业号申请,会进入审核状态,一般审核在五个工作日内完成,实际上当天申请,一般第二天就可看到是否通过。


申请成功后进入
在这里插入图片描述

微信公众号开发主要指的是订阅号和服务号的开发:
  关于订阅号和服务器的区别,官方是这样解释的
  服务号:主要偏向于服务交互(功能类似12315,114,银行,提供绑定信息,服务交互),每月可群发4条消息;服务号适用人群:媒体、企业、政府或其他组织。
  订阅号:主要偏向于为用户传达资讯,(功能类似报纸杂志,为用户提供新闻信息或娱乐趣事),每天可群发1条消息;订阅号适用人群:个人、媒体、企业、政府或其他组织。
  个人订阅号有一些接口是没有权限的,也就是说个人订阅号无法调用一些高级的权限接口。


二、测试公众号的注册

但是一些高级接口,如生成二维码、网页授权、自定义菜单、微信支付这样的接口权限个人订阅号是没有调用权限的。因此微信公众平台提供了测试公众账号。
测试公众号的注册地址为:
http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login,
只需要到这个页面,点击登录,并用自己的微信客户端扫码,并授权登录,就可以获得属于自己的测试公众号。
或者 通过开发者工具-公众平台测试账号 进入
在这里插入图片描述
测试公众号具备几乎所有的接口,所以平时学习微信公众号开发时,就可以去注册一个测试公众号,然后使用这个测试公众号做开发就可以了。

注册测试公众号的步骤如下图所示:
在这里插入图片描述  
在这里插入图片描述
测试公众号的所拥有的接口权限如下:
在这里插入图片描述

可以看到,测试公众号拥有大部分的接口调用权限,因此用测试公众号来学习微信开发是完全可以的。


三、微信开发服务器准备

①微信公众号开发难点:调试问题
②原因:每次实现一个功能后都需要部署到一个公网服务器进行测试,因为微信用户每次向公众号发起请求时,微信服务器会先接收到用户的请求,然后再转发到我们的服务器上,也就是说,微信服务器是要和我们的服务器进行网络交互,所以我们必须保证我们的服务器外网可以访问到,这种部署到公网服务器进行测试的做法对于我们开发者来说简直是噩梦。
③解决思路:要想一个办法可以做到本地部署,本地调试代码,而要做到这一点,那么我们要解决的问题就是将内网的部署服务器映射到外网,让微信服务器可以正常访问到。
④解决办法:借助于第三方软件Ngrok,我们就可以做得到。Ngrok是一个免费的软件Ngrok,使用Ngrok后,我们就可以实现内网穿透,也就是说我们可以将内网的服务器映射到外网给别人访问,这对于我们在本地开发环境中调试微信代码是以及给用户演示一些东西非常快速和有帮助的,因为可以直接使用我们自己的内网的电脑作为服务器。
下载链接:(附使用方法)
https://download.csdn.net/download/qq_29914837/10692027

在这里插入图片描述

获得 http://037c75b7.ngrok.io
在这里插入图片描述

启动tomcat
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

发现输入:http://037c75b7.ngrok.io/和输入http://127.0.0.1:8080/ 都可以成功范围tomcat欢迎界面,表示内网映射成功

使用了ngrok之后,我们就可以把内网的服务器当成公网服务器来使用了.访问的速度也还在可以接受的范围内吧,截止到目前为止ngrok是可用的,微信公众号服务器是可以访问的,这样一来也就不妨碍我们做本地调式了。到此,我们的微信本地调试开发环境就算是搭建好了。


下一节内容

微信开发学习总结(二)——微信开发环境准备(1)
https://blog.csdn.net/qq_29914837/article/details/82891095

没有更多推荐了,返回首页