• 微信公众号开发的经验与坑


     

    开发准备

    • 注册微信公众号(服务号)
    • 开通微信支付功能
    • 注册开发者账号(微信开放平台)
    • 在开发者账号内绑定自己的微信公众号
    • 申请测试公众号

    在微信公众号平台获取基本参数

    • 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  润新知