Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Paying to another user in Swift application

I have this problem. I'm making an iOS application in Swift that sells user images and videos. I've got my own server, so all media is saved there. But now I've come to a point where I need make possible that user can buy some content from another user using a credit card or PayPal account. Other users can be found on a map, they have added their payment information to their profile (it's not visible to others) so that transactions could be made.

I've done some research on this topic and I know that a powerful tool for payments in Swift is Stripe. However, as far as I read about it, users can only pay to one account that you register. Basically, they can make purchases as if buying from a store. But in my case, I need to provide the possibility to pay to another user.

Also, I need to integrate PayPal. For this I found API's like Auth0 and PayPal API, but can't seem to find any more information on inter-user transactions.

And there is In-App Purchases option, of course, but I'm not sure if I can use that in this case, because most of my purchases will be done from a Web App.

Can somebody please help me, by giving some tips on how to move forward from here and implement this payment system?

like image 875
ossmalpha Avatar asked Feb 21 '16 11:02

ossmalpha


1 Answers

There are several considerations to take into account, the three most important being price, ease of implementation and availability. I'll briefly discuss each point of the 3 options you mentioned:


Stripe:

Implementation: Stripe has a native SDK for iOS and has a functionality called Stripe Connect which enables payment between users directly, without having the money to go through your account, yet allows you to take a cut of the transaction if you'd like: https://support.stripe.com/questions/can-i-enable-my-users-to-receive-payments-from-others https://stripe.com/docs/connect

Price: Stripe has a starting fee of 0.3$ and takes 2.9 % of the full amount.

Availability: Currently Stripe is only available in 9 countries worldwide and available as a beta in another 15 countries: https://stripe.com/global


PayPal:

Implementation: PayPal has a native SDK for iOS, but a very fractioned history of SDK libraries depending on how complex functionality you need (Which Pryo's answer underlined). Paypal has something called Adaptive Payments which allows for peer-to-peer payments: https://developer.paypal.com/docs/classic/products/adaptive-payments/

Price: PayPal has a lot of mixed information about pricing (currency conversion, cross border transfer, etc.), but roughly it is a starting fee of 0.3$ and another 3.9 %.

Availability: PayPal is available in 203 countries/markets around the world: https://www.paypal.com/webapps/mpp/country-worldwide


In-App Purchase:

Implementation: This money will always go directly to the developer, so this means you will need to implement some sort of service which takes money from your account to the final user. So the flow goes: buyer -> you -> receiver.

Price: Apple will take 30 % of the total amount.

Availability: In-App Purchase is available in every country where you would be able to distribute the iOS app.


Conclusion:

  • Don't use the In-App Purchase option for user-to-user sales, it's simply too complex and expensive out of the three options.
  • PayPal has a strong brand that people trust and is available in many countries, which makes it a stronger candidate than Stripe, but IMHO I would choose Stripe due to its simplicity and cheaper pricing.
like image 145
Kumuluzz Avatar answered Nov 10 '22 07:11

Kumuluzz