Auto renewable subscriptions without server - itunes

Inn app purchase programming guide says: "Server delivery is appropriate for subscriptions, services and content, because these products can be delivered
as data without altering your application bundle."
My question is: Is this a must? Or I can implement auto-renewable subscriptions build in product, without any server.
Thank you,
Horatiu

If you need to transfer new data to the client:
you must have a server
If you just unlock something, that is already within your data:
you don't need a server
see In-App Purchase Programming Guide - Built-in Product

Related

How would I go about developing a program that automatically sends an email with the tracking number to a customer using EasyPost API?

I'm a fairly new web developer and I have an ecommerce website that integrates EasyPost to create and print shipping labels.
EasyPost has an API. Also, in each shipping label, I see a JavaScript object (I think) that displays buyer_address... "email": "example#gmail.com",, which tells me that the email information is there.
My question is somewhat general in scope: What steps would I need to take to go about creating this automation? The website is built in Webflow, so I don't really have a "codebase" or "repository" to store whatever code is needed to build the automation.
Since the buyer email is making it into EasyPost with integrations already in place, I feel that I could create a simple program that emails the tracking number to the buyer email every time a label is generated, or perhaps when package is shipped, without the program needing to interact with Webflow or other integrations.
I attempted using Zapier, as well as Make.com. Neither worked, and OrderDesk doesn't have a way to send tracking number emails.
It looks like Webflow has some kind of support for Webhooks (https://webflow.com/feature/create-webhooks-from-project-settings). EasyPost offers webhooks for free as an add-on service. Basically, with webhooks, EasyPost would send tracking events to Webflow proactively, but Webflow (or you) would need to manage the logic for what to do with those tracking events after they are delivered.
EasyPost Webhook Guide
I'm unaware of any off the shelf products that could do this for you without writing any code. We have a guide that details how you might accomplish this with Ruby (you could then follow this as an example for any other language): https://www.easypost.com/email-tracking-tutorial
A few suggestions:
Integrate something into Webflow if possible (I'm unfamiliar with the platform so couldn't say).
Build a simple script that runs on a schedule (cronjob) that retrieves your trackers from EasyPost and sends an email to customers if they have not yet received one. To your point, this approach wouldn't require interacting with Webflow at all and could be done with some local code running on a server and just your EasyPost API key.
I've created a simple UI for EasyPost: https://github.com/Justintime50/easypost-tools-ui, it could be interesting to add this particular use-case as a feature to that project. If you're interested, feel free to open an issue on GitHub for the repo listed here and I'd consider it.
You'd use easypost's API webhooks, to detect when shipment tracking information is provided, or package information is updated.
https://www.easypost.com/docs/api#trackers
It looks like it has a lot of states, so you can keep the client updated regarding the package status from the moment the tracking # is assigned;
EZ1000000001 pre_transit
EZ2000000002 in_transit
EZ3000000003 out_for_delivery
EZ4000000004 delivered
EZ5000000005 return_to_sender
EZ6000000006 failure
EZ7000000007 unknown
You can install webhooks from these docs.
To send the email, you can use an automation service e.g. Make to capture those webhook events, and then compose and send an email to that customer. I like MailJet for that purpose, because it has excellent template support and you can send from your own company domain. But there are many email-sending options.
A bigger challenge, maybe, is getting the email address to send to. I didn't spot it glancing through the Trackers or Shipments data structures, and I am primarily seeing physical address info.
If EasyPost is not tracking the customer's email with the shipment, you may have some challenge in that you'd need to capture the client info through Webflow's order webhooks, and then associate that with EasyPost's shipmentid, and store those in a reference table.
Many automation services offer database-like functionality for this purpose, or you could use e.g. google sheets ( columns webflow OrderID, easypost ShipmentID, customer Email ) or airtable for that purpose.
But you'd have to look into the Easypost integration as well, and you may need to make that integration manual so that you can acquire all 3 of those pieces of information at the same point in your business data flow.

Shopify subscription but doesn't start until second billing cycle

I would like to set up a Shopify subscription model that starts with 1 main product but allow for recurring subscription of "refills" for the product. However the "refills" would should only start on the second month as the main product includes the first set.
Is there a subscription app that allows for this functionality?
That is completely supported by the Shopify Subscription API. If you try the various Apps that support Subscriptions, and they do not provide for this functionality, make a support request. You'd be surprised how easy it can be to get them to add basic stuff. Otherwise, roll your own App and you can make a plan that has this functionality without too much fuss.

Server required for auto-renewable subscriptions on iOS

Can someone explain to me what is required for Auto-Renewable subscriptions on iOS?
I'm confused as to whether it requires a server-side component (built by myself)? Or can everything be handled within the app?
For the most basic setup, the answer is no, you don't need your own back end. Apple takes care of the money, and you can get the transaction status from apple in the app and unlock or lock whatever the user is paying for based on that information.
Actually, this issue is fully covered in apple docs even with pictures and schemas
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Subscriptions.html
Briefly:
1) You will need server-side if you want to make your subscriptions more flexible
(ex: to add more sub-ns while app is in appstore) In this case your app gets list of subscriptions from server
2) You will be able to check the correctness of a transaction using your server by sending the received receipt to Apple-server, and give users the content if only the receipt is valid.

What IAP type Should be Used for Magazine App Like Zinio?

we have created a publishing platform that is similar to Zinio,
We have a website where we upload magazines, and publish them to our mobile App on iPad
Apple is rejecting the App for the following reason:
Apps that use IAP to purchase items must assign the correct Purchasability type We found that the Purchasability Type for one or more of your In App Purchase products was inappropriately set, which is not in compliance with the App Store Review Guidelines.
Your In App Purchases are set to Consumable.
However, based on product functionality, it would be more appropriate to use the Non-Consumable In App Purchase type. Non-consumable products are only purchased once by users and are always available on all devices that are associated with that user's iTunes account.
We have Replied and Explained them Several Times the following:
We are using consumable type of in-app products since we have a lot and frequently released magazines with different prices therefore we cannot define the purchases to be non-consumable.
We have set pricing Tiers from $0.99 until $54.99 so that each magazine will be classified appropriately and assigned to a certain Tier.
our system has a lot of magazines where each one has many issue releases. Magazines issues are sold within an offer.
We have "single issue offers" (offers containing only one magazine issue) and "multiple issues offers" (offers containing multiple isses, eg: get 3 digital issues of magazine x for $19.99).
We are using the Tiers from 1 to 55 to assign prices for our offers. Note here that the in-app purchases are consumable but our system won't let the user buy an already purchased item another time.
The application will contact our server each time when the user attemps to buy an offer.
If the offer is already bought, the application won't proceed with the in-app purchase and the user will be shown that he has already bought that offer.
Anyone has an answer to solve this problem?
As apple is insisting that we should not use consumables and use non-consumables which is not logical, as we need to be submitting the app every time magazines has been added to the system.
Help is Much Appreciated
For magazines, you are unlikely to get consumable in-app purchase ability from Apple. They've made it clear in the past that the expectations for media, levels, and content of this type are expected to be present on all of the users devices.
However, based on your description of what you are trying to do, I'm not sure that this is a problem. Remember that consumables are not the same as subscriptions, in that a subscription gives you access to potentially more than one issue, whereas a consumable just means that is something that may not be available after you purchase it, I.e. that it might be consumed.
It sounds like the real problem here is a catalog issue. For episodic content, such as magazines, you don't want to hard-code your in-app purchases, instead look at the server-based model, as described in:
http://developer.apple.com/library/mac/ipad/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/APIOverview/OverviewoftheStoreKitAPI.html
With this model, your server can return a list of product identifiers that meet certain criteria, so you don't have to constantly update the app.

How do you use UIWebview to make a transaction using Paypal and retrieve a receipt or transaction information.

I've seen different documentation on various forums and site on different ways of using Paypal api, here is a pretty useful link: https://cms.paypal.com/us/cgi-bin?cmd=_render-content&content_ID=developer/e_howto_api_ECOnMobileDevices&bn_r=o/, My question is a little different i do not want to use any of the Paypal libraries offered to us in my app, this is the link to libraries:https://www.x.com/developers/paypal/documentation-tools/sdk , I also do not want to gather any personal information, I want Paypal to take care of everything. So in other words I want to be able to open up a UIWebview to the Paypal's mobile site if possible (or if not the regular site will work) have to user log in with his credential or he can use the express checkout option and get back the transaction ID, or receipt what ever is available. I'm a little new to iOS and any help is appreciated.
If you don't want to use any libraries or API's, Express Checkout won't work for you.
Which does make it somewhat easier, as you can just use PayPal Website Payments Standard in a UIWebView instead.
For example; just open https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=your#email.tld&amount=1.99&currency_code=GBP
This will start a 1.99 GBP payment to email#here.tld via PayPal, and automatically use a mobile layout.
If you subsequently want to receive transaction information; set up PayPal IPN on your account and use that to receive transaction-related events. This can be handled outside your app, and thus take away precious processing power to the server.
For an overview on getting started with PayPal IPN, have a look at https://www.paypal.com/ipn/
I would strongly suggest against trying to do transactions through paypal. If you look at the App Store Review Guidelines it states that
11.2 Apps utilizing a system other than the In App Purchase API (IAP) to purchase content, functionality, or services in an app will be rejected