B2Bitcoin / beBOP

Marvelous p2p bitcoin-based online sales platform
https://be-bop.io
GNU Affero General Public License v3.0
15 stars 3 forks source link

🦋 Improve payment methods selector and allow advance management #1519

Open Tirodem opened 17 hours ago

Tirodem commented 17 hours ago

Context

We have a lot of thoughts about fiat payment processors.

We learnt that :

We also know that :

Currently, payments can be restricted if :

And there's "substitutions" :

Needs

This is to be precised and discussed on a grooming with @coyotte508 .

First thing in my mind is :

This directly raises a warning about this case :

Other case is the use of PoS Seat with a discount.

And, 3rd case : what about a wrong configuration when Stripe and Sum Up are enabled on the same order price range ?

But, in the end, maybe we can do smarter than just having tresholds for payment mean activation or not (while it can be a good beginning, at least for Sum Up vs Stripe and Paypal).

I'm open to discussion.

Tirodem commented 17 hours ago

For information, nearly 10 years ago, I worked on some kind of payment processor balancer for benchmark, live tests, progressive deploy and technical A/B test.

At this time, we considered :

While we had to implement a "stickyness" through cookie / session / account to the processor in case of random dispatch (on big pro eshop websites, it can be scary for the customer to have the payment form change on each command), we don't have this consideration on be-BOP for now I think. Maybe we could add, in the future, the possibility for the be-BOP owner to display an information note on the /checkout with a custom message (like "Depending of your amount order, you can be send to Sum Up or to Stripe), but it's minor and has to be light.

I don't want that exactly, I'm just sharing experience, and some needs we might have in the future outside plain amount order, like "hey, who knows".

And as we did earlier already, introduction of back-up payment processors already can be a good thing (imagine that your node is down ? use phoenix server ; phoenix server down ? use a yet-to-implement 3rd party service instead).

We also can imagine something specific to Lightning Network depending of the channel capacity (related to https://github.com/B2Bitcoin/beBOP/issues/1467 , like not providing the payment mean if notification was send at 80% capacity and the pending order will triggers a bigger channel management + fees on Phoenix Server if nothing was done since notification).

Or, another idea : we can also disable on-chain payment if payment fees are more than 5€, or 10% of the order amount.

We can slice it, as long as we know what's pertinent and make an evolutive implementation.

⏺️ Still, the Sum Up vs Stripe balancer depending of the order amount is the 1st case to implement, I think.