找回密码
 立即注册

QQ登录

只需一步,快速开始

Erik.Xue 讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2022-9-19 10:27  /   查看:3251  /  回复:0
本帖最后由 Erik.Xue 于 2022-10-8 11:02 编辑

image.png756850585.png
支付宝支付,是8.1新版本最新支持的支付插件,该插件目前支持在电脑端进行支付宝支付操作。

具体的支付流程可以参考:支付宝文档

配置方式

接入文档具体可以参考:https://opendocs.alipay.com/open/270/01didh?ref=apihttps://opendocs.alipay.com/common/02mriz
其中关于自研商家接入与公钥模式部分。

开发阶段推荐使用沙箱模式进行开发调试(沙箱环境不支持结果异步通知)。

插件命令
命令名称命令介绍 使用范围
跳转到支付宝支付页面 接受支付宝电脑网站下单命令返回的支付html, 跳转到支付宝支付页面。客户端
支付宝电脑网站下单 PC场景下单,返回支付HTML。客户端
支付宝支付订单查询 提供支付宝支付订单的查询,可以主动查询订单状态,完成下一步的业务逻辑。客户端
支付宝申请退款 交易发生之后一段时间内,由于买家或者卖家的原因需要退款时,卖家可以通过此命令将支付款退还给买家,支付宝将在收到退款请求并且验证成功之后,按照退款规则将支付款按原路退到买家帐号上。客户端
支付宝支付退款查询 商户可使用该接口查询退款请求是否执行成功。服务端
支付宝支付回调应答 按文档规范对支付宝返回应答。在负责支付回调的服务端命令中使用。服务端
支付宝支付结果通知 在用户支付完成之后,支付宝会 调用支付宝电脑网站下单中指定服务端命令将支付结果作为参数通知到商家系统。服务端
配置支付宝支付设置 设置支付宝支付需要的配置信息。服务端

支付宝PC支付时序图
alipay.png

插件使用上需要注意的点

  • 调用支付宝支付服务端命令前,需要调用 配置支付宝支付设置 命令, 建议抽一个私有的服务端命令,统一调用。
  • 支付宝支付结果通知的服务端命令(支付宝下单命令中配置的服务端命令)必须设置所有角色都可访问
  • 支付宝电脑网站下单命令中跳转页面名为支付完成后跳转到的页面,这一过程由支付宝完成,跳转过去的URL包含商户订单ID, 可以通过 =GETURLQUERYVALUE("out_trade_no") 来获取完成辅助逻辑。
  • 为保证安全性,请勿在前端计算金额传递到后端。
  • 收到支付宝支付结果异步通知时,同样的通知可能会多次发送。系统必须能够正确处理重复的通知。 推荐的做法是,当系统收到通知进行处理时,先检查对应业务数据的状态,并判断该通知是否已经处理。如果未处理,则再进行处理;如果已处理,则直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用事务命令进行并发控制,以避免重入造成的数据混乱。
  • 在支付结果通知中,需要严格按照如下描述校验通知数据的正确性:
    • 商家需要验证该通知数据中的 out_trade_no 是否为商家系统中创建的订单号。
    • 判断 total_amount 是否确实为该订单的实际金额(即商家订单创建时的金额)。
    • 校验通知中的 seller_id 是否为 out_trade_no 这笔单据的对应的操作方(有的时候,一个商家可能有多个 seller_id)。
    • 验证 app_id 是否为该商家本身。
    上述 1、2、3、4 有任何一个验证不通过,则表明本次通知是异常通知,务必忽略。 在上述验证通过后商家必须根据支付宝不同类型的业务通知,正确的进行不同的业务处理,并且过滤重复的通知结果数据。在支付宝的业务通知中,只有交易通知状态为 TRADE_SUCCESS 或 TRADE_FINISHED 时,才可以认定为买家付款成功
  • 支付宝退款支持单笔交易分多次退款,多次退款需要提交原支付订单的订单号和设置不同的退款请求号。一笔退款失败后重新提交,要保证重试时退款请求号不能变更,防止该笔交易重复退款。
  • 同一笔交易的退款至少间隔3s后发起。


插件中使用的第三方库

alipay-easysdk



0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部