Accept credit card number or paypal information in ios app - ios

I have an application in which i need to add a screen which will accept paypal information or credit card detail and then that will be passed to server for charge processing.
i have doubt whether this is possible or not, if possible then whether apple will approve it or not.
My requirements are
1) customer will buy a ride
2) driver will accept that and driver should get paid.
Customer will add credit card detail and send to server where money will be deducted
driver will ask for payout so driver will be asked paypal detail and sent to server and server will process the transaction pay to driver.
So its clear that we can not use in app purchase as its not buying the digital items.
Please suggest if there is any alternate way to achieve this
Thanks in advance

I'm looking at using Braintree for my app's financial services. Struggling with it, but might be good for you to look at as well.

Related

A payment method in sign up feature

I am developing an music application that charges user per songs are played. I have an a registration functionality that helps user to sign up and register their card with some files: name or card, card number, expire date etc.
I am concerning if getting card info will be rejected by Apple. My assumption is the songs I buy are approved by Apple.
I am really appreciated with any suggestions.
In order to handle branded credit cards from the major card schemes (Including Visa, MasterCard, American Express, Discover, and JCB) your system/backend should be PCI DSS compliance (The Payment Card Industry Data Security Standard), Which is a proprietary information security standard to ensure security of the stored/transmitted card information over the open network. Of course Apple will reject your app if you are not PCI compliance. This is an expensive process and it needs constant supervision and maintenance of the backend server. Still if you wish to handle your customers' cards by yourself, Get started from here.
There are few workarounds. You can simply use third party service providers such as Paypal or Zooz payments instead of handling customer card information by your own.
Also you can go for Apple in-app purchase which is the native mechanism/framework for payments handling. Infact i recommend to go with Apple in-app purchase so you don't have to worry about any card information handling and there is really less work to implement.
All the above payment options i mentioned here are supporting Subscriptions, One time payments, etc...

How can I do p2p payment in my iphone app?

I'm working on an app-idea that enable users to sell goods and services through the app. For this to work I need to be able to pay users, much like uber drivers are paid for their rides or how snapcash transfers money from one user to another.
Does Apple have any framework to do this in iOS apps?
Does it have to be country specific maybe? So that every user register their bank account and my company takes money from one users credit card and makes a bank transfer to the receiving user.
Any input or pointers to where to find more info on this is much appreciated.
No, Apple does not have a framework to do this, unless you use Apple Pay (in which case it's not a P2P payment).
Your solution will have to be country specific and more. I.E. bank specific. You'll have to have deals in place with each bank you want your system to work with.
I believe you would like to have a checkout option on the mobile. If this is the case, there are lot of options available. It depends on country and what exactly you are trying to achieve.
Please more information to assist you.

Can I use Apple Pay to create a Stripe Token without charging the user?

I'm making an app where I need to collect user credit card info at some point so I can charge them later. Right now I use stripe and their PTKView to collect credit card info and store it. Then later on when the user wants to pay I'm ready to go and they don't have to do anything else. I would like to add the option for a user to import a card from Apple Pay that I could then use later on. However, it seems to me that when using Apple Pay I have to charge the user right then. I am curious if anyone knows a solution for this problem or if I just have to create a "Pay with Apple Pay" option on the last screen before the user pays. This would not be preferable but currently it looks to be my only choice.
I saw this post, which is unfortunately unanswered. However, question #1 is exactly what I am asking. Any help would be greatly appreciated.
You need to create an Apple Pay payment option that is equivalent to your in-house payment option wherever the user decides how the transaction will be processed. Do note though that creating the token and processing the payment are separated operations, though it's unlikely you'll do one without the other in normal circumstances.
This is true not just for the code but for compliance with Apple's Apple Pay Identity Guidelines: https://developer.apple.com/apple-pay/Apple-Pay-Identity-Guidelines.pdf -- Read the whole thing, but see p11 particularly (in the Dec-2014 version anyway, the discussion of the Apple Pay Payment Mark).

Process a credit card in ios iphone app

I'm building an app that registers people for an event and charges them a registration fee. I've got most of it built but I'm having trouble actually charging them. I've read the guidelines and don't want to use apple's in-app purchase method because they charge a big fee and the goods being purchased aren't digital or for in-app use.
I've looked at doing paypal and I think that should work fine for me, I've already started playing around with their sdk and sandbox. However, I would also like the ability to charge a credit card. I found card.io that looks like it works really well but that just gets me the card information, it doesn't give me a way to actually process a transaction. Also, I know there are card readers like Square out there but I'd like to do everything in my app, not need the user to switch out to a processing service. Any ideas on how I can make this work? Thanks!
If you use a service like Balanced or Stripe you can tokenize your card info straight from the phone, this will save you having to process it via your server which keeps the PCI hassle low. These services are only for tokenizing and charging cards, if you're looking for a way to capture card info e.g. scanning or swiping the card, then a service like card.io or Square is what you want.
If you don't want to get the assle of the PCI-DSS certification you could use Braintree in combination with card.io.
Braintree offer an ios sdk so it won't even hit your server. (See https://www.braintreepayments.com/mobile-payment-processing.)
Card.io just let youscan the card, but when youget the card info back youcould push it to the braintree api.
Since what you are selling is a "service" you don't need to use the Apple in-app service.
You might look at the newly released PayPal iOS SDK.
Looks like you're looking for a Square solution but in your own app. You might want to check out CardFlight (https://getcardflight.com), as they provide the hardware and an SDK so that you can process payments within your own app. They work with your processor so you can still use Braintree to process the payments.
Full disclosure: I am currently working on this. We realized that there was a huge opportunity to provide the software and hardware so that people can accept physical card payments within their own app.

How can I handle donations through iOS?

My team and I are going to write an app for an organisation where the user can donate to this organisation. The app itself is not the problem, but we don't really know how we can handle this.
Our first thought was that we could make the donations like if you purchase an item in a game for real money. But there are 2 problems:
There are only fixed amounts like 99c and so on
Apple gets 30%, and we want the user to know who gets how much. The developers: 10%, The Organisation 90%. But if Apple gets 30% of ALL the money, and people see that, they may not donate for that reason. I wouldn't either.
Our second thought was that we implement a webthingy (don't know how the element is called atm) in our app, which simply works like Safari and we direct them to the donation page or something, but how does the organisation know that the donations are from our app then?
Is there any other way we can handle this? I think people will be able to donate via credit cards and PayPal.
Edit, I found this:
21.1 Apps that include the ability to make donations to recognized charitable organizations must be free
21.2 The collection of donations must be done via a web site in Safari or an SMS
The app will be free, and it is fine if it has to be via SMS or Safari, but HOW does the organisation know the donations coming in, are from the app?
Update:
US non-profits can accept donations via Apple Pay:
Starting November 14, 2016, nonprofits based in the United States can use Apple Pay to provide a simple and secure way to accept donations from within their app and website. Similar to using Apple Pay to buy goods and services, users can donate without entering their billing, shipping, or contact details.
The App Store guidelines go on to say:
Acceptable
...
Approved nonprofits may fundraise directly within their own apps or third-party apps, provided those fundraising campaigns adhere to all App Review Guidelines and offer Apple Pay support. These apps must disclose how the funds will be used, abide by all required local and federal laws, and ensure appropriate tax receipts are available to donors. Additional information shall be provided to App Review upon request. Nonprofit platforms that connect donors to other nonprofits must ensure that every nonprofit listed in the app has also gone through the nonprofit approval process. Learn more about becoming an approved nonprofit.
Unacceptable
...
Unless you are an approved nonprofit or otherwise permitted under Section 3.2.1 (vi) above, collecting funds within the app for charities and fundraisers. Apps that seek to raise money for such causes must be free on the App Store and may only collect funds outside of the app, such as via Safari or SMS.
My old answer, below, predated this revision in the charitable giving policy.
As you note, section 21 of the App Store Review Guidelines says:
21.Charities and contributions
21.1 Apps that include the ability to make donations to recognized charitable organizations must be free
21.2 The collection of donations must be done via a web site in Safari or an SMS
You ask how you know if they're from your app: For Safari use a unique URL or include a HTTP parameter that you append to the URL when you invoke Safari, which their web server code will capture. As other have suggested, you might want to log the initiation of the transaction for your own reconciliation purposes, too. For SMS, I assume you'd have a dedicated SMS number for app donations.
But HOW does the organisation know the donations coming in, are from the app?
Make a new page on the organization's site that has a URL that isn't linked to anywhere and non-indexable by search engines (robots.txt).
In your app, make a UIWebView set to a URL on your own servers that redirects to the page you make in step 1. You should also make this URL non-indexable.
In that page
Check that the referrer is your page
Check that the user agent is whatever UIWebView sends
Have the page log whatever happens somewhere (date/time, donation amount, etc) -- to reconcile with their data
When a successful donation is made, it should record that it came from this page (and therefore, your app)
Someone could fake that they used your app by making the appropriate request, but why would they. Even if they did, you should probably get credit for that donation anyway.
You can't use IAP for any virtual good that are not consumed in the app as far as I know, apple will reject your app if you try it. (However i've seem some exceptions to that)
try www.stripe.com, they have the best payment interface i've seem so far.
someone even made an iOS SDK to help you with the implementation https://github.com/briancollins/stripe-ios
I don't believe Apple will allow you to use in-app purchases to accept donations. Marco looked into this with his Instapaper app and couldn't do it (now he charges for server searches). You actually have to provide something for the money. Your best bet is to develop a web app that uses a private api to process the donation. That way you can know for certain where the donations are coming from.
Ah, nevermind, you can accept donation on a free app. Missed that. Still, using a private api in a web app is probably your best bet.
From April 2020 you cannot donate inside the app. Apple teams say you can't donate inside the IOS app if you are a nonprofit organization. you must redirect the user to Safari or on your website for donation or using SMS for donation.
Otherwise, You can use Apple Pay for donation like in App Purchase if you are profit Organization
soo if you are a nonprofit organization and you want to donate, please follow these steps.
I am using Flutterwave SKD for donation. You can use as you want like Stripe and PayPal etc.
1: I am using the Flutterwave Php SDK for donation. just download the PHP SDK of your payment gateway from your Payment gateway DOC.
2: create a webpage for payment on your web end and from your app open this webpage into Safari, And pass user ID with URL parameter so you can keep the record of which user donate us and how much.
like (PageWebUrl/userID) (https://www.mywebPageLink.com/donation/userId=20)
3: When a user successfully donates save the data into that user-id and redirect the user to your app.
4: call an API to retrieve the donation data for your app.
Coooool Done...

Resources