Need help setting up Apple Subscriptions

Remote Full-time
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 Now

Apply Now
Apply Now

Similar Opportunities

Experienced Registered Behavior Technician for In-Home ABA Therapy - Atlanta, GA

Remote Full-time

Immediate Hiring: Experienced Registered Behavioral Technician (RBT) for Clinic-Based ABA Therapy Services

Remote Full-time

Experienced Registered Behavioral Technician (RBT) - ABA Therapy for Children with Autism Spectrum Disorder

Remote Full-time

Experienced Registered Nurse - Telehealth: Providing Remote Care Coordination and Patient Support

Remote Full-time

Experienced Substitute Teacher for Riverside County Schools - Join Scoot Education's Innovative Team

Remote Full-time

Experienced Substitute Teacher for San Bernardino County - Flexible Schedules & Competitive Pay

Remote Full-time

Experienced School Year Instructional Coach for High-Dosage Tutoring Programs in Edgewater Park, NJ

Remote Full-time

Experienced School Year Tutor for K-8 Students in Math and Literacy - Mickleton, NJ

Remote Full-time

Experienced Secondary Social Studies Teacher for Kansas - Flexible Hybrid Remote Arrangement

Remote Full-time

USPS Office Helper

Remote Full-time

Remote Social Worker - MI

Remote Full-time

Program Manager, Federal Services

Remote Full-time

**Experienced Live Chat Support Specialist – Remote Customer Service Representative**

Remote Full-time

Remote Lecturer & Student Teaching Supervisor – AY SSED Phase II Instruction & Graduate Supervision for History Education (PhD Preferred)

Remote Full-time

Staff Pharmacist, Pharmacy

Remote Full-time

Cloud Architect — Azure Government / FedRAMP Boundary & Architecture Lead

Remote Full-time

Policy Team Coordinator (Independence Title - Main Office)

Remote Full-time

Business Development Manager

Remote Full-time

Experienced Customer Service Representative for a Dynamic and People-Oriented Team at blithequark

Remote Full-time

Creative Writer – Weekly Blogging Program (Contract)

Remote Full-time
← Back to Home