Author

Topic: [ANN] Easily accept bitcoin on android devices for in-app/in-game purchases. (Read 2682 times)

newbie
Activity: 12
Merit: 0
A good example of how easy it is to do the NFC push from your android device to the one that contains the bitcoin wallet is here :

http://stackoverflow.com/questions/9792514/send-a-url-between-2-nfc-devices

The URI is created with the DC POS API using the getBitcoinUri method documented here :

https://dcpos.com/java/docs

Examples of passing this URI to the android OS are provided in the API toolkit :

https://dcpos.com/developers/downloads
newbie
Activity: 12
Merit: 0
If I understand correctly, this library generates invoices (ie addresses + amounts), and also has a means of checking if an invoice is paid/unpaid.
Yes.

I can see how the invoice properties could be used to create QR codes (or even use the method getQrWebpage if I don't want to generate the qr image myself), but I'm not 100% clear on the NFC side of things.

Can you tell me if I can use this library with NFC?
Near Field Communication (or NFC) is a core feature of the android environment.  I'm not sure how familiar you are with android development, but the core 'method' that an android application uses to manage input is with an 'intent'.  When you develop an android application, you develop 'intents' (what you want to do), and then start an 'activity' to act on that intent, or you can generally send an intent to the android OS, and let it call the appropriate "activity" that is suitable for the intent you're sending.  When you click on a web link in an SMS, this is what is happening.  The SMS program doesn't know what program to start (chrome, firefox, opera, etc.), it simply passes the web link to the OS and effectively says "start whichever program should be started given I'm handing over a web address".  The OS then starts the program, and passes the address to it, and away you go.

The DC POS API does the same thing.  It develops a generic bitcoin payment intent, and passes it to the OS.  If there is a wallet program on the OS, it will start this program, and then seek payment.  The querying of the payment is done by querying the block-chain, not the payment wallet, so regardless of whether this payment has occured on the device seeking payment, or the device sending payment (which may be different), the device seeking payment will know that payment has occurred.

What does this mean?  By using an NFC push of the intent, instead of to the local device, the bitcoin wallet on another device will be initiated.  This is achieved using the android beam library, and an example of it is here :

http://www.developer.com/ws/android/nfc-programming-in-android.html

By passing the code in the DC POS API to the NFC Message, you can use one android device to seek payment in bitcoin from another android device.  The first android device then queries the block-chain to determine if the payment has been made.

Let me know if you want further clarification.
mav
full member
Activity: 169
Merit: 107
If I understand correctly, this library generates invoices (ie addresses + amounts), and also has a means of checking if an invoice is paid/unpaid.

I can see how the invoice properties could be used to create QR codes (or even use the method getQrWebpage if I don't want to generate the qr image myself), but I'm not 100% clear on the NFC side of things.

Can you tell me if I can use this library with NFC?
newbie
Activity: 12
Merit: 0
I wonder why someone would be willing to lose the benefit of being listed on the Play store just to accept Bitcoin in their app, especially if they were converting to fiat at the end of the day anyway and had no intention of actually holding any Bitcoin.
edit: Although your mention of gambling or adult apps makes sense. You already lose the benefits of distributing on the Play store with those apps anyway, so why not go ahead and accept Bitcoin?
That's the primary market we expected would benefit from accepting bitcoin through an android device, and that's playing out in the developers that are using it.  People will acquire bitcoin to gamble, or acquire services that aren't available through the google play store.  Even using credit card details for payment exposes you to significant risk (the honey-pot issue), and this reduces that significantly.  And that's assuming you'll even get a credit card company to allow you to run this type of a business anyway.

But, I'd be willing to bet that all of the alternative Android marketplaces combined (including Amazon) don't come close to Google Play in terms of the number of devices who have that marketplace installed or the number of users who look there when they want to install an app.
My suggestion, if I was asked, would be to create a google play 'free' version of the app, with a link to the bitcoin version that would allow you to play with 'real money'.  But I'm not a game developer, so perhaps I'm a little naive in this regard.

It also needs to be pointed out that the technology we've developed in the toolkit is identical to what is used for an NFC push.  If you are looking to create an android app that asks for payment from your android device to another android device that has a wallet, the toolkit can be used for that purpose too.  It will then validate the payment.  No central server infrastructure required.
full member
Activity: 137
Merit: 100
Doesn't this directly violate Google Play Developer Terms?

An android app and the google play store are two different things.  An example is obviously mycelium (pick direct download https://mycelium.com/bitcoinwallet).  Unlike Apple, where you are required to go through the apple store in order to make an app available (unless the phone is jailbroken), android has no such restriction.  It is arguably one of the reasons why it has such a large market-share.

This is true, and there are also other non-Google marketplaces to distribute your app (F-Droid, Amazon).. but as an Android developer, you're kind of short-changing yourself if you're not distributing through the Play Store that comes bundled by default with the majority of Android devices. If this does what I think it does, allowing in-app purchases without going through Google, then it likely does violate Google's terms of service for Play developers. In that case, you should still be able to distribute your app through the other app stores but you lose a good source of traffic and downloads by not being able to distribute through the Play Store. I wonder why someone would be willing to lose the benefit of being listed on the Play store just to accept Bitcoin in their app, especially if they were converting to fiat at the end of the day anyway and had no intention of actually holding any Bitcoin.

Quote
You can install any app you want on an android device directly from a webpage if you are so inclined.  There are also other market-places (like mikandi or skubit) that allow bitcoin acceptance directly in your apps.  If you wanted, for example, to create a gambling app, or adult-centric app, you wouldn't be able to put it on the google play store, regardless of how you accepted payment.

Two more marketplaces here, these two I've never used or even heard of. But, I'd be willing to bet that all of the alternative Android marketplaces combined (including Amazon) don't come close to Google Play in terms of the number of devices who have that marketplace installed or the number of users who look there when they want to install an app.

edit: Although your mention of gambling or adult apps makes sense. You already lose the benefits of distributing on the Play store with those apps anyway, so why not go ahead and accept Bitcoin?
newbie
Activity: 12
Merit: 0
Doesn't this directly violate Google Play Developer Terms?

An android app and the google play store are two different things.  An example is obviously mycelium (pick direct download https://mycelium.com/bitcoinwallet).  Unlike Apple, where you are required to go through the apple store in order to make an app available (unless the phone is jailbroken), android has no such restriction.  It is arguably one of the reasons why it has such a large market-share.

You can install any app you want on an android device directly from a webpage if you are so inclined.  There are also other market-places (like mikandi or skubit) that allow bitcoin acceptance directly in your apps.  If you wanted, for example, to create a gambling app, or adult-centric app, you wouldn't be able to put it on the google play store, regardless of how you accepted payment.  Companies like BetFair require you to install the app outside of the google play store for exactly this reason.

It's a fairly trivial exercise to create a gambling app that allows you to securely accept bitcoin with the tool-kit we've made available.  
sr. member
Activity: 366
Merit: 260
newbie
Activity: 12
Merit: 0
this is intresting, bookmarking this one  Smiley
Feel free to ask questions here or on our community forum if you have any queries.

    https://community.dcpos.com
legendary
Activity: 1974
Merit: 1003
this is intresting, bookmarking this one  Smiley
newbie
Activity: 12
Merit: 0
... right now im trying to understand some stuff regarding java  Undecided

What type of things are you trying to understand?
newbie
Activity: 12
Merit: 0
Amazing!
Always wanted something like this..

now i can start developing for Bitcoin without start-ups and all that bullshit

We have specifically developed the toolkit with small developers in mind.  We wanted to develop the kit so that an android developer didn't need to understand anything about bitcoin in order to accept it, and that's what the library will do.  In fact, you don't even need to ever hold bitcoin, or be exposed to it at all, if that's your choice.  

We'd love to hear how it has been implemented, so we can improve on the feature-set, so please let us know how you've gone about it.  But that's totally up to you.
newbie
Activity: 12
Merit: 0
Pretty awesome project .
It's going to get a lot of interesst , I can feel it Grin Good work for all the developpers who contributed on the project . Btw this project is on Beta phase or have been tested etc ... no bugs ?

~ Madness

Thanks for the kind words.

It has been tested, it works, and has been shown to work on multiple android devices.  There are no known bugs.  

Obviously different developers may have other environments that we can only assume shouldn't be an issue, but we'll respond as quickly as we can if any issue can be identified.  
hero member
Activity: 644
Merit: 500
My goal is becaming a billionaire.
Pretty awesome project .
It's going to get a lot of interesst , I can feel it Grin Good work for all the developpers who contributed on the project . Btw this project is on Beta phase or have been tested etc ... no bugs ?

~ Madness
sr. member
Activity: 266
Merit: 250
Grow SMALL amount of BTC by earning it
Amazing!
Always wanted something like this..

now i can start developing for Bitcoin without start-ups and all that bullshit
hero member
Activity: 854
Merit: 500
I'll definitely check this out. I'm planning to start some android development and maybe this will come handy.

Feel free to join the community forum, and we'll be keen to ensure we resolve any technical questions you might have.  You'll find the example code is quite compact, but we're always looking to improve.
Right, I'll do that ASAP, right now im trying to understand some stuff regarding java  Undecided
newbie
Activity: 12
Merit: 0
I'll definitely check this out. I'm planning to start some android development and maybe this will come handy.

Feel free to join the community forum, and we'll be keen to ensure we resolve any technical questions you might have.  You'll find the example code is quite compact, but we're always looking to improve.
hero member
Activity: 854
Merit: 500
I'll definitely check this out. I'm planning to start some android development and maybe this will come handy.
newbie
Activity: 12
Merit: 0
DC POS has created an Android API Toolkit that allows you to easily accept bitcoin. This technology will :

  • Allow you to accept payment from the millions of consumers with bitcoin, immediately, and on impulse.
  • Allow payments to you to be done anonymously for the user if you wish to.
  • Allow your customers to instantly and seamlessly purchase your products and services (using their existing bitcoin wallets).
  • Make payments that are immediately available to you. DC POS never handles your money.
  • Remove the risk of reversed payment. The time to reconciliation of payment in bitcoin is generally under three seconds, and is non-reversible.

There is a youtube video of how the toolkit accepts a payment of $1.
    https://dcpos.com/developers

DC POS also has a facility for reconciliation into fiat currencies at the end of every business day, at the price at the time of transaction. If you charge your customer $2, you receive $2. This removes any risk of bitcoin price volatility. Our developers have worked hard to make it simple and easy to integrate our new in-app purchasing system into any android app. Major organizations currently accepting bitcoin are Microsoft, Dell, Overstock, Expedia, Tiger Direct, and growing daily.

Download the android/java toolkits :
    https://dcpos.com/developers/downloads
Documentation for the java library :
    https://dcpos.com/java/docs
The DC POS Community/forum :
    https://community.dcpos.com

Feel free to ask me any questions if you would like clarification. The community forum is for asking questions on how to implement the toolkit, or general questions of how the technology works. The community is freely accessible, but only targeted towards developers (like you) at present.

DC POS
    https://dcpos.com
Jump to: