2016-09-06 16:07:59 chen517611641 阅读数 4423
  • 微信支付开发-微信公众号开发12-微信开发php

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

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

##准备工作
1.ngrok,微信的接口有一些是被动的接收从微信服务器发送的消息的,所以需要提供一个域名给微信服务器,ngrok可以将本机的指定端口,映射到一个域名。花生壳什么的也可以。
2.微信web开发者工具,微信官方的调试工具
##测试账号配置
###测试账号信息
在测试账号管理界面,你可以获取到AppID和APPSecret。
###接口配置信息
这里写图片描述

验证URL有效性成功后即接入生效,成为开发者。如果公众号类型为服务号(订阅号只能使用普通消息接口),可以在公众平台网站中申请认证,认证成功的服务号将获得众多接口权限,以满足开发者需求。

此后用户每次向公众号发送消息、或者产生自定义菜单点击事件时,开发者填写的服务器配置URL将得到微信服务器推送过来的消息和事件,然后开发者可以依据自身业务逻辑进行响应,例如回复消息等。

下面的文档描述了这个接口的作用:
http://mp.weixin.qq.com/wiki/8/f9a0b8382e0b77d87b3bcc1ce6fbc104.html
###JS接口安全域名
这里写图片描述
配置在ngrok生成的域名,配置这个配置项的目的是让开发者可以在该域名下调用微信开放的JS接口。
JS-SDK相关的内容可以看这里:
http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
###测试账号二维码
这里写图片描述
用测试账号扫一下这个二维码,就能关注这个测试账号了,回复信息什么的就可以测试了。
###体验接口权限列表
这里写图片描述
测试账号默认大部分接口都是默认开启的,有几个需要手动开启。
这里需要注意的是网页授权获取用户基本信息这个。
这里写图片描述
如上所示,这里需要配置一个域名,网页授权成功回调的时候,必须是这个域名下的地址才行,不然就报scope参数错误或没有scope权限的错误。
至此,开发环境就搭建好了,可以按照微信公众平台开发文档里的微信网页开发部分写一个网页授权获取基本信息的demo了。

2016-05-03 16:54:45 dream20nn 阅读数 6043
  • 微信支付开发-微信公众号开发12-微信开发php

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

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

1.微信测试号申请:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

2.接口配置填写:由于此处URL只支持线上,而我们开发都在本地,所以要用到下面介绍的


3.Ngrok,一款国外的内网穿透利器,好处是监听本地端口映射到外网,支持外网访问本地环境【微信官方在QQ浏览器中内嵌了微信的本地测试环境其实就是用的Ngrok】这东西被墙了,并且只有注册了【貌似现在要付费?】才支持自定义域名【如果不是自定义域名,那么每次启动域名都随机,第2步中的URL还要每次变,很麻烦】

4.Natapp.cn-->基于Ngrok的免费内网穿透利器,名如其意。官网下载对应系统安装包,WINDOWS下解压,在对应文件夹内打开cmd然后执行下面的命令

【Ngrok -config ngrok.cfg -subdomain myqpp 8080】由于咱们用的Tomcat所以监听8080端口,myapp处输入自己需要设定的名称

5.执行4后下面的域名则为外网地址,访问此域名也就是访问-->127.0.0.1:8080


6.将此域名填写到第2步中的URL中,TOKEN随便填写即可,先不要点击提交【微信开发文档中有个例子,PHP的,用于验证服务器地址的有效性】

7.先不要启动咱的项目,先打开一个没有部署任何APP的Tomcat,在webapp/ROOT下面新建一个JSP页面,页面清空【不需要head,body等信息,清空所有】然后粘贴下面的代码

<%
out.print(request.getParameter("echostr"));
%>

8.点击提交即可绑定成功,然后用自己的微信扫面下方二维码关注测试公众号


9.由于获取用户userinfo,需要设置授权回调域名页面



10.现在可以关掉tomcat然后用咱们自己的项目进行开发了,注意替换对应的appID和appsecret

2019-01-11 17:15:41 weixin_38091174 阅读数 256
  • 微信支付开发-微信公众号开发12-微信开发php

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

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

背景说明:
线上公众号有问题需要修改,在本地开发完成之后要测试,这时必须在本地搭出测试环境。

大致步骤:

  1. 有能调用微信所有接口的测试公众号!公司有两个公众号,处于无人打理、关注者不多的状态,所以就用公司的公众号来作为测试公众号。

  2. 把项目里关于公众号的配置由正式的换成测试公众号的,包括appid、secret、mch_id、key、sslcert_password、notify_url、各种template_id以及API证书。
    因为线上公众号包含微信支付功能,所以需要设置微信支付相关的参数(mch_id、key、sslcert_password)。我们项目把参数配置在web.config里,所以直接修改web.config就可以了:
    在这里插入图片描述
    测试公众号的API证书从微信商户平台下载,然后放到线上证书的存放路径下:
    在这里插入图片描述
    如果其他参数都已更换成测试号的,但是API证书没有更换成测试号的,微信支付时会提示“网络密码错误”。

  3. 将测试者设置成公司公众号的开发者,同时将测试者电脑的公网ip加入公司公众号的白名单。

  4. 使用内网穿透工具,将本地项目网址映射成外网可以访问的网址。
    内网穿透具体步骤:
    我使用的内网穿透工具是ngrok,下载地址http://ngrok.ciqiuwl.cn 下载好之后,可以直接打开 小米球Ngrok启动工具.bat,会出现下图窗口:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    通过工具映射后,http://keno.ngrok.xiaomiqiu.cn 映射的就是网址:http://127.0.0.1:52

  5. 把项目运行起来,网址是localhost:52/Home/Index,那外网可以直接访问http://keno.ngrok.xiaomiqiu.cn/Home/Index进行测试了。
    如果可以成功加载出页面,到此测试环境就算搭建成功了。如果不能成功加载出页面,可能是因为项目允许外部访问地址里没有127.0.0.1。由于http://keno.ngrok.xiaomiqiu.cn 映射的是网址:http://127.0.0.1:52,如果项目不允许外部访问127.0.1,那肯定加载不出来的。解决办法是打开项目的配置文件(项目文件夹.vs\config\applicationhost.config),在localhost的下面添加:然后直接在手机微信里访问,如果可以成功加载出页面,到此测试环境就算搭建成功了。如果不能成功加载出页面,可能是因为项目允许外部访问地址里没有127.0.0.1。由于http://keno.ngrok.xiaomiqiu.cn 映射的是网址:http://127.0.0.1:52,如果项目不允许外部访问127.0.1,那肯定加载不出来的。解决办法是打开项目的配置文件(项目文件夹.vs\config\applicationhost.config),在localhost的下面添加:
    在这里插入图片描述
    添加之后,重新访问,应该就能成功加载出页面了。

备注:
1、测试公众号最好保持和线上公众号一样的类型,开通一样的功能。
2、查询公网ip的方法:直接在浏览器搜索框输入“ip”,第一条结果就是自己电脑的公网ip。
3、测试环境部署成功之后,可以有三种方式进行测试,一是给测试公众号添加一个子菜单,指向测试网址;二是将网址发送到手机微信,访问测试;三是在电脑安装微信开发者工具,在地址栏输入测试网址访问测试,但是这个方式无法测试关于支付的功能。
4、内网穿透后,有时候会掉线,状态会变成Reconnecting,这时候外网就不能访问了。它掉线之后隔段时间会自己又连上,这个时间不确定长短的……我也没找到可以让它恢复的方法,每次只能呆等它自动恢复。
5、第5步修改配置文件的,一般.vs文件夹是隐藏的,这时候设置文件夹选项让它显示即可找到。
6、测试时内网穿透的控制台窗口要保持开启,一旦关闭就关掉映射了;同时项目要一直运行,如果不想一直运行项目,可以将项目发布到IIS再测试,这样可以让测试和开发同时进行。当然如果想调试的话,就要把项目以Debug模式运行起来再测试了。

2017-02-07 19:37:07 tianjunwenhappy 阅读数 8465
  • 微信支付开发-微信公众号开发12-微信开发php

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

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

一、微信开发环境搭建

  1、申请一个测试的公众号。

  2、用来调式代码的开发环境

1.1注册测试公众号(为什么要注册测试公众号:因为接口多,适合学习和研究。)

测试公众号的注册地址为:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

只需要到这个页面,点击登录,并用自己的微信客户端扫码,并授权登录,就可以获得属于自己的测试公众号。

测试公众号具备几乎所有的接口,所以平时学习微信公众号开发时,就可以去注册一个测试公众号,然后使用这个测试公众号做开发就可以了。

注册测试公众号的步骤如下图所示:


扫描二维码登录:


登录成功后,就可以看到腾讯分配给我们的测试公众号的信息了,如下图所示:


测试公众号的所拥有的接口权限如下:


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


1.2、搭建微信本地调试环境(切记是本地,主要还免费):

本次教程使用的软件是Ngrok:主要实现内网穿透功能,也就是说本地计算机可以让外网访问到,借此我们就不需要租用服务器,也可以开发微信公众号了。

国内提供Ngrok服务比较好的网站是:http://natapp.cn/,如下图所示:

   

点击立即下载:


下载对应的系统版本;

同时在官方注册一个免费的帐号:需要取得authtoken;


下载完后解压文件到任意一个文件夹(建议全英文路径)

    config.ini方式 (推荐):
     
 根据操作系统下载不同的config.ini文件到刚才下载的natapp.exe同级目录
    将得到的authtoken填进去 (其他地方都不填),然后保存 
           

    再直接双击natapp.exe 即可.


或者通过

cmd -authtoken= 参数方式运行.
    
  windows ,点击开始->运行->命令行提示符 后进入 natapp.exe的目录
     运行

natapp -authtoken = {authtoken值}


运行成功后是这样的:



Tunnel Status  Online 代表链接成功
Version      当前客户端版本,如果有新版本,会有提示
Forwarding    当前穿透 网址 或者端口
Web Interface  是本地Web管理界面,可在隧道配置打开或关闭,仅用于web开发测试
Total Connections 总连接数

Avg Conn Time 0.00ms 这里不代表,不代表,不代表 延时,需要注意!


将natapp分配的网址(上图Forwarding ),鼠标选定然后复制下来(选定之后单击鼠标右键),在浏览器中访问,可以看到内网穿透成功了!


该网址  http://ywy9n8.natappfree.cc  就是可以全球访问的网址,可以发给您的小伙伴试试 :)


注意:该路径为D:/WWW文件夹


还有不懂的可以看官方教程:https://natapp.cn/article/natapp_newbie

     


2019-04-16 22:08:09 Milogenius 阅读数 256
  • 微信支付开发-微信公众号开发12-微信开发php

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

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

在这里插入图片描述
导读
小伙伴们,在前面的博客中.我们做了微信公众号开发的准备工作.今天我们来搭架微信公众号项目,并且将本地项目通过穿透工具和微信服务器调通.

一.搭架微信公众号项目

在我的微信开发中好用的开源项目这篇文章中,我介绍了一款开源的微信开发SDK。我们的项目就是基于文中所提到的demo项目来搭建。

由于时间缘故,在这里我们就不花时间来介绍项目搭架的步骤。我已经将项目搭建好传到码云,请大家下载即可。

项目地址:https://gitee.com/milogenius/milogenius-wechat

在这里插入图片描述
项目下载完毕,目录结构如下图:
在这里插入图片描述
接下来,我们需要在application.yml配置文件中,配置自己微信测试公众号的相关信息。
在这里插入图片描述
注明:假如没有自己的测试公众号,可以阅读申请微信公众账号测试号这篇文章,申请自己的测试公众号,然后获得微信公众号的相关信息。
在这里插入图片描述
综上所述,我们的微信公众号项目搭建完毕,然后启动项目。

二.启动cpolar穿透工具

在这里插入图片描述
大家在application.yml配置文件中可以发现,我们项目的端口是9998,因此我们需要开启穿透工具的9998端口号。

开启命令:
cpolar http 9998

注明:如果你还没有安装cpolar穿透工具,请参见我的另一篇博客windows下安装cpolar

我们开看看正常启动的界面:
在这里插入图片描述

三.微信测试公众号配置相关信息

我们知道,当我们开发机联调外网,通过一些操作,就可以调用微信的接口获取想要的信息。那么微信服务器如何调用我方服务器?大家都知道我们开发机一般都是内网,微信服务器无法直接调用我们的服务,这个难题在我们利用穿透工具之后迎刃而解。现在打通了网络,但是我们要告诉微信服务器去请求谁,这就是我们接下来要做的配置。

1.接口配置信息

微信公众号项目认证入口类WxPortalController

@RestController
@RequestMapping("/wx/portal/{appid}")
public class WxPortalController {
    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    private WxMpService wxService;

    private WxMpMessageRouter messageRouter;

    @Autowired
    public WxPortalController(WxMpService wxService, WxMpMessageRouter messageRouter) {
        this.wxService = wxService;
        this.messageRouter = messageRouter;
    }

    @GetMapping(produces = "text/plain;charset=utf-8")
    public String authGet(@PathVariable String appid,
                          @RequestParam(name = "signature", required = false) String signature,
                          @RequestParam(name = "timestamp", required = false) String timestamp,
                          @RequestParam(name = "nonce", required = false) String nonce,
                          @RequestParam(name = "echostr", required = false) String echostr) {

        this.logger.info("\n接收到来自微信服务器的认证消息:[{}, {}, {}, {}]", signature,
            timestamp, nonce, echostr);
        if (StringUtils.isAnyBlank(signature, timestamp, nonce, echostr)) {
            throw new IllegalArgumentException("请求参数非法,请核实!");
        }

        if (!this.wxService.switchover(appid)) {
            throw new IllegalArgumentException(String.format("未找到对应appid=[%s]的配置,请核实!", appid));
        }

        if (wxService.checkSignature(timestamp, nonce, signature)) {
            return echostr;
        }

        return "非法请求";
    }

通过查看认证入口类,我们可以获得配置的路径

域名/wechat/wx/portal/测试公众号的appid

例如:https://6dd0c0b1.cpolar.io/wechat/wx/portal/wx5862395d992d

接下来,我们将路径配置到测试公众号相关位置(token随便填)之后,点击认证。

假如失败,会如下图所示:
在这里插入图片描述
如果我们出现上述情况,多点几次认证,就会成功,可能和穿透工具不稳定有关。
假如成功,会如下图所示;
在这里插入图片描述
配置完成如下图所示:
在这里插入图片描述

2.JS接口安全域名

配置方式同上:
在这里插入图片描述

3.网页授权获取用户基本信息

在这里插入图片描述
友情提示:这里配置域名不带https://,请大家格外注意。

四.总结

通过上面的步骤,我们就完成了微信公众号项目的搭建和本地服务器与微信服务器网络策略的调试,接下来,我们就可以学习微信公众号的各个功能。

返回专栏目录
没有更多推荐了,返回首页