Instant payments options in Android and iOS app - google-play

I have payoneer account and i'd like to receive payments from app into this account.
Payments are not for physical goods. They are more like app content-unblockers.
Let's focus on Android and Google Play distribution case.
I suppose, payoneer is not designed for processing quick small payments, right?
I need these:
App should be able to set price according to misc factors.
Payments should be instant without credit card entering - i guess it called "Payments from Google Wallet". E.g. if i (app user) have google account and i have payment method in Google Play, then i do not need to enter my credit card number again.
Payments should be possible independently of user location (country)
So, can I use, say, Braintree to process payments with those requirements?
Will it violate any kind of Google Play policies (the fact, that i'm processing payments not through Google)?
The same questions about iOS

For Android : You can use third party payment seamless/non-seamless as long as their sdk supports Android platform. Google doesn't stop you from choosing any payment service.
For iOS : : It's million dollar question. Always refer to latest app store review guidelines https://developer.apple.com/app-store/review/guidelines/#purchasing-currencies
You can use third party payment gateway in iOS if you are selling physical goods/services outside of the app. For any in-app purchases you must use IAP.
For any in-app purchases if you use other purhasing mechanisms your app will be rejected.
Refer to section 3.1.1
If you want to unlock features or functionality within your app, (by way of example: subscriptions, in-game currencies, game levels, access to premium content, or unlocking a full version), you must use in-app purchase. Apps may not include buttons, external links, or other calls to action that direct customers to purchasing mechanisms other than IAP.

Related

How to work with Xamarin.Forms cross-platform subscription when using in-app billing?

I am developing Xamarin.Forms application which will be used for Android and iOS. It will have access to full functionality with a paid subscription.
I researched about subscriptions policy for Play Market and App Store and they require to use their in-app billing if an application gives access to some of its functionality only with a subscription.
But if, for example, user buys the subscription in Android app and then wants to use iOS app - what is the best way to handle this? Since subscriptions are created separately on Play Market and App Store side they need to be somehow synced?
That's probably a problem that was solved a ton of times, but I can't find how to do it
This is explicitly allowed on the platforms, e.g., here's an excerpt from Apple's App Review Guidelines:
3.1.3(b) Multiplatform Services: Apps that operate across multiple platforms may allow users to access content, subscriptions, or
features they have acquired in your app on other platforms or your web
site, including consumable items in multi-platform games, provided
those items are also available as in-app purchases within the app.
As to how to do this: Basically you have to have user authentication and a backend that ties a subscription status to a user ID. Also, the backend needs to keep the subscription status up to date by refreshing the subscriptions with the stores (Apple App Store, Google Play Store).
(If you weren't using Xamarin, I'd recommend using RevenueCat for this (disclaimer: I work there), but we don't have a Xamarin SDK so I don't think
that that's a possibility)

Does the Google Play Store require a user to have a form of payment?

I am developing a cross-platform app that will eventually be on both the Apple App Store and the Google Play store. My app is free.
I understand that a user does not have to a credit card (or any payment method) to have an Apple ID and use the App Store and download apps).
I was helping an Android user install our app from the Google Play Store (in beta not in production yet) and it said the user needed a payment method. This particular user does NOT want to associate his credit cards or a debit card with is account. I think we will have more people with this concern.
Research indicates that Goole Play does NOT require a credit card or any payment. If so, then why did it ask this user for a payment method?
The Google Play Store does not require users to have a payment method. In any dialog prompting for this, there is a "Skip" option.

Android and iOS billing for multi-platform saas

Just wondering if someone can clear this up for me as its kind of a grey area and not sure what to do.
I have a website that is split into frontend and api and has a subscription service provided by stripe on the api. I am now making apps in ionic for both apple and google stores but Im unsure of how the payments will work on the platforms, ideally i would like to just stick to using stripe but Ive been reading about both stores and this is where I need guidance.
From what I have read it seems to be that I have to use google play billing and apples alternative. Do I have to use these for the apps going into their respective stores or can I continue to use stripe within the apps? As i see it its a multi platform saas. So why cant I just send the card info to my api for charging?(I know theres alot of security involved and its not as trivial as I make it out to be)
Ive been reading conflicting statements from multiple sites and Im just not sure which is correct and the docs on google play billing make no reference to this. Its a multiplatform service so can I just send on the card details to my api
But what I have found is that apple have this
3.1.3(b) Multiplatform Services: Apps that operate across multiple platforms may allow users to access content, subscriptions, or features they have acquired elsewhere, including consumable items in multi-platform games, provided those items are also available as in-app purchases within the app. You must not directly or indirectly target iOS users to use a purchasing method other than in-app purchase, and your general communications about other purchasing methods must not discourage use of in-app purchase.
Which to me states that I have to use Apple Pay and make no reference to my other payment methods for fear of being refused from the store.
I can't comment for Apple. For Google Play the best place to answer this sort of question is the Developer policy center. In the Monetization and Ads section it says
Developers offering products within another category of app downloaded on Google Play must use Google Play In-app Billing as the method of payment, except for the following cases:
Payment is solely for physical products
Payment is for digital content that may be consumed outside of the app itself (e.g. songs that can be played on other music players).
You should read all of the linked page and decide what category the stuff you are selling falls into.

Server side Google Play In App Billing receipt testing

We do validate the google play in app purchase receipt on our backend server.
For testing we do fake the receipts and test with them our system.
Is there a possibility to do a test purchase from the backend server to google's test server, to generate a receipt?
Or is there a possibility to get an fake receipt directly from google play?
For Android there are static responses for testing, maybe for backend server too.
It will be a better test then to fake the receipt by my own.
All purchases, including test purchases, must be done using an Android application (via a real device or an emulator). It happens because the purchase is executed by the Google Play Store app, and authenticated by the user.
About the server-side API, according to the Google Play Developer API, you can use the Subscriptions and In-App Purchases API to:
[...] manage your app's catalog of in-app products and subscriptions. In
addition, with the Subscriptions and In-App Purchases API you can
quickly retrieve the details of any purchase using a standard GET
request.
So, after your purchase is completed (starting on the device), you can manage it's status, get details from the API and etc.

iOS Guidelines in Implementing Payment within App Outside of In-App Purchase

Our company wants to know if it's possible to implement payment outside of In-App Purchase within an iOS app i.e. doing bank transactions and payments for bank services using a customer's account in the bank. Will Apple reject such kind of app knowing that this kind of payment is not covered by in-app purchase? Thanks.

Resources