基于微信的开发杂记

本文介绍了微信应用的特点,包括优势和劣势,并详细讲解了微信授权登录和支付的流程,强调了接口调用次数限制和注意事项。此外,讨论了适合微信开发的应用服务类型。还提到了Python开发微信应用的库选择,推荐了wechat-sdk和wechatpy。最后,提供了相关资源链接以供参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上有些书,可以快速过一下,了解大致轮廓。因为微信SDK一直变化,看SDK更准确。SDK在这里

账号需要认证,微信提供的接口会更丰富。或者先用测试账号。

如果对整体的流程没有感觉,可以先看网上有的教程:
http://my.oschina.net/yangyanxing/blog/159215
http://www.cnblogs.com/weishun/p/weixin-publish-developing.html
http://jayveehe.github.io/2015/01/26/nginx-flask/
http://www.infoq.com/cn/articles/wechat-design-dev

服务号可以提供更高级的功能,比如转账啥的,订阅号不行。但服务号群推送的信息数量限制大于订阅号,需要根据情况判断。

每个接口都有每日调用次数限制,这个需要注意了。

微信应用的特点

优势

  1. 易于开发(重在后端,或者,一套H5代码,而不是android,iOS两套东西)
  2. 易于推广,用户容易接受(不需要装额外的app)
  3. 可以作为前期试水的方式,积累第一批种子用户,用户认可了,再做原生app

劣势

  1. 容易受制于微信,它可以随时定制规则
  2. 如果业务有利,做大后面对腾讯的竞争
  3. 复杂逻辑靠H5页面跳转,体验的连贯性有问题(不过,因为大家手机4G还有wifi的提速,在大城市内的加载速度应该越来越不是问题)

适合的应用服务

  • 低频次的服务
  • 用户交互简单,不需要调用外部各种传感器

微信授权登录

在这里要重点指出的是:

  1. 客户端的授权登录是在微信开放平台申请的。
  2. web端的授权登录可以不申请微信公众平台的服务号并完成认证,只要微信开发平台申请了,就能获取高级接口的访问权限。

如果要同一个账号下的多app协调的话,即用户统一识别,需要用UnionID。UnionID需要绑定微信开发平台账号(这么多平台,明显是鹅厂一开始没规划好)…

AppStore控制比较严格,不能只有微信登录,需要有自己的登录,否则会被认为门槛太高而不被通过,具体可见此处血泪史

微信支付

微信支付的官方文档入口在这里

准备:

  1. 测试授权目录与支付授权目录必须不一样
  2. 目录需要以 / 结尾
  3. 支付授权目录的域名必须通过ICP备案

支付流程

官方流程图如下,公众号支付需要参考官方文档
流程图
实现流程上,后端主要是调用统一下单api(https://api.mch.weixin.qq.com/pay/unifiedorder)获取prepay_id,同时在参数里面提供了一个步骤10需要的异步回调响应。
对于H5端的代码,可以参考网上示例

注意点
  1. 资金如需支持回滚,需要配置商户证书,证书文件的获取参考在线文档
  2. 商户系统必须能够正确处理重复的通知。
    如果微信端收到商户的应答不是成功或超时,微信认为通知失败,微信会通过一定的策略定期重新发起通知,尽可能提高通知的成功率,但微信不保证通知最终能成功。 (通知频率为15/15/30/180/1800/1800/1800/1800/3600,单位:秒)。所以,同样的通知可能会多次发送给商户系统。
  3. 商户系统对于支付结果通知的内容一定要做签名验证,防止数据泄漏导致出现“假通知”,造成资金损失。推荐的做法是,当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。

功能验收

钱无小事,功能调通了,还需要根据在线文档验收做功能安全性验收。

  • 通过沙箱环境测试(上线前要改回来)
  • 沙箱环境中,模拟各种异常
  • 严格按照验收用例执行

Python用什么库

对于微信公众号里面与用户的各种语音,点击,文字交互,可以直接参考SDK写,但一般有如下几种选择

不推荐werobot,除非是非常简单的项目,因为这个封装得有点过,如果后端还有其他的服务,要通过blueprint做模块化划分的话,会比较麻烦。
wechat-sdk的文档很好,简单,容易上手,但是封装的api比较少,如果搭建有支付场景的后端,它就不支持了。同时,wechat-sdk的作者已经有几个月没更新了,不清楚后续维护无任何。
wechatpy在这3个里面是接口封装最全的,而且作者一直在更新,感觉保障会多些。但这个SDK的示例和文档非常弱,有些东西怎么用,需要看源代码才能搞清楚。

php的用户,可以使用 easywechat

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值