微信APP支付步骤说明

微信支付
我们主要使用的是扫码支付,
整个过程:

(1)我们系统根据用户选购的商品生成订单。

(2)用户确认支付后调用微信支付【统一下单API】生成预支付交易;

(3)微信支付系统收到请求后生成预支付交易单,并返回交易会话的二维码链接code_url。

(4)我们系统根据返回的code_url生成二维码。

(5)用户打开微信“扫一扫”扫描二维码,微信客户端将扫码内容发送到微信支付系统。

(6)微信支付系统收到客户端请求,验证链接有效性后发起用户支付,要求用户授权。

(7)用户在微信客户端输入密码,确认支付后,微信客户端提交授权。

(8)微信支付系统根据用户授权完成支付交易。

(9)微信支付系统完成支付交易后给微信客户端返回交易结果,并将交易结果通过短信、微信消息提示用户。微信客户端展示支付交易结果页面

(10)微信支付系统通过发送异步消息通知我们系统支付结果。我们系统需回复接收情况,通知微信后台系统不再发送该单的支付通知。

(11)未收到支付通知的情况,我们系统调用【查询订单API】。

(12)商户确认订单已支付后给用户发货。

精简后:
  我们系统生成自己的订单 调用微信发起统一下单 
  根据返回的url生成用户支付二维码 用户扫码调用微信支付 
  用户支付后微信根据我们统一下单传递的回调地址进行回调 
  我们这边根据结果进行订单处理,
  如果订单支付结果没有明确回调,我们后台还要定时的去微信那边进行查询订单状态后同步我们本地的订单状态

统一下单:首先是我们系统要先根据用户选择商品等进行本地订单生成,在后台调用微信的统一下单接口,传入我们的商户信息 商品订单信息和回调地址等 通过http xml(微信提供的官方例子)方式发送请求,微信会给我们返回一个code_url(扫码地址 code_url有效期为2小时)和prepay_id(预支付id),我们后续可以直接根据code_url来生成二维码供用户扫码,还可以通过prepay_id来发起订单查询,来查看订单状态。

微信回调我们系统地址:在统一下单时候我们传递了一个notify_url 这个地址是为了让微信支付后回调我们,微信成功后会异步调用这个接口并把订单号和支付状态发送给我们,我们在接口中要根据订单查找到我们本地的订单并进行状态变更。如果没有在统一下单传递notify_url,那么将无法接受到回调请求。一般来说如果我们没有收到回调,在用户再次进入到订单详情页前或者在后台某个时刻我们应该主动发起请求来查询订单的状态,根据状态更新我们本地订单状态。

订单查询:发起查询订单可以发送我们系统的订单id 或者是 微信给我们返回的prepay_id 来进行支付状态查询,根据结果来更新订单。一般如果订单状态确定后5分钟后可以进行订单关闭,防止用户重复发起支付,提升用户体验。

猜你喜欢

转载自blog.csdn.net/Xiayubing_/article/details/81381655