Stripe Add-On for In-App Payments & Subscriptions (See New Listing)

I currently need a few people to test the current code to ensure there aren’t any cross-platform issues which have been ‘unforeseen.’

Download: http://www.xojodevspot.com/demos/Stripe.rar

You will need to have Node.js installed on your system or server for Stripe payments to work; and the stripe library has been included in the demo (So you shouldn’t have to install it.)

You can use your own API keys to test, and the demo Stripe credit card has been added to the demo for copy/paste testing. Any valid expiration date and any CCV will work in the test mode (make sure you use your test secret api key [publishable is only for mobile apps and desktop version]). All links to get you started, and find your API keys/manage your test account can be found in the demo as well.

Just wondering: Is it possible to integrate stripe “inside” a desktop application? A webview could be embedded to a server, but I’m looking for tighter integration than this.

Also: The code calls a “controller” that it expects in C:\Users\Matthew\Pictures\FatCow_Icons32x32\controller.png

Afraid I can’t test the code (no time today and off on holiday tomorrow) but I will happily say that Stripe is really, really, really good, and it’s now available in the UK as well.

[quote=101613:@Hamish Symington]I will happily say that Stripe is really, really, really good, and it’s now available in the UK as well.

[/quote]

‘Really’ x 3 . Besides the slightly lower fee for transactions than Paypal. Why do you think its that good? Not being sarcastic, just really curious.

These are only my personal thoughts, but…

  • The documentation is very well written, and actually matches the website control panel and API. All too often in PayPal I go hunting for how to do something, and the various buttons which are supposed to be there to allow me to do something simply aren’t.
  • If a payment is declined, you can get info as to why, rather than just PayPal’s ‘Payment declined’, meaning you have to go to the customer and get them to contact PayPal. Particularly true of subscription billing.
  • Their support’s really good - nice and fast, with helpful replies. PayPal just doesn’t want to know.
  • Automatic transfers to my bank account after seven days, rather than me having to remember
  • People don’t have to leave my website to be able to pay me
    I’m sure there are more. It just felt like a breath of fresh air compared to PayPal.

That is the purpose of the desktop version of the plugin. The desktop version calls a web server app to get your secret token so the desktop app does not hold any security information itself. This way you have a specific desktop plugin that is nice and secure for desktop apps and a web app that is secure for web apps. This was exactly why it was designed this way to ensure security on both desktop and web app.

[quote=101611:@Eduardo Gutierrez de Oliveira]Just wondering: Is it possible to integrate stripe “inside” a desktop application? A webview could be embedded to a server, but I’m looking for tighter integration than this.

Also: The code calls a “controller” that it expects in C:\Users\Matthew\Pictures\FatCow_Icons32x32\controller.png[/quote]

Apologies for not including the image. Any 120x120 or smaller image can replace the controller.png that’s merely the banner icon to go at the top of the slide-down payment window from stripe (for customizable checkout). As Nathan said, I am working on 2 versions of the class. To the Xojo developer they will be used the same. The web version uses javascript and node.js to keep your stripe credentials securely hidden on your server and the desktop version (not public for testing at moment) uses httpsockets. I avoiding using the OAuth method as that required directing users to the stripe website to authenticate and redirected them back to the app (desktop or web). The current method being worked, will allow your user to never see anything but your website/desktop app. The desktop app also uses your publishable api key (not secret and can be known) to obtain a payment verification token, which must be passed to the server and consumed by the secret api key (cannot and should not be shared) to complete payment. This will also allow developers (if wanted) to have a single stripe payment acceptance method on their server from which all desktop/web-apps can process payments through (your very own centralized stripe payment processing center). Once the Xojo controls are ready, I’ll also be writing scripts for those who do not have webedition or a webedition server account, to use server-side for desktop apps to make payments (PHP, Ruby, and Python scripts…node.js is complete and used by the webedition currently).

I updated the source with a new demo including what a few of you have requested of a payment system over the last few days. The current module and class has a majority of the API’s available by Swipe (only a few left to add) but all Subscription and Plan functions are fully functional, manipulating Customer Objects (and Credit Card Tokens), as well as charging the customer…all work :slight_smile: (I also included the controller.png for the first demo, in this version).

The new demo also features fully UNBRANDED server-side Stripe API so that all calls are done seamlessly behind the Xojo webapp so that your checkout/storefront never even appears to interact with Stripe (in case that is desired for more professional appearance without 3rd party free-advertising/branding).

Don’t forget, you can test your application and physically watch the Test Mode of your Stripe dashboard for statistics and logs to verify everything is functioning properly. I haven’t completed the desktop version module/class yet (about 50% complete), but you are more than welcome to dabble on the side in the meantime, creating your own custom payment API server via webedition and HandleSpecialURL (A rough API server has been implemented so far, but will end up being re-written using encryption for added security measures) and use httpsocket desktop-side to interact with your custom payment server.

I have decided that I will not be developing this set of payment controls/modules so much as to make a profit, rather supply a cheap reliable payment system to developers, and to maintain the Xojo Developer’s Spot website. I will be selling the source for $20.00USD and will supply free updates as more requests are received for features to include (even those not natively part of Stripe, but may increase productivity and automation). If you’d like to purchase the current source you can PM me or contact me via email at admin@simulanics.com or mcombatti@xojodevspot.com. The current demo modules/classes will stop working after July 1st, 2014.

Please feel free to test, test, test, as I’d like to ensure everything is functioning flawlessly. I’ve tested all the code without issue…but we all know how cross-platform development/deployment works. :slight_smile:

Download: http://www.xojodevspot.com/demos/Stripe.rar

Almost ready for a release version of both desktop and web modules/classes for Stripe payments with full demos of all features :slight_smile: should be ready tomorrow. The final web demo demonstrates a plan creation interface, and demo user account to purchase items and checkout, as well as subscribe, unsubscribe, and update subscriptions for created plans. The web demo also has a completed custom API service using HandleSpecialURL. The desktop app demo will interact with the server to complete payments as well as demonstrate subscriptions.

**also fixed the nullchar that gets attached by Stripe to strings on Unix systems.