【API】微信扫码支付

 

微信扫码支付

一、前言

微信支付文档:

https://pay.weixin.qq.com/wiki/doc/api/index.html

说明:

在微信支付开发文档中为程序员提供了下面几种支付的方式,针对不同的支付场景,我们可以选择不同的支付场景。

 

 

这里我们主要是用到了微信扫码支付功能。

 

二、微信支付需要开通的内容

2.1 开通公众平台账号

 2.1.1 注册账号

要使用微信支付我们必须要开通微信公众平台,而且还要开通为服务号。

微信公众平台注册页面:https://mp.weixin.qq.com/ ,注册的时候选择服务号:

 

     

     

2.1.2 输入基本的信息

       注意:每个邮箱仅能申请一种帐号

 

2.1.3 邮箱激活

邮箱收到邮件,点击激活

 

2.1.4 选择类型

选择类型,如果要使用微信支付功能就需要开通服务号,服务号有更高级的接口可以调用,比如微信消息推送,微信支付,微信定时提醒等。

 

 

2.1.5 信息登记

这里注意一下:微信的信息处理是比较严格的,提交的信息会进行审核。

在登记信息的时候,有政府、媒体、企业、组织等,就拿企业举例,需要登记企业的代码、名称、登记证号码、代码证书照片等信息。如果是为公司申请可以,向公司要相关的内容。

 

 

 

2.1.6 公司注册好的服务号

 

 

 

 

 

2.2 开通微信认证

2.2.1 好处

只有开通微信认证的服务号才可以开通更高的接口权限,我们使用的微信支付、消息推送等都需要开通微信认证。

开通微信认证后,下面相关的操作接口都可以使用,接口调用次数也是无上限的:

2.2.2 开通要求

首先要说明的是开通上面的接口中,存在与金钱先关的接口,所以要对开通的企业或者组织等开通做了非常严格的把关,需要提供企业相关的详细信息,并进行严格的审核。

另外还需要开通服务费用:300元/次

 

2.3 开通微信支付相公内容

2.3.1 介绍

微信公众号支付,是微信向有出售物品需求的公众号提供推广销售、支付收款、经营分析的整套解决方案,包括多种支付方式,如公众号(H5网页)支付、扫码支付和刷卡支付,以及多种支付工具,如微信红包、代金券等。

2.3.2 申请

这个步骤申请需要提交相关信息。

 

三、微信支付介绍

3.1 支付方式介绍

在微信支付中,支付方式有很多种,每种支付都有相关的文档,并且提供了相关的demo。

文档地址:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1

3.2 扫码支付介绍

扫码支付可分为两种模式,商户根据支付场景选择相应模式。

【模式一】

商户后台系统根据微信支付规则链接生成二维码,链接中带固定参数productid(可定义为产品标识或订单号)。用户扫码后,微信支付系统将productid和用户唯一标识(openid)回调商户后台系统(需要设置支付回调URL),商户后台系统根据productid生成支付交易,最后微信支付系统发起用户支付流程。

【模式二】

商户后台系统调用微信支付【统一下单API】生成预付交易,将接口返回的链接生成二维码,用户扫码后输入密码完成支付交易。注意:该模式的预付单有效期为2小时,过期后无法支付。

3.2.1 模式一

模式一开发前,商户必须在公众平台后台设置支付回调URL。URL实现的功能:接收用户扫码后微信支付系统回调的productid和openid;URL设置详见回调地址设置

https://pay.weixin.qq.com/wiki/doc/api/img/chapter6_4_1.png

业务流程说明:

(1)商户后台系统根据微信支付规定格式生成二维码(规则见下文),展示给用户扫码。

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

(3)微信支付系统收到客户端请求,发起对商户后台系统支付回调URL的调用。调用请求将带productid和用户的openid等参数,并要求商户系统返回交数据包,详细请见"本节3.1回调数据输入参数"

(4)商户后台系统收到微信支付系统的回调请求,根据productid生成商户系统的订单。

(5)商户系统调用微信支付【统一下单API】请求下单,获取交易会话标识(prepay_id)

(6)微信支付系统根据商户系统的请求生成预支付交易,并返回交易会话标识(prepay_id)。

(7)商户后台系统得到交易会话标识prepay_id(2小时内有效)。

(8)商户后台系统将prepay_id返回给微信支付系统。返回数据见"本节3.2回调数据输出参数"

(9)微信支付系统根据交易会话标识,发起用户端授权支付流程。

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

(11)微信支付系统验证后扣款,完成支付交易。

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

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

(14)未收到支付通知的情况,商户后台系统调用【查询订单API】。

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

生成二维码规则:

二维码中的内容为链接,形式为:

weixin://wxpay/bizpayurl?sign=XXXXX&appid=XXXXX&mch_id=XXXXX&product_id=XXXXXX&time_stamp=XXXXXX&nonce_str=XXXXX

其中XXXXX为商户需要填写的内容,商户将该链接生成二维码,如需要打印发布二维码,需要采用此格式。商户可调用第三方库生成二维码图片。参数说明如下:

表6.1 生成二维码所需参数列表

回调商户支付URL:

商户提供的支付回调URL(回调地址设置)需要实现以下功能:接收用户扫码后微信支付系统发送的数据,根据接收的数据生成支付订单,调用【统一下单API】提交支付交易。

输入参数:

输入参数说明

输出参数:

输出参数说明

3.2.2 模式二

模式二与模式一相比,流程更为简单,不依赖设置的回调支付URL。商户后台系统先调用微信支付的统一下单接口,微信后台系统返回链接参数code_url,商户后台系统将code_url值生成二维码图片,用户使用微信客户端扫码后发起支付。注意:code_url有效期为2小时,过期后扫码不能再发起支付。

业务流程时序图:

https://pay.weixin.qq.com/wiki/doc/api/img/chapter6_5_1.png

 

业务流程说明:

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

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

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

(4)商户后台系统根据返回的code_url生成二维码。

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

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

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

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

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

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

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

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

 

生成二维码规则:

对应链接格式:weixin://wxpay/bizpayurl?sr=XXXXX。请商户调用第三方库将code_url生成二维码图片。该模式链接较短,生成的二维码打印到结账小票上的识别率较高。

  • 11
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值