webburza/payum-setefi

Setefi Payum网关

0.1.4 2017-09-08 07:57 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:31:28 UTC


README

Payum网关提供的Setefi支付处理器。

注意:所有列出的用户ID、密码和密钥均由Setefi文档化(部分“测试环境凭据”)并与所有其他Setefi沙盒用户共享,它们不是秘密。

Sylius集成

# app/config/config.yml
parameters:
    # NOTE:
    # these are documented by Setefi and shared among all sandbox users, they're NOT a secret
    setefi.id: "99999999"
    setefi.password: "99999999"
    setefi.sandbox: true # false in config_prod.yml

payum:
    gateways:
        setefi:
            factory: "setefi"
            payum.http_client: "@sylius.payum.http_client"
            terminal_id: "%setefi.id%"
            terminal_password: "%setefi.password%"
            sandbox: "%setefi.sandbox%"

sylius_payment:
    gateways:
        setefi: Setefi

完成此操作后,在Sylius管理界面中启用支付方式。

(注意:所有集成测试必须在一个公开可访问的URL上(例如,使用ngrok)进行,因为Setefi后端需要能够进行有效的服务器到服务器的请求以成功完成过程。)

Setefi沙盒环境

登录到Setefi的沙盒环境

(注意:这些由Setefi文档化并与所有沙盒用户共享,它们不是秘密)

  • 商家代码: 009999999
  • 用户代码: 009999999
  • 密码: Setefi14

请注意,您的交易将与沙盒其他用户的交易一起,您需要找到自己的交易来验证它是否正常工作。

技术实现

  • 入口点是Webburza\Payum\Setefi\SetefiGatewayFactory,它注册所有已知操作,设置配置并创建一个新的Api
  • Webburza\Payum\Setefi\Api是特定于此提供程序的帮助程序和常量的集合,它被注入到实现Payum\Core\ApiAwareInterface的所有操作中。
  • 每个操作都有一个特定的任务,它们通过实现来自Payum\Core\Action\ActionInterfacesupport($request)来声明在过程的哪个部分工作。动作名称本身并不重要。
    例如,Webburza\Payum\Setefi\Action\CancelAction声明它可以处理Payum\Core\Request\Cancel请求,它将接收所有这些类型的请求来处理。
    动作和请求是两回事,您可以(并且确实)有比请求类型多得多的动作(某些网关没有自定义请求类型)。
  • 我们还可以定义一些自定义请求类型,例如,在需要发生特定于域的事件的情况下,可以使用Webburza\Payum\Setefi\Request\CreateTransaction。在定义了它们之后,我们注册操作来处理它们,就像处理原生操作一样。

交易序列

  1. Webburza\Payum\Setefi\Action\StatusAction将支付请求标记为new
  2. Webburza\Payum\Setefi\Action\CaptureAction触发Webburza\Payum\Setefi\Request\CreateTransaction请求
  3. 使用Webburza\Payum\Setefi\Action\CreateTransactionAction和服务器到服务器(S2S)请求创建一个新的Setefi交易
  4. 如果成功,用户将被重定向到Setefi网络界面
    1. 如果支付成功,Setefi执行S2S请求,并将Webburza\Payum\Setefi\Action\StatusAction将支付请求标记为captured
    2. 如果支付不成功,Setefi执行S2S请求,并将Webburza\Payum\Setefi\Action\StatusAction将支付请求标记为canceled
  5. 5.的响应是Setefi重定向用户回的有效重定向URL
  6. 处理完成

Transaction sequence