Get latest Apple pay transactions in Xamarin app - ios

After spending hours in reading documentation about Apple Pay and how to use it with Xamarin Forms I wonder if it is even possible to just simply get the latest transactions done with apple pay.
In the wallet app you have a list with the latest payments via apple pay. My goal is to get the latest payment and some information (amount, location) about this payment.
Is this possible in anyway? Probably someone can give me some hints or useful links. I DO NOT want to create a new transaction!

Related

How to Collect Charitable Donations from a Native iOS App?

I am working on an app that needs to have functionality to collect charitable donations.
Apple Pay on the Web: Acceptable Use Guidelines
I found at the above link that collection of charitable donations is prohibited with Apple Pay.
App Store Review Guidelines
Here in Section 3.2.2 it states that you cant use In-App Purchases to collect charitable donations.
I have found another StackOverflow post that brushes on my question here.
So, according to the Rules and Regulations, I know that I cant use in app Purchases for Charitable Donations. I also know that I can't use Apple Pay.
What is the best way to prompt a user to donate without forcing them to manually enter all of their payment info into an online form?
I have looked a little bit at Apple Wallet, but the only way that would work is if someone already has their card set up and it will help AutoFill the information. Correct me if I am wrong, but this is what I have understood.
Additionally, is there any reason Apple has given as to why it is so difficult to give charitable donations? A coworker is doing the same thing for Android and hasn't run into nearly as many roadblocks as I have.
The answer is no. Apple doesn't let you its in their rules:
21) Charities and contributions Apps that include the ability to make
donations to recognized charitable organizations must be free The
collection of donations must be done via a web site in Safari or an
SMS
You can call the app review department in California: (408) 996-1010 OR (512) 674-2000, but I highly doubt you'll get any luck.
My advice would be the following:
Get creative and find some simple feature/service that you can add to your service that you can sell with an IAP/Apple Wallet that provides some simple benefit to the member, and you market that as all proceeds going towards the cause your raising money for. As long as your actually delivering some digital good within your app, I don't think Apple can dictate what you actually do with the money, you just can't take money for nothing using their service.
See this similar post: How can I handle donations through iOS?
You might want to check section 21 more closely. If your app is free to use you may be able to get around it. Or just call the review team directly. That would be fun.
Apple accepts charitable donations in-app now. You must sign up using Benevity.
Details are at https://developer.apple.com/apple-pay/nonprofits/
Apple does not allow in-app donations. You can redirect to a website (eg. PayPal), but this must happen outside the app.
Using Safari View Controller to open a webview within the app will be rejected.
Instead, force the URL to be handled by the device's default web browser - they will allow this.
In the meantime, Apple allowed donations by using Apple Pay within your app and website:
https://developer.apple.com/support/apple-pay-nonprofits/
So this should be doable without web views within iOS.
As per Apple's app-store rules, you cannot collect charities or donations from the native iOS app.
All is correct, you cannot accept money from within the app.
HOWEVER, as per feedback from my conservation app being rejected, was that they will NOT accept any payments within the app for charitable contributions. But, if you takes your customer to an external link, via webview (must be webview and not built into app) and from this webview site, they can create payments. If the charity you want to support has a website that accepts contributions, you can direct them there via with webview.

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?
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.
If you want to implement in the swift Paypal has already SDK, which you can use to make between users to make simple payment:
https://github.com/paypal/PayPal-iOS-SDK
or if you need some more advanced feature like (third-party, parallel, and chained payments ) you can check old MPL library by Paypal:
https://github.com/paypal/sdk-packages/tree/gh-pages/MPL
For the In-App Purchases payment can be made by valid app store user only and there is mostly no facility of inter-user in general case in-app payments are made to app owner

Refund of iOS in-app purchase - triggered by developer, not end user

Case:
Our iOS app offers selling of custom made recipe packages that would be created for each user specifically. For example - user buys package of recipes, but for each user this package would be created individually, based on users preferences and needs, by someone from the app team. This package should be created in 5 days for example. If app team fails to create this package and deliver to end user in 5 days, automatic refund should be triggered and end user should receive money back that he spent on this in app purchase, thus invalidating purchased custom package.
Problem:
Is this kind of scenario even possible in Apple / iOS world? Can app developer trigger refund process of one specific purchase that end user made? If user isn't satisfied with specific purchase, could app developer trigger this is refund process if he has reference to transaction receipt?
P.S. We aren't really selling custom recipe packages, this was just an example scenario to help to understand this refund scenario case. ;)
EDIT:
If such scenario isn't possible via Apple refund, are there some examples of this kind of purchase model, implemented in some other way? It's hard to wrap my mind that only way for end user to get refund for something is to write Apple and that also needs to be done by user itself.
If you get paid using Apple services (in-app purchases) then NO, it isn't possible for an Apple Developer (business or individual) to refund App Store customers.
The only option is to direct customers to iTunes Store Customer Support as officially stated in the iTunes Connect screenshot below:
To increase the chances for your customers in getting refunded you could provide them with an e-mail stating that you would like them to receive a refund which they could show to the iTunes Support employee.
As a colleague stated, an option would be to use an external payment processor like PayPal which would allow you to manage refunds, but I think this will greatly increase the work needed since you will need to manage almost everything regarding payments on your own.
Also note that this option is highly restricted by Apple to only physical services or goods and sometimes Apple does not approve apps providing services through third-party payment processors. So.. you should be very careful what path you choose to take.
If the recipes you're providing to your customers are in digital format and users receive them in your app, you can be 100% sure that Apple will force you to use the in-app purchase system.
If such scenario isn't possible via Apple refund, are there some
examples of this kind of purchase model, implemented in some other
way?
In some cases you can use payment through PayPal (for example). We did it in our application where we had to take money of users and return it after a certain period. Check if you case is suitable for using third-party payment systems. Because (for example) Apple will restrict your app if you want to sell in-game content via Paypal, not with in-app purchase.
One very simple alternative would be to have your users buy virtual currency in your app that they can then spend on their recipe-package-orders. Since you are managing their virtual currency account balance, you can easily refund, give volume-discounts, etc. as you please. The only thing that will still be hard then is to have users return their virtual currency to get back their actual money.
There is no api for allowing users to refund a purchase (otherwise guess what can happen).
More info here

iOS app got rejected because we must use IAP for payments

My iOS app got rejected because we charge users with Stripe's payment service, and Apple requires us to use IAPs for payments.
We deleted the Stripe reload balance module from the app. Now the only way to recharge it is for the user to go to the website and make the payment. Does this solution work or does the app still have to use IAPs?
Apple has explicitly requested any submission to go through their iAP for any payment. Your rejection is expected and normal. You have two choices, asking a user to pay through iAP or accept the payment on your website. Both works, but you can't and can't explicitly ask your user to pay you directly.
Let's take Dropbox as an example. You can upgrade Dropbox account on their website. It works. But Dropbox isn't allowed to encourage you to do the upgrade in the app itself (unless the payment goes through Apple). That is, you can't do something like a button in the app that takes you to the payment form on your website. If a user knows how and where to do it on the Dropbox website without being told to do in the app, good, Apple doesn't take that 30% commission.
Unless your service is popular, most users wouldn't be bothered to goto your website and give you their credit card number for a purchase. You should consider just giving the 30% commission to Apple, you'll get more sales.
You are required by Apple to use IAP, and can only use IAP, if you are using the purchase to unlock code in the app. You may use other payment systems only if you are selling real world goods and services or, in certain circumstances, files that are being downloaded from your servers. If you use other payment systems they must be used outside of the app. This is explained in the app review guidelines, section 11.
Note that requiring the use of IAP for sales of code distributed by Apple may not be an issue under anti-trust laws. But in any event, if the "market" is smartphones then Apple is not a monopoly player since their market share is limited.

Will use of the PayPal iOS library get my app rejected?

I'm developing an iPhone app with a subscription model, and I saw this iOS PayPal library: Apple takes 30% of revenue of everything, but PayPal takes significantly less for micro-payments (maxing out at 10%). Naturally, I became interested.
I guess what I'm confused about is this: if Apple wants everyone to use the in-app purchase library for everything (as per this document), why does this PayPal library even exist? Wouldn't any app that used it get rejected?
Has anyone successfully published an app in the app store that uses this library? If so, what was the purchase for? Digital goods? Physical goods? Content?
quote from some forum:
Hello, Apple policy restricts from using our library for accepting
digital goods. Use our library should
be for hard goods, donations, personal
payments and services only.
I hope this clarifies your question.
Thank you.
Update on donations.
Apple has updated their policy (When?). You can no longer use PayPal iOS for donations.
Apple Store Review Guidelines (Retrieved 2014-10-02 05:25pm GMT):
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 charitable donations must be done via a web site in Safari or an SMS
There are things that you could sell by paypal in iphone apps, imagine that your app exists to promote your business, and not that your app IS your business. I mean...you have a library and use app as another channel to sell the books, or you have an hotel and use app to reserve and then pay the room! In that case you can use paypal.
You cannot use paypal, but you have to use instead in-app purchase, if you sell some additional feature for you app...
I hope this helps

Resources