Last active
April 29, 2024 19:17
-
-
Save gr2m/5463675 to your computer and use it in GitHub Desktop.
Imagine you could purchase items from your store, with pure JavaScript in the browser. How would it look like? Here's what I came up with. Forks & comments much appreciated! #nobackend #dreamcode
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// purchase a product with a credit card | |
purchase('productId') | |
.using( { | |
cc: "4556934156210213", | |
valid: "2016-10", | |
csc: "123" | |
} ) | |
// purchase a product with paypal | |
purchase('productId') | |
.using( 'paypal' ) | |
// upgrade a user to a pro plan, payment via paypal. | |
purchase( | |
account.upgradoTo( 'pro' ) | |
).using('paypal') |
This looks a lot like: http://simplecartjs.org/
Seems secure to me, just make sure the sensitive information is only stored transiently and always sent over HTTPS.
wow, simpleCart looks very nice indeed!
Bitcoin payments can be easily added with:
http://bitcore.io/playground/#/address and #/transaction
// ...
.using( 'bitcoin/bitcore' )
.payment_request({
address: "1address...",
amount: 10000, // satoshis
})
or some more sophisticated and complete example like:
// ...
.using(['bitcoin/bitcore', 'bitcoin/blockchain_info', 'bitcoin/blockr_io'])
.to({
address: "1address...",
amount: 10000, // satoshis
}).sign({
privateKey: "5pvtkey...." // signs the transaction, doesn't send the private key
}).propagate(['blockchain_info', 'blockr_io'])
super-alpha version, need to be discussed I think, also what about multisig? Anyway dreamcode ftw!
FYI, there's a standard for this now.
Although the API is a bit more complex.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I think we can keep the CC option. Of course you as the app owner can decide not to use it, but technically I don't see a problem with it yet. Let's say for example you'd use stripe to recieve CC payments. If you'd run this code in your visitor's browser:
it would
product: "productId"
gets stored in the user's store.sayThankYou
callback gets executed.