React Native application with subscription: custom Stripe flow? - react-native

I've developed my custom onboarding with a one-time payment using Stripe which, if succeded, updates subscription data in my database. Then I have logic in my React Native app that will determine whether the user's subscription is expired.
Sadly, as I understand App Store requires Apple's In App Subscriptions to achieve such task. Does Google Play have the same requirement? Will my app be rejected?
https://github.com/dooboolab/react-native-iap is the only crossplatform solution I've found but does anybody know how to set up a year subscription on both platforms?

yes, in google play, you can make a free app or a paid one. Within this app, you can insert In-app products which could be subscriptions as well. It a pickle. I give my app for free for 3 months and then charge for subscription. there is a grace period you can define as well

Related

What is the best way to validate monthly subscription in react native?

My react app uses react-native-iap module for in app purchases and It has a monthly subscription. I am facing few problems with validating my monthly subscription and I couldn't find any solution for that.
When user do a subscription first it will validate and update the state of my app as subscribed.
If user close the app and open it again also the validation will happen and update the state of the app as subscribed.
But user does not close the app, then there is no method to validate the subscription. User can use premium features until he/she close the app.
I tried with setInterval and periodically send request to the server to validate , but this method will reduce the performance of my android app drastically. So I can not use that method also.
Is there a correct/best way to validate monthly subscription periodically ? or Did I miss something by implementing monthly subscription ?
Thank you.

React Native payout solution with Paypal and Credit card

I'm going to implement payout payment with Paypal and Credit card in my React Native application. There're two kinds of users in my app - customers and freelancers. Customers should pay to freelancers for their service.
The payment methods I'm going to implement are Paypal and various kinds of Credit cards. The backend server is based in NodeJS.
I'm quite new to this payout development and I'm really not sure where I should begin and which services I should use. Please reach out me any comments.
P.S. I'm contacting to Braintree service for several months and it's taking too long to register, so I'm looking for another solution now.
I don't know of a native solution that will allow you to facilitate payments to a PayPal account that is not yours.
Here is a non-native, vanilla JS demo pattern for PayPal Checkout: https://developer.paypal.com/demo/checkout/#/pattern/server
Using such a checkout, you can set a custom payee to the freelancer's account: https://developer.paypal.com/docs/checkout/integration-features/custom-payee/

To submit an app with the category Magazines & Newspapers, you must offer at least one auto-renewable subscription. Error.

I tried submitting an app made with bakerframework in the magazine category and i got the following:
To submit an app with the category Magazines & Newspapers, you must offer at least one auto-renewable subscription. Set one up in In-App Purchases.
However with the changes in in-app purchases a couple of years ago, apple disabled the option to give a free in-app subscription for a magazine.
So I tried a non consumable in app purchase. And got that message.
Then I changed the categories for the app to see whether it would accept an upload and still get the same message.
Does it keep track of your submissions and not accept changes in categories in itunesconnect?
I tried disabling subscriptions all together in the app and deleted all teh in app purchase settings in itunesconnect and STILL get the same error.
Does anyone have a solution or a similar experience with this?
Any help would be much appreciated.
i had the same issue the last two days.
It was because the build of my app was using the «Newsstand kit» and when developers use the Newsstand plist key in their app, they are required to have at least one auto-renewable subscription before submitting the app for review.
So with a new build without the «Newsstand kit», it worked ;)
The same issue occurred for my app so I have sent a request to the Apple Support team. They sent me the following answer:
Thank you for confirming this metadata was set correctly. After investigating further, it seems that this issue may be due to the fact that your app's category is set to Magazines and Newspapers but there is no free or auto-renewable subscription tied to the app - which is required for all Magazines and Newspapers apps.
Auto-Renewable Subscriptions allow users to access content or services within an app on an ongoing basis. At the end of the subscription duration, the subscription automatically renews until the user chooses to cancel. For more info, please see the following:
Offering Subscriptions
In-App Purchase Programming Guide
In-App Purchase Configuration Guide
If you are still unable to submit your app for review after including a free or auto-renewable subscription in your app, please let me know.
Kind regards,

PayPal adaptive payment flow on React Native

I'm creating an app with react native that have a payment module with credit card and PayPal as payment module. The payment is automatically transferred to a vendor account subscribed in our platform
(Buyer -> Platform -> Vendor).
I already successfully created this payment flow in the credit card payment module using stripe as a payment gateway but i didn't find a way to do it with PayPal.
Here's a list of what i tried:
Adaptive payment: the problem with PayPal adaptive payment is that's it's not mobile friendly, the standard checkout page is not even close to being responsive. The lightbox checkout page need to open a new Popup which is not possible with RN WebView. And the Mini-Browser one do not return a response after the payment is done (check out this link)
Braintree SDK: Braintree has a pretty great SDK for RN that i already tested and it works great, the problem is that i need to use Braintree's master-merchant and sub-merchants technique to achieve the payment flow i need, but this technique is only available in the US and the funds needs to be in USD and my application is deployed in France using EUR as a currency.
Braintree SDK with PayPal payout: I could create a Braintree account to receive all the funds and then send each one to it's receiver (vendor) automatically but i couldn't find a way to do this
If anyone have an idea of how could i create this flow with PayPal on RN.
Fixed with using the PayPal express checkout with a payee object.
If you want to know more about this functionality i advice you to read more about it here: https://www.paypal-engineering.com/2017/01/03/setting-payee/ .
Now instead of calling the Adaptive Payment API i use the regular payment API with a custom payee and then give the user the express checkout link generated dynamically and finally i call the execute payment API to make the payment after having the client authorization.

iOS app consuming RESTful webservice for authentication

I am developing an app for iOS. I am planning to publish this app in app-store as free app. I would like to authorize app users via outside RESTful webservice. Is this practice against any Apple official guidelines and can be not approved by Apple app review?
The Apple Review Guidelines 11.1 states:
Apps that unlock or enable additional features or functionality with
mechanisms other than the App Store will be rejected.
It sounds clear, but I believe it is open to interpretation on behalf of their reviewers. My company has produced an app exactly as you describe and it not only passed but has been versioned up very recently. Like yours, this app consumes a web service and while the launch screen is public facing, the user must immediately authenticate on the screen after that to go any further.
Our app was not a good candidate for the enterprise store model, since the intention is to distribute to customers, not employees.
Also, and perhaps most telling, when you prepare to upload your binary the iTunes Connect portal has a place for you to enter demo account credentials for the testers to access protected content in your app. So I think you're OK. Screencap below taken from iTunes Connect.
UPDATE
Apparently, when submitting your app you can provide demo account information (#erikr98), implying that an app like yours could be tested by Apple and be approved in the store. I've seen apps like this and worked on them before, but was under the impression that you also had to provide some sort of functionality in the app outside of your "pay wall."
....
I think the answer is maybe. It sounds like you're hovering the line between a public app and an enterprise app. I'm going to assume your question could be rephrased like this:
"I make money from my customers through an existing process (probably on the web) and I want to allow them to use that functionality on iOS without giving 1/3 of that money to Apple via a paid-app or through In-App Purchase. If I build a free app and provide my current customers access to its content via their existing accounts (and through a login process) will Apple reject it?"
Apple's App Store Review Guidelines, Section 11, clearly states that if you allow users to upgrade the content, unlock features or abilities, or purchase content through your application, that purchase must be done through In-App Purchase.
However, in my experience I have found that Apple will not reject an application if it provides value to everyone, not just those with an account. If you provide some sort of benefit for someone without an account you stand a much better chance. In my case we had, 5 features available to the people without an account, and 10 features available for those that could login. Our app was approved and released to the App Store. This was last year.
Also, think about this from a reviewer's perspective at Apple: When you sit down to review an app, its probably not a good sign that you can't access any part of the app without a user name and password.
Look at the model that the newspapers use. Washington Post, for example, has a free app with a $15 In-App purchase that provides you access to their content. You get a limited number of free articles, first, though. See, they provide content for everyone even if on a limited basis. You can also sign into the application, which unlocks all content, if you already have a paying account.