SuperAPI AI 工具集

spree-payments

通用与其它

查看项目

更新于 10-15 23:57

技能介绍

该技能用于在 Spree 6 中开发支付相关功能,涵盖支付方式与网关、基于会话和直连(离线)支付、退款、商店信用与礼品卡等。

主要对象与状态:PaymentMethod(pm_,属 store,含 STI 网关类)、PaymentSession(ps_,网关侧会话)、PaymentSetupSession(pss_,保存支付方式)、Payment(py_,一次支付尝试,关联 source 与 Refund)。支付状态为普通字符串,由支付工作流写入,包括 checkout、processing、pending、completed、failed、void、invalid;订单 payment_status(none、authorized、partially_paid、paid、partially_refunded、refunded、overcharged、voided)由系统派生,不可手动赋值。

捕获时机:capture_method 为商店偏好(默认 checkout),可被支付方式覆盖,取值 checkout、on_dispatch、manual,对应下单扣款、发货扣款、人工扣款。

支付方式:type 为简写,storefront_visible 控制仅员工可见;网关凭据存于 preferences 明文列,需按机密对待。安装网关的命令保持原样,例如:spree bundle add spree_stripe && spree generate spree_stripe:install,随后 spree restart;经典 Rails 应用用 bin/rails g 方式,并在后台创建支付方式、注册 webhook URL。

两种流程:会话型(session_required? 为 true)需先创建 payment session、在提供商 SDK 完成支付、调用 complete,再完成购物车下单;直连型(Check、货到付款、银行转账、PO)直接创建 payment 并完成订单。Webhook 是权威信号,浏览器与 webhook 先到者生效,处理具备幂等性,重放不会重复支付或下单。

退款:仅限管理端,经 Spree::Refunds::Create 执行。商店信用与礼品卡均通过 StoreCredit 支付方式抵扣应付金额,需在下单前应用,二者不能同时使用。

限制:资料未提供具体价格、收费模式或效果数据;自定义网关需实现 create/update/complete payment session、parse_webhook_event 等钩子,并注意签名校验与原始请求体。