vendrhub / vendr-payment-provider-stripe Goto Github PK
View Code? Open in Web Editor NEWStripe Payment Provider for Vendr, the eCommerce solution for Umbraco v8+
License: MIT License
Stripe Payment Provider for Vendr, the eCommerce solution for Umbraco v8+
License: MIT License
When attempting to install the Stripe payment provider via the Umbraco back office we currently get an import error as there is some missing required meta data in the package.xml.
Url, Author Name and Author Website need to be populated.
Originally raised as an issue on Our at https://our.umbraco.com/packages/website-utilities/vendr/vendr-support/101972-vendr-import-error-during-local-install-payment-providers
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:
I note that the diagram below has the payment form within the Payment Gateway.
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.
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, Action
1 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(TaskCompletionSource
1 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](IEnumerable
1 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.
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?
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]
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.