-
微信公众号开发的经验与坑
开发准备
- 注册微信公众号(服务号)
- 开通微信支付功能
- 注册开发者账号(微信开放平台)
- 在开发者账号内绑定自己的微信公众号
- 申请测试公众号
在微信公众号平台获取基本参数
- token
- test_token
- appid
- appsecret
- mch_id
- test_appid
- test_appsecret
- server_notify
- key
服务器在获取基本参数
- 验证服务器 (
80
443
端口, 接受GET请求, 验证 签名)
- 获取
ACESS_TOKEN
(用独立服务刷新)
- 配置
JSSDK
- 获取
openid
(oauth2.0
)
微信开发
- 微信支付
注入JSSDK config
其实不用注入也可以成功
- 注入成功之后要验证
Agent
是否支持微信支付
- 客户端输入信息完毕之后, 点击支付后
- 服务器进行输入校验后, 保存订单和用户信息, 然后通过 统一下单接口 生成订单, 并发送给客户端
- 不要使用JSSDK网页上的微信支付接口, 使用 微信支付详情页面示例的微信支付接口进行支付
- 支付成功后, 用
wx.closeWindow()
接口关闭页面
- 微信会给服务器一个回调, 然后服务器更改订单状态, 并通过客服消息接口给客户发个信息反馈(注意重复验证)
- 微信客服消息
- 接受回调, 验证签名和随机字符串是否正确
- 正确之后发布客服消息
- 微信事件通知及被动消息回复
- 在开发者配置里, 把服务器回调网址配置好
- 当微信接到用户特定动作时时, 会给服务器发送事件通知(POST), 然后开发者直接回复
xml
或者 ''
即可
吐槽注意要点
- 微信的
SessionID
会一直变化, 所以不能用Session
去存openid
, 我采用的是cookies
存储
- 微信支付的支付页面, 强匹配网址(http://www.abc.com 和 http://www.abc.com/)都不一样, 有一点网址不一样都不行
- 微信支付的支付 sdk 旧的和新的在微信支付页面没有标明,(JSSDK说明文档上的支付API是旧的), 千万不要用旧的了, 用新的即可
- 微信API上充斥着各种风格的变量名(
noncestr
nonce_str
nonceStr
以及 timestamp
timeStamp
)千万要小心
开发时间
- 采用
nodejs
开发, 微信支付的各种坑踩完 7个工作日
- 后端
CRUD
1个工作日
- 客服消息 不到1个小时
- 微信事件通知及被动消息回复 不到1个小时
-
相关阅读:
C/C++ 读文件
算法和数据结构 图表示
protobuf
C/C++ jsoncpp
C/C++ C++11作用域枚举
腾讯云云函数快速入门实践
Serverless 与 Flask 框架结合进行 Blog 开发
从企业微信机器人到小爱同学,用 Serverless 实现生活智能化!
基于 Serverless 与 Websocket 的聊天工具实现
云函数 SCF 与对象存储实现 WordCount 算法
-
原文地址:https://www.cnblogs.com/onesea/p/13291843.html
Copyright © 2020-2023
润新知