GithubHelp home page GithubHelp logo

vendrhub / vendr-payment-provider-stripe Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 7.0 11.44 MB

Stripe Payment Provider for Vendr, the eCommerce solution for Umbraco v8+

License: MIT License

Batchfile 1.98% C# 98.02%
ecommerce payment-gateway payment-provider stripe umbraco umbraco-v8

vendr-payment-provider-stripe's People

Contributors

mattbrailsford avatar mzajkowski avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

vendr-payment-provider-stripe's Issues

Question - does this help at all if not using Stripe Checkout

I'm trying to get my head around Vendr & Stripe from a place of extreme ignorance.

Assuming I've not missed something, this Stripe Payment Provider works only via a redirect to https://checkout.stripe.com. I'd hoped to handle Stripe using stripe.js, such that the payment form is rendered within my site, and the payment capture happens as a result of a clientside API call (e.g. https://stripe.com/docs/payments/accept-a-payment?integration=elements).

If I've understood the documentation correctly then I should be able to create a new payment provider to support my preferred approach. However before I go too far down this road can I please check:

  1. I should consider vendr-payment-provider-stripe of no use
  2. that you know of know reason why want I wish to achieve isn't possible
  3. that you don't know of anyone that might have already undertaken this work.

I note that the diagram below has the payment form within the Payment Gateway.
image

Make PaymentMethodTypes configurable

Currently, the PaymentMethodTypes setting of the Stripe Session object is hard coded to be "card" however there are multiple other supported payment method types that people may wish to use such as banconnect (https://stripe.com/docs/payments/bancontact/accept-a-payment). We should make this setting configurable so that implementers can make use of those additional payment options.

I think this can be pretty easily done by making this a stripe payment provider setting (probably in the advanced section) that just accepts a coma separated list of payment method types to use.

Failed to save payment method: An error has occurred.

I changed the Default Pricing for the payment method on my stripe payment provider from £0.00 to £9.99. I then tried to change it back to £0.00 and the following error occured:

Exception System.Data.SqlClient.SqlException (0x80131904): Cannot insert duplicate key row in object 'dbo.vendrPaymentMethodCountryRegionPrice' with unique index 'IX_vendrPaymentMethodCountryRegionPrice_compositeId'. The duplicate key value is (cbdd1654-86ed-4f8a-bee8-bf669c81a6bb, <NULL>, <NULL>, f9359959-f39b-42b4-9bb9-0d7a307c362e). The statement has been terminated. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at Umbraco.Core.Persistence.FaultHandling.RetryPolicy.ExecuteAction[TResult](Func1 func) in D:\a\1\s\src\Umbraco.Core\Persistence\FaultHandling\RetryPolicy.cs:line 172 at NPoco.Database.InsertBatch[T](IEnumerable1 pocos, BatchOptions options)
ClientConnectionId:efda61dd-9fcb-4b6e-862e-e2379b540db1
Error Number:2601,State:1,Class:14`

If you need anymore information, just let me know.

Handling payments 'placed in review' in Stripe Radar

A number of rules have been set up and configured in Stripe Radar to place payments 'in review', one example being
::customer:billingZipCode:: != :billing_address_postal_code:. Payment is set to capture_method=Automatic the transaction is captured, and the order is passed back to Vendr and then proceeding through Vendr as Captured.

Stripe still processes payments normally when they meet a review rule’s criteria.

The reasoning behind those rules being configured in the 'in review' section of Stripe Radar and not the 'Block' is so that payments can be manually checked. We don't necessarily want to block the payment entirely as this may result in too many genuine orders being blocked. Instead, we just want to be able to slow down the process so that manual checks can be performed and either accepted or rejected.

So the question is, is it possible to detect if the payment has been placed into review based on the response from Stripe? I guess this depends if 'checkout.session.completed' event holds that data?

Refund action not working

The “Refund” button on the order detail page is not working.
When I generate a refund from the Stripe panel (dashboard.stripe.com), the payment status is changed and the information is correctly fetched and displayed by Vendr in the order detail’s view.
However, when I click the button and confirm the choice, the following message shows up: “Payment Refunded: Captured payment successfully refunded”. Despite the success message, the refund is not generated and the payment status remains unaltered.
[Vendr v1.8.4-beta0001 and Stripe v1.2.1]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.