Future payment with iOS Stripe SDK - ios

Using the iOS SDK for Stripe, can we do the following
Create a customer profile where the customer id can be sent and stored to the backend
Add, edit, delete credit cards to the customer profile
Card can be charged automatically from the backend
Note that, once the user make a payment via stripe, we ask them to allow auto-payment next time the balance goes below a certain level. So, it is not periodic subscription. But it is a permission in advance, to charge later.
For a single payment, the SDK takes the card info and provides the token. Token passed to server where the payment is finally process. This looks very nice and secured.
I do not want to store the card info in the iOS app, also not in server. But does stripe take the responsibility to store it and allow the backend to charge it later? I need a way so that server can communicate with stripe with a unique id and amount, so that stripe accepts the request and make the payment.

You can ask for webservice to your webservice developer which can make APIs to create customers in stripe account and store its customer_id in database so for next all payment you can make payment using customer id. Stripe will store card details in its database so no need to store card details at our side.

Related

How to safely access & store credit card information for an HTTPS request

I have a third party API that connects directly to a restaurant's POS system. In order to pay for a meal, the API requires that I send credit card information through an HTTPS POST request so that it may be used to complete a payment.
I know not to save any sensitive details on the device itself or on a server that is owned by me. But without doing so, how can I safely request credit card details from the user, save them and then send those details over an HTTPS request in order for a transaction to be completed?
In other words, step by step:
1. User inputs credit card information in App
2. App sends credit card information using an HTTPS request to a third party API
3. Payment is completed
I need to securely gather the credit card information, and somehow save it so that if the user purchases multiple items, they won't have to enter their information every time they order.

Paypal restful apis canada, Not able to create app on developer.paypal.com

I have one mobile application. In which we have payment function. In our application we have below mentioned payment flow.
User can add credit card, For this first we are calling Paypal api (https://api.sandbox.paypal.com/v1/oauth2/token) to get token. As we got token then we are calling api (https://api.sandbox.paypal.com/v1/vault/credit-card) to get credit card details form paypal.
We are sending response details to our server. Our server will store that response.
Later from application if user want to pay then we are showing list of added card & user can select any of card.
We are sending card id to our server & based on stored details our server call charge api of paypal for charge.
Till now we are using sandbox account which belongs to USA. But Now we want to create live app on paypal & for this we are using our original account which belongs to Canada. But in create app section on developer.paypal.com we are not able to create application.
- Is this function of payment is not available in Canada ? If not then Please let us know how we can achieve it ?
- Is there any alternate exists for above mentioned payment function ?
Please let us know how we can create app and get clientid & secret for above mentioned payment function .
Thanks :)
REST API in PayPal for Credit Card is only allowable in US and UK Pro. Other country is not yet available.
Further information in here.

How to do payment using stripe

I am using Stripe to make payment in my application. I got the token Successfully.
I want to know that how the charges will be done, as there is no changes reflected in my Stripe dashboard. I'm using my Stripe Account TestPublish Key.
Tokens only represent a card or payment method, not an actual transaction.
Once you've collected and tokenized a customer's payment information, you need to send the token to your backend server so you can use it in an API request, e.g. a charge creation request or customer creation request.
You can find more information in this tutorial: https://stripe.com/docs/charges
Common error - you need to test on a real device, not the simulator. Just one of the gotchas of the Stripe API.

Paypal put funds on hold

I am an iOS developer working on a mobile app
Our app business model is based on creating a niche marketplace between users. i.e a user can request a service and any user can provide the service and get payed by the requester.
We want to prevent misuse of the app by rouge users.
We want to create a user license agreement that will state then once the user submitted a new request to the marketplace with a specific amount then in case all of the criteria will be fulfilled later on - the app will complete the transfer.
Is there an option to put paypal funds on hold to be freezed/ unfreezed later on via the mobile idk/ backend server ?
If a user consents for a future payment, does it guarantee the availability of the funds later on?
Which Paypal API should I use?
Thank you,
Shai

Create Token With Apple Pay Without Payment

I have two questions:
Is there a way to create an STPToken using Apple Pay without a payment? In my iOS app, the customer either enters in their payment info or decides to use Apple Pay when registering. When the customer decides to make a purchase (some time in the future after signing up), their card will be automatically charged. There is a method that I can call to check if the payment request can be made, but it seems that I have to actually run the payment and charge the card in order to get the token. Note that I can create a customer and saving a card without charging the customer if the customer enters in the payment info manually. This issue only comes about if the customer decides to use Apple Pay.
For testing purposes, when I do use the payment to create the token and charge the customer's card during the sign up process, I've noticed that the dynamic_last4 and expiration date fields do not match the actual card. I have verified this not just in my program, but also when I log into Stripe's website and check the customer's record. Although these fields do not match the actual card, I can indeed charge the card correctly. Are these fields being masked in some way by Stripe or Apple on purpose?
You need to invoke the Apple Pay payment process in order to get the Apple-generated token. While strictly speaking you don't actually have to process the payment to get the token, what would you do with it otherwise? Store it? They're not re-usable and you don't get the card details to otherwise store a customer/card pair from it for future token generation. If you're not already familiar with it, I would strongly recommend reviewing the Apple Pay Identity Guidelines doc: https://developer.apple.com/apple-pay/Apple-Pay-Identity-Guidelines.pdf with respect to offering your customers multiple payment options including Apple Pay.
Yes, with Apple Pay the last4/exp values are disassociated from the actual card for security purposes.

Resources