| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 303 人关注过本帖, 1 人收藏
标题:跟我一起学微信公众平台开发(一)
只看楼主 加入收藏
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:789
专家分:1165
注 册:2021-10-13
结帖率:96.72%
收藏(1)
已结贴  问题点数:20 回复次数:5 
跟我一起学微信公众平台开发(一)
网站终于可以登录了,迫不及待分享我的编程经验。。。

原创 Old Foxer 动感少女旗舰店 2024年09月27日 17:19 浙江
        
微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开放接口则是提供服务的基础。微信公众号的所有功能都可以通过微信提供的api接口实现,我们现在就一起来学习吧。

任何人都可以通过任何编程语言去访问微信公众号的api接口,这里我用的是简单的foxpro语言9.0版,win7系统下编译通过。

首先,我们要申请一个微信公众号,得有个公司主体,有营业执照,申请通过后,微信公众号平台会给你一个AppID和AppSecret,这是2个长字符串,要保存好,别忘记了~~~

调用流程:开发者通过AppID和AppSecret向微信平台申请一个access_token,这也是一个长字符串,这个access_token有时效7200秒(2个小时),每次访问微信平台都要提交这个access_token,到期了就要重新申请,这是一个安全机制。

获得access_token的API接口地址和调用格式如下:

开发文档里是这样写的,https请求方式: 方法GET https://api.weixin.

参数说明

参数            是否必须        说明
grant_type                    获取access_token填写client_credential
appid                         第三方用户唯一凭证
secret                       第三方用户唯一凭证密钥,即appsecret
如果成功则返回一个json格式的数据包

{"access_token":"ACCESS_TOKEN","expires_in":7200}

参数            说明
access_token    获取到的凭证
expires_in      凭证有效时间,单位:秒

如果不成功,则会返回一个包含错误代码的json格式数据包

{"errcode":40013,"errmsg":"invalid appid"}
有了这个调用接口的说明,我们就可以开始我们的微信公众号编程之旅了~

考虑到accesstoken的7200秒的时效性,以及定时刷新的特点,我们可以自定义一个accesstocken类,派生于计时器,定义一个apply方法用于向微信平台申请访问授权,或者说是访问令牌。申请成功则保存返回的accesstoken,失败则返回错误信息。一旦申请成功,激活timer的timer事件,每隔7200自动申请一次,并将accesstoken保存。

apply方法的代码如下:

IF EMPTY(this.appid) or EMPTY(this.secret)
  MESSAGEBOX("您需要APPID和SECRET才能访问微信公众号!")
  this.Interval=0
  RETURN .f.
ELSE
  this.applyurl="https://api.weixin.
  cpara="grant_type="+this.grant_type+"&appid="+this.appid+"&secret="+this.secret
ENDIF

oxmlhttp=CREATEOBJECT("microsoft.xmlhttp")
oxmlhttp.open([POST],this.applyurl)
oxmlhttp.send(cpara)
SET CLASSLIB TO myclass addi
ojson=CREATEOBJECT("myjson")
IF oxmlhttp.readystate=4 AND oxmlhttp.status=200
  cjsonscript=oxmlhttp.responsetext
  ojson.read(cjsonscript)  
  this.access_token=ojson.get("access_token")
  this.expires_in=VAL(ojson.get("expires_in"))
  this.Interval=this.expires_in*1000
  this.errorcode=0
  RETURN .t.
ELSE
  this.errorcode=VAL(ojson.get("errorcode"))
  this.errmsg=ojson.get("errmsg")
  this.access_token=""
  this.Interval=0
  RETURN .f.
ENDIF
  
当初在调试这段代码的时候,碰到2个问题,尝试很久才解决,估计这是新手都会碰到的问题,在这里我也分享给大家。第一个问题是,ip地址白名单问题,原来是微信为了安全,搞了个白名单机制,只有在白名单里的IP地址才可以访问它的API接口,这倒是个比较安全的设置,也就是就算有黑客拿到你的appid和appsecret也没有用。第二个问题是,当我们按帮助文档的方法用get方法去访问接口时,一直返回白名单错误,明明已经设置了白名单,就是拒绝访问。没办法,我只好改用post方法,成功了,至于原因,我也没查到,有人知道,烦请告知我一下~

对此感兴趣的朋友可以留言或私信我,索取完整源代码,记得关注和转发哦~~~

原文链接:https://mp.weixin.
搜索更多相关主题的帖子: this 接口 平台 访问 申请 
2024-10-26 17:05
easyppt
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:302
专家分:696
注 册:2021-11-24
收藏
得分:10 
谢谢分享,
这是个好主题,我想认真的跟帖学习!
2024-10-26 17:11
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1730
专家分:3324
注 册:2012-2-29
收藏
得分:10 
回复 楼主 sam_jiang
谢谢你的爱!
2024-10-26 19:50
jhm
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2021-6-9
收藏
得分:0 
与时俱进!
前天 22:35
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1089
专家分:2682
注 册:2015-12-30
收藏
得分:0 
向楼主学习
昨天 07:48
wxzd123
Rank: 2
等 级:论坛游民
帖 子:393
专家分:69
注 册:2012-9-6
收藏
得分:0 
昨天 07:59
快速回复:跟我一起学微信公众平台开发(一)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041758 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved