活字格8.0 update1新功能解密:四十七、微信支付
本帖最后由 Erik.Xue 于 2022-10-8 10:10 编辑微信支付,相比大家早有耳闻,在6.0版本中有大神对接成功了微信支付,此时还只是个人开发者的插件,但抵不住格友们的热情,终于在7.0版本,微信支付插件官方化了!!!
当然,在8.1新版本中,针对微信支付官方进行了升级加强,具体都有哪些加强呢,具体来看下吧。
先附上插件下载地址:微信支付
支持支付方式
新的微信支付插件支持两种支付方式,一种是JSAPI支付,一种是Native支付。
JSAPI支付
可以参考:https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_1.shtml
其中关于直连模式与API_V3部分。
注:由于JSAPI支付需要获openid,关于如何在活字格中获取openid,可以参考活字格官方文档——集成微信公众平台。
Native支付
此种支付方式可以参考:https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_7_1.shtml
其中关于直连模式与API_V3部分。
微信支付插件简介
命名名称命令介绍 使用范围 类型
微信支付命令调用指定的服务端命令,如果成功,则调用JSAPI进行支付。最终将该命令执行结果保存到指定单元格。客户端JSAPI
配置微信支付设置设置微信支付需要的配置信息。客户端ALL
微信JSAPI下单在通过JSAPI支付启动支付过程之前,商户系统调用该命令在微信支付服务后台生成预支付交易单。客户端JSAPI
微信Native下单用户商户Native支付下单,调用成功后会将支付二维码存入指定参数名,前端将结果使用条形码单元格展示,用户使用微信客户端扫码后发起支付。客户端Native
微信支付订单查询提供所有微信支付订单的查询,商户可以通过【微信支付订单查询】命令主动查询订单状态,并将查询结果存入指定参数。客户端ALL
微信申请退款当交易发生之后一段时间内,卖家可以通过【微信申请退款】服务端命令将支付款退还给买家,微信支付将在收到退款请求并且验证成功之后,按照退款规则将支付款按原路退到买家帐号上。服务端ALL
微信支付退款查询提交退款申请后,通过调用该命令查询退款状态。服务端ALL
微信支付回调应答按文档规范对微信返回应答。在负责支付回调的服务端命令中使用。服务端ALL
微信支付结果通知对所在服务端命令接收到的相关支付结果及用户信息进行相关处理,并将相关支付结果信息设置为参数。服务端ALL
JSAPI支付时序图
Native支付时序图
插件使用上需要注意的点
[*]调用微信支付服务端命令前,需要调用 配置微信支付设置命令, 建议抽一个私有的服务端命令,统一调用。
[*]微信支付结果通知的服务端命令(微信下单命令中配置的服务端命令)必须设置所有角色都可访问。
[*]微信的商户订单号最长限制为32位,如果使用GUID作为订单号,需要注意GUID默认长度为36位,可以删除掉其中的 - 使用。
[*]为保证安全性,请勿在前端计算金额传递到后端。
[*]收到微信支付结果异步通知时,同样的通知可能会多次发送。系统必须能够正确处理重复的通知。 推荐的做法是,当系统收到通知进行处理时,先检查对应业务数据的状态,并判断该通知是否已经处理。如果未处理,则再进行处理;如果已处理,则直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用事务命令进行并发控制,以避免重入造成的数据混乱。
[*]微信退款支持单笔交易分多次退款,多次退款需要提交原支付订单的订单号和设置不同的退款请求号。一笔退款失败后重新提交,要保证重试时退款请求号不能变更,防止该笔交易重复退款。
[*]同一笔交易的退款至少间隔1分钟后发起。
支付规则
进行微信支付订单查询时需要设置微信订单号或者商户订单号,两者同时设置时,优先使用微信订单号。
插件中使用的第三方库
DotNetCore.SKIT.FlurlHttpClient.Wechat
页:
[1]