对微信小程序--导入抽样数据小功能的总结(20190420)

背景:1.从来没有接触过小程序的小白,被安排做实现这个功能
2.对于微信小程序的一些名词都不太懂,得事先搜索

任务:拿到自己想要的数据,按照微信官方“xxx导入数据格式文档”格式上传数据,并返回正确值
PS:做完才发现,也不是很难

过程:
这个小任务的重点就是,一定要按照微信官方“xxx导入数据格式文档”格式上传数据,一点儿都不能差!
1.面是文档的部分内容:

http请求方式:POST
http://api.weixin.qq.com/wxa/setdynamicdata?access_token=ACCESS_TOKEN

POST数据示例如下:

{
    "lifespan": 86400,
    "query": "{\"type\":1011072}",
    "scene": 1,
    "data": "{\"items\": [{XXX},{XXX},{XXX}], \"attribute\": {\"count\": M, \"totalcount\": N, \"id\": \"XXX\", \"seq\": i}}"
}

2.名词解析:
access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。

公众平台的API调用所需的access_token的使用及生成方式说明:

<1>、建议公众号开发者使用中控服务器统一获取和刷新access_token,其他业务逻辑服务器所使用的access_token均来自于该中控服务器,不应该各自去刷新,否则容易造成冲突,导致access_token覆盖而影响业务;

<2>、目前access_token的有效期通过返回的expire_in来传达,目前是7200秒之内的值。中控服务器需要根据这个有效时间提前去刷新新access_token。在刷新过程中,中控服务器可对外继续输出的老access_token,此时公众平台后台会保证在5分钟内,新老access_token都可用,这保证了第三方业务的平滑过渡;

<3>、access_token的有效时间可能会在未来有调整,所以中控服务器不仅需要内部定时主动刷新,还需要提供被动刷新access_token的接口,这样便于业务服务器在API调用获知access_token已超时的情况下,可以触发access_token的刷新流程。

公众号和小程序均可以使用AppID和AppSecret调用本接口来获取access_token。AppID和AppSecret可在“微信公众平台-开发-基本配置”页中获得(需要已经成为开发者,且帐号没有异常状态)。调用接口时,请登录“微信公众平台-开发-基本配置”提前将服务器IP地址添加到IP白名单中,点击查看设置方法,否则将无法调用成功。小程序无需配置IP白名单。

重点记住:access_token目前是2小时内有效
PS :顺便贴上官方链接
https://mp.weixin.qq.com/wiki?action=doc&id=mp1421140183&t=0.2761844075184767

3.坑来了

我开始按照文档上的参数,全程使用JSON,最后返回的数据并非我想要得到的

全程使用 JSONObject js = new JSONObject();
然后js.put(“key”,“value”);

结果得到的却是:
{
“data”: {
“attribute”: {
“totalcount”: 1522,
“count”: 100,
“id”: “XXXX”,
“seq”: 0
},
“items”: ["{ “country”:“美国”,“city”:“德克萨斯”,“university_name”:“艾柏林基督大学”}"]
},
“lifespan”: 86400,
“query”: {
“type”: “XXXXX”
},
“scene”: 1
}

后来通过请教和仔细对比文档,才发现,他们都是通过 对象 的一步一步嵌套,最终解析的。(里里外外全是JSON)

通过查询,有的码农兄说是全部必须是JSON格式不仅是外面,data里的数据也是标准的JSON格式!
JSONObject用的是阿里巴巴的fastjson

仿佛看到了曙光,按照这个思路,从头来做,New对象、配置属性、循环掉数据、赋值、转JSON。。。。。
最后终于完成了,返回了想看到的

“{“errcode”:0,“errmsg”:“ok”}”

贴上全局返回码说明
在这里插入图片描述
中途经历的错误有:

{“errcode”:40164,“errmsg”:“invalid ip 114.253.247.109, not in whitelist hint: [BblmLA01182790]”}
错误解析:字面意思,你的IP不在小程序的白名单中,不让你访问
实质上是:我在自己直接链接GET请求尝试获取token的时候,本机没有在管理后台配置上我为白名单,所以微信后台不认识我IP,不让我访问,后来问了同事,才知道,项目里面有获取有效Token的方法(其实项目也是发送请求获得的,因为项目本身有参数配置,跑起来以后,发送请求就能返回token)

获取ToKen的官方链接,上面的官方链接里面有解析,这里就不多说了
https请求方式: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

总结:通过这个小任务,初步了解了小程序相关的知识,还有JSON的使用有了深一步的了解,同时自己也申请了一个开发者帐号,可以开发,以后有空再分享,自己开发中的坑。

后面还会有第二部—配置后台测试接口 的任务让我做,等做完再来分享自己的坑。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
微信小程序是一种基于微信平台的应用的开发模式,可以快速的开发出符合用户需求的小程序。在小程序的开发中,组件是一个非常重要的概念,通过组件可以实现复用性和模块化编程思想。 组件应用是小程序开发的基础。通过组件可以将某一模块化并封装起来,使得组件可以在不同的页面间得到复用,大大提升了开发效率并减少了代码冗余。微信小程序提供了丰富的自带组件,包括文本、图片、按钮、输入框等等,开发者也可以自己开发组件来满足自己的需求。实际开发中,通过组件可以快速搭建页面框架和业务逻辑。 Demo是一个演示小程序的示例程序。在小程序的实际开发过程中,一个好的Demo非常重要。通过Demo,开发人员可以更深入的了解小程序的开发流程、组件的应用和实际的业务开发等等。在Demo中,通常会包括小程序的一些基础操作,如页面跳转、数据绑定、组件的使用等。而在实际开发中,Demo还会包括一些复杂的业务场景,如支付、登录、数据列表展示等等。Demo不仅为开发者提供了学习和实践的机会,也方便了使用者了解该小程序功能和特点。 总之,微信小程序组件的应用和Demo的开发都是小程序开发过程中非常重要的两个部分。良好的组件应用和精心设计的Demo,可以在极短的时间内实现小程序开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值