A secure VB.Net Windows Forms application for credit card processing with Authorize.Net integration. Features AES-256/TripleDES encryption, comprehensive transaction management, and audit logging. Includes key management system and database integration for enterprise payment processing.
Key Features:
- π Secure credit card processing via Authorize.Net
- π‘οΈ Multi-layer encryption (AES-256 & TripleDES)
- β Credit card validation with Luhn algorithm
- π Advanced key management and rotation
- π Comprehensive transaction logging and audit trails
- ποΈ SQL Server database integration
- π₯οΈ Windows Forms user interface
Tech Stack: VB.Net, .NET Framework 4.6.1, SQL Server, Authorize.Net SDK
Use Cases: Point-of-sale systems, e-commerce backends, payment processing applications
Security: PCI DSS compliant design with encrypted data storage and secure key management
This is an anonymized version of a production payment processing system, with all sensitive credentials and company-specific information removed for educational and reference purposes.
This is an anonymized and generalized version of a VB.Net Windows Forms application that integrates with Authorize.Net for credit card processing. The original application has been sanitized to remove company-specific information, credentials, and proprietary business logic while preserving the core functionality.
- Credit Card Processing: Integration with Authorize.Net payment gateway
- Encryption Management: AES-256 and TripleDES encryption for sensitive data
- Transaction Management: Store and retrieve payment transactions
- Key Management: Secure key generation and management system
- Audit Logging: Comprehensive logging of all payment activities
- Database Integration: SQL Server database for transaction storage
- Form1.vb - Main application form with payment processing functionality
- Card.vb - Credit card validation using Luhn algorithm
- KeyList.vb - Encryption key management interface
- NewKey.vb - Key generation and creation
- PwdBox.vb - Password input dialog
- EncryptionHandlers.cs - External encryption service integration
The application uses the following main database tables:
PAYMENT_QUEUE
- Stores payment transactionsKEY_LIST
- Manages encryption keysKEY_USAGE
- Tracks key usage for audit purposesPAYMENT_ACTIONS
- Logs all payment-related actions
Before running the application, you must configure the following in app.config
:
<appSettings>
<add key="AuthorizeNetLogin" value="YOUR_AUTHORIZE_NET_LOGIN_ID" />
<add key="AuthorizeNetPassword" value="YOUR_AUTHORIZE_NET_TRANSACTION_KEY" />
<add key="AuthorizeNetURL" value="https://secure2.authorize.net/gateway/transact.dll"/>
<add key="GenerateKey" value="http://your-encryption-server.local/EncryptionService/service.asmx/GenerateKey"/>
<add key="AESEncryption" value="http://your-encryption-server.local/EncryptionService/service.asmx/AESEncryption"/>
<add key="AESDecryption" value="http://your-encryption-server.local/EncryptionService/service.asmx/AESDecryption"/>
</appSettings>
<connectionStrings>
<add name="PaymentDB" connectionString="server=YOUR_DATABASE_SERVER;uid=YOUR_DB_USER;pwd=YOUR_DB_PASSWORD;database=YOUR_DATABASE_NAME;Min Pool Size=6;Max Pool Size=10" providerName="System.Data.SqlClient" />
</connectionStrings>
Create the following database tables:
-- Payment Queue Table
CREATE TABLE PAYMENT_QUEUE (
MS_IDENT INT IDENTITY(1,1) PRIMARY KEY,
CARD_NUM NVARCHAR(50),
AMOUNT DECIMAL(10,2),
EXP_DATE DATETIME,
TEST_MODE CHAR(1),
TRAN_TYPE NVARCHAR(20),
CARD_CODE NVARCHAR(10),
INV_NUM NVARCHAR(50),
RESPONSE_CODE NVARCHAR(10),
REASON_CODE NVARCHAR(10),
REASON_TEXT NVARCHAR(255),
AUTH_CODE NVARCHAR(20),
TRAN_ID NVARCHAR(50),
AVS_CODE NVARCHAR(10),
CREATED_BY NVARCHAR(50),
ENC_CARD_NUM NVARCHAR(MAX),
COMPLETED DATETIME,
CUST_ID NVARCHAR(50),
ENC_CARD_CODE NVARCHAR(MAX),
AES_CARD_NUM NVARCHAR(MAX),
AES_CARD_CODE NVARCHAR(MAX),
KEY_ID INT,
JOB_ID NVARCHAR(50)
);
-- Key List Table
CREATE TABLE KEY_LIST (
MS_IDENT INT IDENTITY(1,1) PRIMARY KEY,
CREATED DATETIME,
CREATED_BY NVARCHAR(50),
[CURRENT] CHAR(1)
);
-- Key Usage Table
CREATE TABLE KEY_USAGE (
MS_IDENT INT IDENTITY(1,1) PRIMARY KEY,
KEY_ID INT,
[ACCESS] DATETIME,
CREATED_BY NVARCHAR(50),
MACHINE NVARCHAR(50),
ACTION NVARCHAR(100)
);
-- Payment Actions Table
CREATE TABLE PAYMENT_ACTIONS (
MS_IDENT INT IDENTITY(1,1) PRIMARY KEY,
USER_NAME NVARCHAR(50),
MACHINE_NAME NVARCHAR(50),
TIMESTAMP DATETIME,
ACTION NVARCHAR(50),
DATA NVARCHAR(50),
RESULT NVARCHAR(100)
);
The application uses multiple layers of encryption:
- TripleDES: For legacy data encryption
- AES-256: For modern encryption via web service
- Key Management: Secure key generation and rotation
- Credit card numbers are encrypted before storage
- CVV codes are encrypted and masked in logs
- All sensitive operations are logged for audit purposes
- Database credentials should be stored securely
- .NET Framework 4.6.1
- AuthorizeNet SDK (version 2.0.1)
- SQL Server (for database)
- Custom EncryptionHandlers library
- Configure Database: Set up SQL Server database with required tables
- Update Configuration: Modify
app.config
with your specific settings - Set Up Encryption Service: Deploy encryption web service
- Configure Authorize.Net: Set up Authorize.Net sandbox or production account
- Build and Deploy: Compile the application and deploy to target environment
- Enter credit card information
- Set transaction amount and type
- Choose test or production mode
- Click "Charge" to process payment
- Review response codes and authorization details
- Access key management through the menu
- Generate new encryption keys
- Activate keys for use
- Monitor key usage through audit logs
- Enter transaction ID or invoice number
- Click "Lookup" to retrieve transaction details
- Decrypt and view card information (with proper authorization)
The application creates detailed logs in:
C:\Logs\CCT.log
- Main application logC:\Logs\CCT_key.log
- Key management log
This version has been anonymized from the original by:
- Replacing company names (HCI β Your Company)
- Removing hardcoded credentials
- Generalizing database table names
- Anonymizing server URLs and endpoints
- Removing specific business logic references
- Replacing proprietary encryption keys with placeholders
For questions about this anonymized version, please refer to the configuration documentation and ensure all placeholder values are properly replaced with your actual environment settings.
This anonymized version is provided for educational and reference purposes. Ensure compliance with PCI DSS requirements when handling credit card data in production environments.