zoukankan      html  css  js  c++  java
  • 微信扫码分析

    业务流程说明:
    (1)商户后台系统根据微信支付规定格式生成二维码(规则见下文),展示给用户扫码。
    (2)用户打开微信“扫一扫”扫描二维码,微信客户端将扫码内容发送到微信支付系统。
    (3)微信支付系统收到客户端请求,发起对商户后台系统支付回调URL的调用。调用请求将带productid和用户的openid等参数,并要求商户系统返回交数据包
    (4)商户后台系统收到微信支付系统的回调请求,根据productid生成商户系统的订单。
    (5)商户系统调用微信支付【统一下单API】请求下单,获取交易会话标识(prepay_id)。
    (6)微信支付系统根据商户系统的请求生成预支付交易,并返回交易会话标识(prepay_id)。
    (7)商户后台系统得到交易会话标识prepay_id(2小时内有效)。
    (8)商户后台系统将prepay_id返回给微信支付系统。
    (9)微信支付系统根据交易会话标识,发起用户端授权支付流程。
    (10)用户在微信客户端输入密码,确认支付后,微信客户端提交支付授权。
    (11)微信支付系统验证后扣款,完成支付交易。
    (12)微信支付系统完成支付交易后给微信客户端返回交易结果,并将交易结果通过短信、微信消息提示用户。微信客户端展示支付交易结果页面。
    (13)微信支付系统通过发送异步消息通知商户后台系统支付结果。商户后台系统需回复接收情况,通知微信后台系统不再发送该单的支付通知。
    (14)未收到支付通知的情况,商户后台系统调用【查询订单API】。
    (15)商户确认订单已支付后给用户发货。

    一、设置回调地址

    商户后台系统根据微信支付规则链接生成二维码,链接中带固定参数productid(可定义为产品标识或订单号)。用户扫码后,微信支付系统将productid和用户唯一标识(openid)回调商户后台系统(需要设置支付回调URL),商户后台系统根据productid生成支付交易,最后微信支付系统发起用户支付流程
    商户支付回调URL设置指引:进入公众平台-->微信支付-->开发配置-->扫码支付-->修改,如下图所示。
    这个支付回调的URL设置的作用是接收用户扫码后微信支付系统发送的数据,根据接收的数据生成支付订单,调用【统一下单API】提交支付交易。

  • 相关阅读:
    货币计算请避免使用float和double
    4、刷新令牌
    Advanced Go Concurrency Patterns
    Go Concurrency Patterns: Pipelines and cancellation
    Go Concurrency Patterns: Context At Google, we require that Go programmers pass a Context parameter as the first argument to every function on the call path between incoming and outgoing requests.
    OSS的SDK网络超时处理
    Redis 到底是怎么实现“附近的人”这个功能的呢?
    阿里云 Redis 开发规范
    百度云的「极速秒传」使用的是什么技术?
    linux中高并发socket最大连接数的优化详解
  • 原文地址:https://www.cnblogs.com/hp123/p/7453153.html
Copyright © 2011-2022 走看看