微信支付方式
1、刷卡支付
刷卡支付是用户展示微信钱包内的“刷卡条码/二维码”给商户系统扫描后直接完成支付的模式。主要应用线下面对面收银的场景。
2、扫码支付
扫码支付是商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”完成支付的模式。该模式适用于PC网站支付、实体店单品或订单支付、媒体广告支付等场景。
3、公众号支付
公众号支付是用户在微信浏览器中打开商户的H5页面,商户在H5页面通过调用微信支付提供的JSAPI接口调起微信支付模块完成支付。应用场景有:
◆ 用户在微信公众账号内进入商家公众号,打开某个主页面,完成支付
◆ 用户的好友在朋友圈、聊天窗口等分享商家页面连接,用户点击链接打开商家页面,完成支付
◆ 将商户页面转换成二维码,用户扫描二维码后在微信浏览器中打开页面后完成支付
4、H5支付(注意和3区分开来)
在微信浏览器之外的浏览器中使用微信支付的方式
5、APP支付
APP支付又称移动端支付,是商户通过在移动端应用APP中集成开放SDK调起微信支付模块完成支付的模式。
使用JSSDK步骤
首先得有微信公众号(最好是服务号,企业产品基本只是用服务号,认证费用为200元)
步骤一:绑定域名
服务号登陆:先登录微信公众平台进入-公众号设置-功能设置-填写JS接口安全域名,服务台根目录放置下载的文件即可
订阅号:好像是在接口权限-js权限-设置
步骤二:引入并使用jweixin-1.2.0.js
微信AUHTOR2授权登陆
微信公众号(公众平台) 和 微信开放平台 是两码事。
在接口的区别上虽然只是scope不同,但是在申请开发过程却差别巨大,他们属于不同的主体
** 公众号(公众平台)** 获取的scope只包括两种:
- snsapi_base是静默获取,用户无感知,只能获取到用户的openid
- snsapi_userinfo是需要弹出授权页面需要用户确认同意的,可以获取到用的详细信息,如头像,昵称,性别,等
- 必须微信内嵌的浏览器才可以使用,官方参考资料:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842
** 微信开放平台** (https://open.weixin.qq.com/)
- 可以获取snsapi_login这种scope。需要有认证的公众号和单独申请开通的微信开发平台认证
- 可以在非微信浏览器使用,但用户必须使用微信进行二维码扫描授权 :
最重要的是公众平台的认证和开放平台的认证是相互独立的,你如果想获取snsapi_login,除了需要有公众号之外还需要重新注册开放平台,交300块钱认证。
如果你只是想实现微信浏览器登陆的话,其实snsapi_base 和snsapi_userinfo也足够了,因为它可以获取到用户的openid,你可以之后用来和自己数据库中作比对;
以上情况都可以获取到openId,但是如果需要unionid 只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。
UnionID
1、请注意,网页授权获取用户基本信息也遵循UnionID机制。即如果开发者有在多个公众号,或在公众号、移动应用之间统一用户帐号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制来满足上述需求。
2、UnionID机制的作用说明:如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为同一用户,对同一个微信开放平台下的不同应用(移动应用、网站应用和公众帐号),unionid是相同的。
公众号授权登陆 : 微信浏览器内嵌登陆
官方参考资料:https://mp.weixin.qq.com/wiki?
0 前端获取APPID
1 第一步:用户同意授权,获取code
2 第二步:通过code换取网页授权access_token
3 第三步:刷新access_token(如果需要)
4 第四步:拉取用户信息(需scope为 snsapi_userinfo)
5 附:检验授权凭证(access_token)是否有效
微信开放平台登陆:二维码扫描登陆
1.注册开发者账号
可以在https://open.weixin.qq.com/ 这里申请开发的账号
2. 在已经登录的界面中选择“管理中心”——》网站应用——》创建网站应用
1.配置安全回调域名
公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页授权- 网页授权获取用户基本信息”的配置选项中,修改授权回调域名,值得注意的是这里就是直接写全域名,如: www.liliangel.cn。然而我们开发h5中一般用的是二级域名,如:h5.liliangel.cn 也同样在安全回调域名中。
公众号支付步骤说明
这里只讲述公众号支付,即微信浏览器中的H5页面调用微信支付的方式。
开发步骤如下:
1.需要有微信服务号(注意区分和订阅号的区别)
2.服务号开通商户平台,并且申请开通支付功能
3.服务和配置中开启微信登(APPID,APPSERCET)
4.根据前端用户的openid在服务器后台调用微信预定单生成,根据返回的xml重新签名后返回给前端
5.用户支付或者取消后,微信服务器异步通知订单生成中提供的回掉接口通知用户服务器订单支付状态,用户自行修改自己的数据并及时反馈xml格式的状态通知返回给微信前端页面调用者