2018-09-27 12:29:32 a909422229 阅读数 935
  • 微信支付开发-微信公众号开发12-微信开发php

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

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

一、打开微信公众号管理界面

本人使用的springboot项目地址:https://github.com/binarywang/weixin-java-mp-demo-springboot

使用微信公众号开发可以用该项目,配置一下即可,很简单的配置。

鼠标滑到最底部的《开发–基本配置》 

点击我要成功开发者。

二、 填写相关服务器配置信息:

A.需要设置开发者密码,点就开启,扫码一下即可。

B.需要注意的是,验证token只能支持80端口或者443端口,其他端口不支持。

URL:填写服务器的域名地址

token:自己定义链接,其他无所谓,明文与兼容都可以。

三、打开公众号设置,配置一下你的服务器域名,注意一个月只能修改三次。

点击设置:配置域名,注意需要验证一下,下载文件,创建一个项目,复制到项目中,如果通过域名可以访问到该文件,则就可以通过验证。其他两个也是这个流程。即可全部通过验证。

四、通过之后就可以了。还有更加简单的方式进行测试配置是否可以用。点击开发者工具

点击公众平台测试账号:与上面配置基本相同,只不过不需要配置过多的链接,扫描二维码即可关注测试。

五、最后一定要记得,配置服务器完成后,点击启动。否则没有效果的。测试的时候无所谓。会有启动的延迟,不会立马生效,本人遇到了一次这个问题,一直接收不到消息,后来发现是这个问题,晚上配置完后睡了一觉,早上启动项目就可以接收了。

晕~有问题留言或者联系。

下一篇:对微信公众号接收消息进行回复

2019-01-20 22:05:22 qq_41287423 阅读数 541
  • 微信支付开发-微信公众号开发12-微信开发php

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

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

在这里插入图片描述
(完整代码见最后!!!)
一、服务器配置(公众号)

token验证:
原理参考:微信公众平台-------开发-------开发者工具------开发者文档------入门指导------开发者基本配置-----查看逻辑流程图

第一步:本地搭建验证token服务:
(前提,搭建好内网穿透,详情链接:https://blog.csdn.net/qq_41287423/article/details/86547044)
在这里插入图片描述
第二步:微信公众平台配置
微信公众平台------开发------基本配置------服务器配置------修改配置
在这里插入图片描述
在这里插入图片描述
二、jssdk安全域名配置

微信公众平台----设置----公众号设置----功能设置----JS接口安全域名----设置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、测试账号的服务器配置(测试账号可以使用大部分授权微信接口)
微信公众平台------开发者工具------公众平台测试账号------接口配置信息
在这里插入图片描述

四、接入JS-SDK(通过config接口注入权限验证配置,调用微信功能接口,如:微信扫一扫、分享)
第一步:获取获取access_token(每日调用上限2000次,所以一般获取后保存在缓存中,2小时内有效)
第二步:通过access_token,获取jsapi_ticket (同样需要做缓存)

参考:微信公众平台----开发者工具----开发者文档----微信网页开发----微信JS-SDK说明文档
在这里插入图片描述

①获取access_token

开发者工具------公众平台测试账号------接口配置信息
在这里插入图片描述
开发者文档----开始开发----获取access_token
在这里插入图片描述
在这里插入图片描述
②获取jsapi_ticket
开发者文档----微信网页开发----微信JS-SDK说明文档
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
③获取signature签名
创建signature加密模板:model----hash.js
const hash = require(’./model/hash.js’) //引入封装的hash加密模块
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
浏览器访问:http://hmx.nat300.top/jssdk
console.log(config)得到:
在这里插入图片描述

node模板引擎有很多,这里以ejs模板为例:
ejs模板引擎(服务器产生的数据,通过ejs模板动态的渲染到前端页面)
ejs模板使用简单案例,链接:

参考:微信公众平台----开发者工具----开发者文档----微信网页开发----微信JS-SDK说明文档
在这里插入图片描述
① npm install ejs
②新建:views----index.ejs(引入JS文件)
在这里插入图片描述
③配置引擎
在这里插入图片描述
④响应对象的方法render来渲染视图
在这里插入图片描述
在这里插入图片描述
五、通过ready接口处理成功验证

在这里插入图片描述
在这里插入图片描述
打开开发者工具,选择微信公众号项目,输入对应的接口,如以上配置的:http://hmx.nat300.top/jssdk,进行测试
在这里插入图片描述

微信公众号开发,以上配置完整代码,链接:https://blog.csdn.net/qq_41287423/article/details/86571720

2015-10-10 14:40:36 u010592604 阅读数 1275
  • 微信支付开发-微信公众号开发12-微信开发php

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

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

直接一点哈,用的是Java开发的、SpringMvc。自己只是把自己遇到的东西 写下来 ,方便以后查看,大家也可以了解一下。有什么问题可以一起探讨!

如果启用“开发者中心”,则微信公众平台本身的自动回复,自定义菜单则不能用,就必须需要自己去写代码实现功能。

一、配置

这个配置按照微信提示配置就可以了。

二、后台代码

@RequestMapping(value="/api",method=RequestMethod.GET)
	@ResponseBody
	public String initGetAPI(HttpServletRequest request, HttpServletResponse response)
	{
		 // 微信加密签名  
        String signature = request.getParameter("signature");  
        // 时间戳  
        String timestamp = request.getParameter("timestamp");  
        // 随机数  
        String nonce = request.getParameter("nonce");  
        // 随机字符串  
        String echostr = request.getParameter("echostr");
        //正式微信公众号
        String token = "Token";
        try
        {
	        // 通过检验signature对请求进行校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败  
	        if (SignUtil.checkSignature(token,signature, timestamp, nonce)) {  
	            return echostr;  
	        }  
        }catch(Exception ex)
        {
        	return "Illegal Call";
        }
		return "ERROR";
	}
	
	@RequestMapping(value="/api",method=RequestMethod.POST)
	public void initPostAPI(HttpServletRequest request, HttpServletResponse response)
	{
         //业务逻辑
         }





注:一般遇到错误按照微信提示是可以解决的 这里不存什么大问题。


三、开发者中心选择性用

因为启用开发者中心的话自动回复、自定义菜单就没法用了。就得全部自己开发,这个工程量还有有一点小大的,所以没有非要用到开发者中心的话就不要去用。微信开发功能稍微多一点的话,估计都得用了。


2015-01-19 10:56:36 Jahnng 阅读数 1140
  • 微信支付开发-微信公众号开发12-微信开发php

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

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

1、微信公众平台开发通讯机制


微信用户发送微信消息给服务号的时候,消息先发送至微信的服务器,然后微信服务器在把消息推送公众号配置好的接口,第三方后台通过接口接收微信推送过来的消息,根据业务逻辑处理之后,在返回给微信服务器,微信服务器在把第三方返回来的数据发送给微信用户

2、微信后台接口配置 在微信后台的开发者中心中,启用服务器配置,如图所示 

然后修改配置



URL是开发者用来接收微信消息和事件的URL(只支持80端口); TOKEN用来验证签名; EncodingAESKey用来加密消息。 配置好了之后,点击提交的时候,必须要在服务器端正确响应微信的消息,通过检验signature对请求进行校验。若确认此次GET请求来自微信服务器,原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。

1. 将token、timestamp、nonce三个参数进行<b>字典序排序
2. 将三个参数字符串拼接成一个字符串进行sha1加密
3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

下面是php代码:

<?php
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];    
    $token = 'sdfsd';
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );
    if( $tmpStr == $signature ){
        echo $_GET['echostr'];
    }else{
    eccho 'fail';
    }
?>

结果如下图所示:


2017-05-01 16:41:08 y_f_raquelle 阅读数 3540
  • 微信支付开发-微信公众号开发12-微信开发php

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

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

微信公众平台开发者文档:http://mp.weixin.qq.com/wiki/home/index.html


首先申请一个微信公众开发测试账号:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login


申请后会提供appID和appsecret,你需要在自己的代码中添加接口配置的处理。

但此处URL必须为一个公网地址,且使用80端口,这就涉及到之前讲到的公网映射的方式。通常使用ngrok,注册后获得authtoken并配置,使用ngrok http <port>即可将指定端口映射到公网80端口。

接口配置的java示例:(参考Journey的博客

@WebServlet(urlPatterns = "/wx", name = "wxHouseKeeperServlet")  
public class HouseKeeper extends HttpServlet {  
    public static final String TOKEN = "mzmzo";  
  
    @Override  
    protected void doGet(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  
        try {  
            // 开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数  
            String signature = request.getParameter("signature");// 微信加密签名(token、timestamp、nonce。)  
            String timestamp = request.getParameter("timestamp");// 时间戳  
            String nonce = request.getParameter("nonce");// 随机数  
            String echostr = request.getParameter("echostr");// 随机字符串  
            PrintWriter out = response.getWriter();  
            // 将token、timestamp、nonce三个参数进行字典序排序  
            String[] params = new String[] { TOKEN, timestamp, nonce };  
            Arrays.sort(params);  
            // 将三个参数字符串拼接成一个字符串进行sha1加密  
            String clearText = params[0] + params[1] + params[2];  
            String algorithm = "SHA-1";  
            String sign = new String(  
                    Hex.encodeHex(MessageDigest.getInstance(algorithm).digest((clearText).getBytes()), true));  
            // 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信  
            if (signature.equals(sign)) {  
                response.getWriter().print(echostr);  
            }  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }     
}  

此处TOKEN与网页中填写的Token一致即可

接下来配置“网页授权获取用户基本信息


注意填写时不用加http://,只填写域名即可。

完成后扫描下方二维码即可关注自己的公众测试号,网页中会显示关注用户的Openid。

下载微信Web开发工具,即可模拟手机调试


完成登录和绑定后,开发者就可以开始调试微信网页授权,在地址栏直接输入URL

示例: https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx841a97238d9e17b2&redirect_uri=http://cps.dianping.com/weiXinRedirect&response_type=code&scope=snsapi_base&state=type%3Dquan%2Curl%3Dhttp%3A%2F%2Fmm.dianping.com%2Fweixin%2Faccount%2Fhome

这里appid填写之前注册后得到的,redirect_uri指向自己的公网域名下的url,response_type为code,scope为snsapi_base表示静默授权,state填写uri后的mapping。注意这里的redirect_uri和state可能需要urlencode。








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