一、开发前准备

1)准备一个服务器,一个已经备案的域名(小程序开发必须使用:https)

2)涉及到微信支付的,需提前在微信支付商户平台,申请商户号和秘钥

3)如果需要将微信公众号或微信小程序相互打通,需提前在微信开放平台注册账号,并将微信公众号或小程序绑定在一起(此时才会获取到unionid)

二、配置

1)开发配置

操作路径:微信公众平台 —— 开发 —— 基本配置

操作页面

注意:如果是进行公众号网页开发以上配置不是必须的

2)公众号设置

操作路径:微信公众平台 —— 设置 —— 公众号配置

操作页面

注意:以上设置,只有在进行公众号网页开发的时候需要,小程序开发不需要

三、开发

1)微信公众号的开发

微信公众号开发要分为:与微信服务器交互的开发和不与微信服务器交互的开发。与微信服务器交互的开发,就是微信服务器主动与你的服务器通讯,以响应你的请求。例如,你的用户向你的公众号发送一条信息,你的服务器接受到信息后自动发送一条回复消息。

对于与微信服务器交互的开发,首先需要验证微信服务器。在上面的开发配置处,我们已经配置了服务器地址。此服务器地址就是验证微信服务器时,微信服务器需要调用的地址。验证微信服务器时,微信服务器会向此地址发送POST请求,传递一些参数,此地址接受到参数后,需要作出相应的处理。

下面以ThinkPHP的案例来说明

代码样图

代码样图

注意:不需要与微信服务器交互的开发,以上内容可以省略

不管是否需要与微信服务器交互,access_token是必不可少的。因为access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。因此在调用其他接口之前,需要先调用接口获取access_token。

获取access_token,可以调用如下接口:

请求链接

参数说明

返回结果

注意:由于access_token的有效期目前为2个小时,所以在获取到access_token后可以将其以文件的形式保存起来,使用时,先判断保存的access_token是否过期,没有过期则直接使用,过期了则重新调用接口获取新的access_token并保存到文件中。

access_token获取之后,其他接口即可按开发文档直接调用。

2)小程序开发

小程序开发相对于公众号开发而言是比较简单的,其难点就是调起授权登录窗,获取用户信息。那么如何获取用户的登录信息呢?

具体步骤如下:

  • 调用wx.login(OBJECT)接口,获取登录凭证(code),调用后台自己的接口,用code 换取 session_key,获取到session_key后,使用自己的加密方式生成新的session_key,将其返回给客户端,客户端接收到新的session_key后将其保存在本地。

  • 进入其他需要用户信息的页面,先调用wx.checkSession(OBJECT)接口,检测用户登录态是否失效,如果用户登录态失效了,需要重新操作第一步,获取新的session_key

  • 如果登录态没有失效,将之前本地已经保存的session_key传至后台,后台接收到后,通过session_key获取用户信息

3)微信支付开发

微信开发数据的传输使用的是XML格式,因此在接受数据和发送数据时,需要进行XML的封装和解析。微信官方Demo中已经封装相关方法,大家可以根据需要选择版本。

扫码支付。微信扫码支付,有两种模式,模式一不需要预先指定支付用户的openid,而模式二需要预先指定用户的openid。对于模式一,需要先在微信支付商户后台,配置扫码回调地址,然后再根据商品或订单信息生成二维码。微信扫码时,微信服务器会将商品或订单信息及扫码人的openid推送到扫码回调地址。模式一和模式二的不同之处在于获取openid的方式,其他的步骤基本一样,都是调用统一下单API。

转载于:https://www.cnblogs.com/zytrue/p/8547674.html

微信(公众号、小程序)开发相关推荐

  1. .NET Core 微信公众号小程序6种获取UnionID方法,你知道哪几种?

    前言 获取UnionID是开发微信公众号/小程序中很有必要的一个环节,特别是针对一个公司拥有多个公众号小程序而推出的机制,实现打通账户一体化,用UnionID来区分多平台的唯一性. 官方的解释:如果开 ...

  2. 微信,支付宝支付,微信公众号小程序授权等

    微信,支付宝支付,微信公众号小程序授权等 前言 微信支付 微信授权 maven依赖(更新) 前言 最近在公司也做了很多移动端项目,如今微信公众号,小程序又特别火爆,免不了要接触支付,授权这类的业务需求 ...

  3. crmeb打通版开源微信公众号小程序商城框架源码

    crmeb是什么? crmeb是一套客户管理加电商营销系统,基于ThinkPhp6.0+Vue采用前后端分离模式开发,前后台都具有非常标准的API接口,是一款非常优秀的开源微信端及小程序商城框架,能够 ...

  4. python爬虫爬取微信公众号小程序信息

    python爬虫爬取微信公众号小程序信息 爬取内容 某汽车维修信息提供的维修店名称,地点以及电话(手机)号码 爬取步骤 啥也别管,先抓包看看,在这里,博主使用的抓包软件是charles 抓包:将网络传 ...

  5. 微信公众号小程序第三方获取授权流程

    概述 这是一个类似平时的C-S模型,但在这模型中有一个问题,服务器能够获取到客户端的客户唯一标识,在微信中应该就是微信号.应该是出于保护用户隐私的目的,微信选择了使用openid来代替微信号作为唯一标 ...

  6. 微信公众号小程序外卖返利分销系统美团饿了么外卖cps软件源码

    饿了么美团外卖返利程序对接公众号发单机器人分销系统返利源码 美团/饿了么外卖CPS联盟返利公众号小程序裂变核心源码 源代码地址 http://y.mybei.cn 成品展示 截图 步骤 下载以上源代码 ...

  7. 微信公众号/小程序注册认证

    本篇文章主要从注册微信小程序的角度讲如何注册小程序账号. 作为一名小程序开发者,可能您不用操心注册账号和微信认证的事情,这种事情一般可以交由客户去注册. 但当您的客户需要您自己去注册账号时,您可能需要 ...

  8. 微信公众号 小程序 开放平台是什么鬼

    三个东西,公众号,小程序,微信开放平台 公众号,小程序,微信开放平台都要申请及认证 1)公众号申请需要填写企业详情,对公小额转帐验证会退回,不要钱,审核营业资质.最后认证费用300  2)如果你要开通 ...

  9. 如何对接微信公众号/小程序的在线客服

    第一步:下载在线客服软件 二.开启微信客服功能并扫码绑定 第一次登进后默认是没有微信客服项目的,需要在左边先找到"微信客服"模块,然后"开启客服功能"(点击按钮 ...

  10. crmeb一款最适合二次开发的开源微信公众号小程序框架

    crmeb是什么? crmeb是一套客户管理加电商营销系统,基于ThinkPhp6.0+Vue采用前后端分离模式开发,前后台都具有非常标准的API接口,是一款非常优秀的开源微信端及小程序商城框架,能够 ...

最新文章

  1. 在命令行中的vim编辑器加上行号
  2. php中时差怎么改,我的PHP时差功能可以改进吗?
  3. 【原】webpack--loaders,主要解释为什么需要loaders和注意事项
  4. connectionstring mysql_Entity Framework 6 自定义连接字符串ConnectionString连接MySQL
  5. uint8_t / uint16_t / uint32_t /uint64_t  有什么区别?
  6. Linux系统安装yum源报错256,Redhat Linux RHEL6配置本地YUM源及错误处理
  7. python合并csv文件、并利用结果进行计算_python合并csv文件
  8. 有哪些网站社区可以看原创平面设计大师作品?
  9. Linux内存管理 -- smaps讲解
  10. 手把手图文教你从Eclipse项目迁移Android Studio
  11. oracle--merge
  12. 工商银行c语言笔试题,【中国工商银行研发软件笔试试题及答案】 - 面试网
  13. ICPC North America Qualifier 2017 B.Bumped! (分层图 + spfa)
  14. matlab留白,matlab作图导出为PDF去除留白插入latex
  15. 走进Dubbo——RPC框架简介
  16. 一个简单的ADFR的re-docking教程
  17. linux shell 快速掌握
  18. 嘚吧嘚java的发展历史
  19. Ag-Grid学习-angular8
  20. 河海大学计算机专业有哪些,南京师范大学和河海大学的计算机专业

热门文章

  1. ERP实施-客供料管理(受托加工、来料加工)
  2. PyQt5 使用QSqlDatabase连接Mysql数据库时Driver not loaded Driver not loaded
  3. 固定簇半径的分簇协议HEED matlab代码
  4. linux基本命令之文件浏览(cat,more,less,tail,head),文件操作命令(cp,mv,rm,find)
  5. Starling Feathers Controls ButtonGroup
  6. 什么样的热设计是好的热设计?
  7. tf.argmax()的用法
  8. mysql重复记录大于十的数据库_MySQL专题10之MySQL序列使用、MySQL处理重复数据、MySQL以及SQL的注入...
  9. 腾讯御安全加固保护简单分析
  10. 使用LabVIEW读取微软Excel的数据