Need help setting up Apple Subscriptions
Posted 2025-10-26
Remote, USA
Full Time
Immediate Start
Good day. We have a product that’s been working with legacy Apple in-app purchase subscriptions APIs. We decided to finally upgrade it to the webhook-based approach. Unfortunately, our developers, seemingly making it all correct on both Swift and PHP side, can't get it to work together. Back-end does not become aware when the subscription starts. We need a team of Swift + PHP developers who know exactly how it is done to make it work. YOU HAVE TO HAVE EXPERIENCE SETTING IT UP BEFORE. We will only agree to the fixed payment which will be paid only if the subscriptions work properly. Our developers have made the majority of work, but missed something in the setup. So there is a chance it’s gonna be just debugging work, rather than writing the full thing. Technical details We have 1 app with 2 apps inside for MacOS and iOS 2 Subscription plans (monthly and yearly) Both apps are written in Swift Back-end is based on the Symfony framework. The version is pretty old, something like v5.4. We have clear instructions on how to spin it up on localhost. Both our developers are available to respond to what was done. Recap from developer of what’s done from the BE Side 1. api_v2_apple_notification (POST /api/v2/apple/notification) -- Purpose: - Handles server-to-server notifications from Apple's App Store - Processes subscription status changes, renewals, and other App Store events Implementation Details: 1. Controller: AppleNotificationController - Route: POST /api/v2/apple/notification - Authentication: None (called by Apple's servers) - Main Service: AppleNotificationHandler 2. Flow: a. Request received from Apple's servers b. AppleNotificationHandler processes the notification: - Validates the notification payload - Extracts notification type (e.g., INITIAL_BUY, DID_RENEW, etc.) - Retrieves the user using the original transaction ID - Updates subscription status based on notification type - Logs all notification events for auditing 2. api_v2_apple_data (POST /api/v2/user/apple-data) -- Purpose: - Saves Apple's original transaction ID for a user - Links Apple purchases to user accounts - Triggers subscription processing Implementation Details: 1. Controller: SaveAppleOriginalTransactionController - Route: POST /api/v2/user/apple-data - Authentication: Required (JWT token) - Main Service: AppleSubscriptionService 2. Request Flow: a. Client sends receipt data after App Store purchase b. Server validates user authentication c. Extracts original transaction ID from receipt d. Creates/updates user's Apple data record e. Processes subscription 3. Request Body: 'originalTransactionId': 'string', // Apple's original transaction ID 'transactionId': 'string' // Current transaction ID 4. Data Processing: a. User Lookup: - Gets authenticated user from JWT token - Loads user's existing Apple data if any b. Apple Data Management: - Creates new UserAppleData entity if none exists - Updates existing entity with new transaction ID - Maintains relationship with user account c. Subscription Processing: - Calls AppleSubscriptionService - Validates receipt with Apple's servers - Updates user's subscription status - Records transaction details Apply tot his job Apply To this Job