webburza / payum-setefi
Setefi Payum网关
0.1.4
2017-09-08 07:57 UTC
Requires
- payum/core: ^1.3
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-14 19:31:28 UTC
README
注意:所有列出的用户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\ActionInterface
的support($request)
来声明在过程的哪个部分工作。动作名称本身并不重要。
例如,Webburza\Payum\Setefi\Action\CancelAction
声明它可以处理Payum\Core\Request\Cancel
请求,它将接收所有这些类型的请求来处理。
动作和请求是两回事,您可以(并且确实)有比请求类型多得多的动作(某些网关没有自定义请求类型)。 - 我们还可以定义一些自定义请求类型,例如,在需要发生特定于域的事件的情况下,可以使用
Webburza\Payum\Setefi\Request\CreateTransaction
。在定义了它们之后,我们注册操作来处理它们,就像处理原生操作一样。
交易序列
Webburza\Payum\Setefi\Action\StatusAction
将支付请求标记为new
Webburza\Payum\Setefi\Action\CaptureAction
触发Webburza\Payum\Setefi\Request\CreateTransaction
请求- 使用
Webburza\Payum\Setefi\Action\CreateTransactionAction
和服务器到服务器(S2S)请求创建一个新的Setefi交易 - 如果成功,用户将被重定向到Setefi网络界面
-
- 如果支付成功,Setefi执行S2S请求,并将
Webburza\Payum\Setefi\Action\StatusAction
将支付请求标记为captured
- 如果支付不成功,Setefi执行S2S请求,并将
Webburza\Payum\Setefi\Action\StatusAction
将支付请求标记为canceled
- 如果支付成功,Setefi执行S2S请求,并将
- 5.的响应是Setefi重定向用户回的有效重定向URL
- 处理完成