-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RFC] Payment Integration #112
Comments
Alright, seems like this RFC isn't really engaging anyone. I'm gonna go ahead and use a hardcoded payment method. As such, it probably makes sense to close this issue and allow the maintainers and core contributors sort out abstracted payments. |
you should reopen this and let the time judge 👶 having it out of the radar is wrong, unless this was solved already but it was hard to find, also if you did the hard coded stuff, would be good to share it on a gist or somewhere |
I agree that this issue of abstracting the payment processing system is critical to making this a flexible and extendable library. Omnipay is a decent start, but adding the Source component gets us all the way to the view, which makes this a much more complete package. |
There was discussion about integration payum + sylius. Payum more like I want mention it here because as I see you want to do something similar payum already does. |
I've started a payum + sylius integration PR #275. Feedback is highly appreciated. |
So payments and gateways are a lot more complicated than I had thought! As such, some more
detailed thought and community input is necessary before writing a bunch of code. This WIP
PR has two sections:
Secondly, an architectural or design-based solution should be offered. Concern solutions
should be vague in nature; that is, they should not contain any code or implementation
details. They just say what's going to be done. Concerns should be ratified by the
community before their solutions are included in the pull request. Any concern with a
check mark is considered ratified.
task list, so that specific tasks can be assigned and completed. The Solution task list
should be a concerted effort to clearly define the steps necessary to implement a
proposal.
Concerns
extensibility, a Gateway design must be decided upon, including Dependency Injection,
Form View Rendering, and progressing the state of a Payment.
CreditCard, ACH, API, WireTransfer, BitCoin, or Physical Transference. A Payment
Source's job is to give a Payment an object to be used in a communication with a Payment
Method. It must provide a valid object for the particular Method to use, whether that be
a Source accepted by the Method's gateway, or an otherwise approved mechanism.
must be defined.
sylius.gateway
,there must be functionality for pushing payments through their states via methods of the
native gateway.
Solutions
push a payment through the available states.
Working with Tagged Services" Cookbook Entry).
Sylius domain using other libraries/bundles.
Factory
register them with the GatewayChain
between the Source and the Method.
Bundle. This enables us to keep track of transformation methods, and allows us to
define and retrieve associated services, like a credit card form.
each payment state. The methods will expect a boolean, and if true, push the payment
to the target state.
methods.
$gateway
(an instance ofBridgedGateway
; seebelow). If it has a bridged gateway, the responsibility for returning the boolean will
be passed along to the gateway.
call
method and averify
method will be defined. When the PaymentProcessorcall
andverify
andturn them into actual PHP callables, a la the ControllerResolver.
The text was updated successfully, but these errors were encountered: