微信怎么开启刷脸支付功能(手把手教你接入微信支付)

随着微信小程序的发展,越来越多的移动应用选择微信产品作为媒体。无论是微信官方账号开发,还是小程序开发,微信支付始终是一个无法回避的话题。由于微信支付涉及到很多场景,本文只学习如何在微信官方账号和小程序中接入微信支付。

一、微信支付的前提条件1.1 公众号

微信官方账号大致可以分为服务号和订阅号。订阅号和服务号的具体区别在之前的一篇文章Spring Boot开发微信微信官方账号中有介绍,在此不再赘述。一般来说,服务号提供的功能更高级。

微信支付接入需要已完成微信认证的服务号。如果是小程序,还需要完成微信认证

微信官方账号可以关联10个相同主题的小程序和3个不同主题的小程序。如果是与微信官方账号相同题材的小程序,且微信官方账号已经完成认证,可以直接在微信官方账号后台小程序管理中快速注册认证,这样就不需要重复支付300人民币的微信认证费用。



1.2 微信商户平台

微信认证完成后,将在微信官方账号的微信支付后台启用微信支付功能。提交微信支付申请后,3-5个工作日审核完毕。审核通过后,会有一封包含商户号信息的邮件发送到你填写的邮箱,几毛钱的汇款会发到你填写的企业账户,具体金额需要你核对后在商户平台验证。

商户分为普通商户和服务商。不要申请错了。

普通商人可以交易,但不能拓展。

服务商可以拓展商户,但不能交易。

服务提供商将提供统一的支付门户。它需要绑定特定的普通商户。微信支付时,会在支付接口中携带普通商户参数。付款成功后,金额将直接转入特定普通商户账户。



申请时,直接向普通商户申请即可。

1.3 绑定商户

微信支付的推出取决于微信官方账号、小程序和商户号的绑定关系。所以在开发之前,需要将商户与具体的应用进行绑定。

如果要绑定的商户和AppID是同一个主体,只需要以下步骤就可以完成绑定。

  • 在商家平台-产品中心-AppID账户管理中关联AppID,输入AppID申请绑定。
  • 在微信官方账号或者小程序后台微信支付-商户号管理中确认。


  • 如果商家和要绑定的AppID是不同主体,步骤同上,除了输入AppId,还需要填写AppId的认证信息。



    二、微信支付相关配置2.1 支付产品类型

    1。通过付款代码付款

    用户打开微信钱包-支付码接口,商家扫码提交支付。

    2。JSAPI支付

    用户通过微信扫码、关注微信官方账号等方式进入商家的H5页面,并在微信中调用JSSDK完成支付。

    3。本地支付

    用户打开微信,扫描商家二维码,完成支付。

    4。APP支付

    商家在APP中集成微信SDK,用户点击跳转到微信完成支付。

    5。H5付款

    用户在微信以外的手机浏览器中请求微信支付的场景,唤起了微信支付。

    6。小程序支付

    用户在微信小程序中使用微信支付的场景。

    7。刷脸支付

    不需要拿出手机刷脸就能完成支付,适用于各种线下场景。

    在商家平台-产品中心-我的产品中申请开通支付产品。



    2.2 支付授权目录配置

    在商家平台-产品中心-开发配置中配置支付授权目录(即你开发的订购接口的地址)。需要注意的是,授权目录最多可以配置。请在开发过程中合理定义支付接口。



    2.3 配置商户密钥

    在商户平台-账户中心-API安全中设置API密钥。



    第一次设置的时候需要安装操作证,傻瓜式安装,按照提示一步一步来。

    API密钥需要一个32位随机字符串。记住不要随意更改API键



    在微信APIv3的版本中,除了配置API key,还需要配置API v3 key,申请CA颁发的API证书。

  • API v3密钥主要用于平台证书解密和回调信息解密。
  • api证书用于调用更高级别的API接口,包括退款、红包等接口。
  • 如果使用开源的微信开发包,请弄清楚是否支持v3版本

    2.4 配置服务器

    在微信官方账号后台-开发-基础配置-服务器配置中启用并填写服务器信息。



    2.5 白名单配置

    在微信官方账号后台-开发-基本配置-微信官方账号开发信息中配置开发者密钥,填写IP白名单。



    2.6 JS接口安全域名

    在微信官方账号后台-微信官方账号设置-功能设置中设置JS接口安全域名。



    以上配置基于微信官方账号支付配置。小程序支付没那么麻烦。小程序支付不需要配置支付授权目录和授权域名。



    三、微信支付流程

    由于微信升级了API接口,需要在API v3接口加载应用的API证书。微信已经打包了相关的jar包,并提供了加载示例。详见“https://pay . weixin . QQ . com/wiki/doc/API v3/open/pay/chapter 2 _ 3 . shtml”,此处不再赘述。我们以API v2为例,详细研究一下微信接入的主要流程(因为API v3的部分接口还在不断升级,v2接口也比较齐全)。



    上图来自微信开发文档,下面详细分析一下支付流程。

    3.1 微信下单接口

    用户通过微信客户端发起支付,在商家后台生成订单,然后调用微信下单接口,生成预付款订单,返回订单号!

    对于订购界面中涉及的主要参数,仅列出几个重要参数:



    Sign的签名也很常见,涉及一个nonce_str,保证了签名的不可预测性。

  • 按字典对所有发送的非空参数进行排序,生成键值对(key 1 = value 1 & key 2 = value 2);
  • 将商户平台密钥拼接到上述字符串的末尾(& # 34;字符串& # 34;+& key = key);
  • 用MD5加密上述字符串。
  • 3.2 支付

    拉起微信支付,输入密码,完成支付。这一步需要在H5网页中执行JS催缴。

    需要以下参数,所以当预付订单返回和时,需要将以下参数打包后响应页面,页面完成支付。



    签约方式与订购界面相同。

    JS伪代码如下:

    function onBridgeReady(){ weixinsbridge . invoke( & # 39;getBrandWCPayRequest & # 39{ //微信官方账号ID,商家传入 & # 34;appId & # 34:"wx 2421 B1 c 4370 EC 43 b & # 34;, // timestamp,1970年以来的秒数 & # 34;时间戳& # 34;:"1395712654",[/h //随机字符串 & # 34;非核心& # 34;:"e 61463 F8 EFA 94090 B1 f 366 cccfbbb 444 & # 34;, & # 34;套餐& # 34;:"prepay _ id = u 802345 jgfjsdfgsdg 888 & # 34;,[/h //微信签名方式 & # 34;signType & # 34:"MD5 & # 34,[/h //微信签名 & # 34;paySign & # 34:"70ea 570631 E4 bb 79628 fbca 90534 c 63 ff 7 fadd 89 & # 34; }, function(RES){ if(RES . err _ msg = = & # 34;get _ brand _ WC pay _ request:ok & # 34;){ //使用上述方法判断前端返回,微信团队郑重提醒:[/h // res.err_msg在用户支付成功后会返回ok,但不保证绝对可靠。 } }); } if(type of weixinsbridge = = & # 34;未定义& # 34;){ if(document . addevent listener){ document . addevent listener(& # 39;WeixinJSBridgeReady & # 39,onBridgeReady,false); } else if(document . attach event){ document . attach event(& # 39;WeixinJSBridgeReady & # 39,onBridgeReady); document . attach event(& # 39;onWeixinJSBridgeReady & # 39,onBridgeReady); } } else { onBridgeReady(); } 注意伪代码中的这句话// res.err_msg在用户支付成功后会返回ok,但不保证绝对可靠。为什么这么说?我给你举个例子。如果去超市买东西,是不是说付款成功后就可以把东西拿走了?肯定不是。只有商家收到钱,你才能支付成功,然后你才能拿走东西。也就是说,这里的提示成功并不代表支付一定成功。成功与否,微信平台会异步通知。

    3.3 异步通知

    异步通知是一个重要的步骤,您可以根据通知结果处理您的业务逻辑。但由于网络波动等原因,通知可能收不到,或者微信收到的响应不符合API的要求,微信会继续发出多次通知(请在回调通知界面中合理处理,避免重复通知造成的重复业务处理),通知频率为15s/15s/30s/3m/10m/30m/30m,直至成功。但微信并不保证最终通知成功。

    微信怎么开启刷脸支付

    异步通知响应参数如下:



    微信一直通知你不成功怎么办?刚才也是这个例子。你明明支付成功了,商家却口口声声说她没收到钱。那你会怎么做?肯定是看她手机真的没收到钱!我也是。

    3.4 支付状态查询



  • 当APP或商家首页收到付款返回时,商家需要调用商家核对接口确认订单状态,并将查询结果展示给用户。
  • 商户后台需要准确高效地处理微信支付发送的异步支付结果通知,并根据接口规范将处理结果返回给微信支付。
  • 当商家后台没有收到异步支付结果通知时,商家要主动调用微信支付核对接口同步订单状态。
  • T+1日,商家从微信支付端获取T日的交易账单,与商家系统中的订单进行核对。如果在微信支付端下单成功,而在商家端没有,商家需要补发货或者退款给用户。
  • 四、总结

    本文主要以微信官方账号支付为例,总结接入微信支付所需的相关配置和支付流程。其他类似APP支付的支付也是开发中常见的应用场景。APP支付需要在微信开放平台创建应用才能接入微信支付。另外,微信支付API正在平滑升级到v3,部分接口还没有升级。与v2相比,升级后的接口经历了一些数据格式的变化。如果引用第三方开发包进行开发,需要注意接口的对应版本。

    参考

    微信支付开发文档

    您可以还会对下面的文章感兴趣

    使用微信扫描二维码后

    点击右上角发送给好友