Authorize.Net Integration
Accept credit card and ACH payments for WiFi access on your captive portal using Authorize.Net with support for recurring billing and enterprise-grade fraud protection.
Overview
The Authorize.Net integration provides:
- Credit card processing for WiFi access
- ACH/eCheck payments (optional)
- Recurring billing for subscriptions
- Enterprise-grade payment processing
Prerequisites
- IronWifi account with captive portal configured
- Authorize.Net merchant account
- API Login ID and Transaction Key
Authorize.Net Setup
Create Account
- Go to authorize.net
- Apply for merchant account
- Complete verification process
Get API Credentials
- Log in to Authorize.Net Merchant Interface
- Go to Account > Settings
- Click API Credentials & Keys
- Note:
- API Login ID
- Transaction Key (generate new if needed)
- For testing, use sandbox credentials from developer portal
Sandbox Testing
- Sign up at developer.authorize.net
- Create sandbox account
- Get sandbox API credentials
- Test before going live
IronWifi Configuration
Step 1: Add Authorize.Net Provider
- Log in to IronWifi Console
- Navigate to Networks > Captive Portals
- Select your captive portal
- Go to Authentication Providers
- Click Add Provider > Authorize.Net
Step 2: Configure API
Enter credentials:
- API Login ID: Your Authorize.Net API Login ID
- Transaction Key: Your Transaction Key
- Environment: Sandbox or Production
- Signature Key: For webhook verification (optional)
Step 3: Create Access Plans
Configure WiFi access options:
| Plan Name | Price | Duration | Data Limit |
|---|---|---|---|
| Quick Access | $1.99 | 30 min | Unlimited |
| Hour Pass | $3.99 | 60 min | Unlimited |
| Day Pass | $9.99 | 24 hours | Unlimited |
| Weekly | $24.99 | 7 days | 50 GB |
Payment Flow
Accept.js Integration
Secure card handling with Accept.js:
<form id="paymentForm">
<div id="card-number"></div>
<div id="card-expiry"></div>
<div id="card-cvv"></div>
<button type="submit">Pay ${{amount}}</button>
</form>
<script src="https://js.authorize.net/v3/Accept.js"></script>
<script>
// Accept.js tokenizes card data
// Token sent to IronWifi for processing
</script>
Hosted Form
Alternative: Redirect to Authorize.Net hosted form:
- Create payment link
- Guest redirected to Authorize.Net
- Payment processed on hosted page
- Redirect back with result
Transaction Types
Authorization & Capture
Standard flow for immediate access:
- Authorize card
- Capture funds
- Grant access
Authorization Only
For delayed capture:
- Authorize card
- Grant temporary access
- Capture later
Refunds
Process refunds via:
- Authorize.Net Merchant Interface
- API call from IronWifi
Webhook Configuration
Silent Post URL
Configure in Authorize.Net:
- Go to Account > Settings
- Click Silent Post URL
- Enter IronWifi webhook endpoint
- Select transaction types to notify
Webhook Events
Receive notifications for:
- Approved transactions
- Declined transactions
- Refunds
- Voids
Testing
Test Card Numbers
In sandbox environment:
| Result | Card Number |
|---|---|
| Approved | 4111111111111111 |
| Declined | 4222222222222 |
| Error | 4012888888881881 |
Test Amount Triggers
Specific amounts trigger responses:
- $1.00 = Approved
- $2.00 = Declined
- $3.00 = Referral
Test Flow
- Configure sandbox credentials
- Create test transaction
- Verify access granted
- Check transaction in sandbox
Advanced Features
Address Verification (AVS)
Enable AVS for fraud prevention:
- In Authorize.Net settings
- Enable AVS checking
- Configure response handling
Card Code Verification (CVV)
Require CVV:
- Enable CVV requirement
- Configure rejection rules
- Improves fraud protection
Fraud Detection Suite
Authorize.Net Advanced Fraud Detection:
- IP address filtering
- Transaction limits
- Velocity filters
- Suspicious transaction blocking
Recurring Billing
Subscription Plans
For subscription-based access:
- Create subscription plan
- Set billing frequency
- Configure access duration
- Handle renewal/cancellation
ARB (Automated Recurring Billing)
Plan: Monthly WiFi Access
Price: $29.99/month
Billing: Automatic monthly charge
Access: Continuous while subscription active
Reporting
Authorize.Net Reports
Available in Merchant Interface:
- Transaction search
- Settlement reports
- Statistics
- Declined transactions
IronWifi Reports
Track in IronWifi:
- Revenue by plan
- Conversion rates
- Failed payments
- Customer lifetime value
Security
PCI Compliance
With Accept.js:
- Card data tokenized client-side
- Reduces PCI scope
- Sensitive data never touches your server
Transaction Security
- SSL/TLS encryption
- Fraud filters
- AVS/CVV verification
- IP filtering
Troubleshooting
Transaction Declined
Check in Authorize.Net:
- View transaction details
- Check decline reason code
- Common reasons:
- Insufficient funds
- Invalid card number
- AVS mismatch
- CVV failure
Connection Errors
- Verify API credentials
- Check environment setting
- Test API connectivity
- Review error logs
Access Not Granted
- Confirm transaction approved
- Check webhook received
- Verify plan configuration
- Review IronWifi logs
Error Codes
Common response codes:
| Code | Description |
|---|---|
| 1 | Approved |
| 2 | Declined |
| 3 | Error |
| 4 | Held for Review |
Best Practices
- Start with sandbox - Test thoroughly
- Enable fraud tools - AVS, CVV
- Monitor daily - Check for issues
- Clear errors - User-friendly messages
- Receipt emails - Confirm purchases