{"id":41870829,"url":"https://github.com/asmsaiff/tutor-bkash","last_synced_at":"2026-01-25T12:08:01.347Z","repository":{"id":321947755,"uuid":"1087568380","full_name":"asmsaiff/tutor-bkash","owner":"asmsaiff","description":"Enable bKash payments in Tutor LMS for one-time or subscription courses using Tokenized Checkout for a secure, seamless payment experience.","archived":false,"fork":false,"pushed_at":"2026-01-19T05:42:09.000Z","size":92,"stargazers_count":4,"open_issues_count":0,"forks_count":3,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-01-19T13:48:15.268Z","etag":null,"topics":["bkash","payment-gateway","plugin-development","tutor-lms","wordpress"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/asmsaiff.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-01T07:09:55.000Z","updated_at":"2026-01-19T05:42:13.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/asmsaiff/tutor-bkash","commit_stats":null,"previous_names":["asmsaiff/tutor-bkash"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/asmsaiff/tutor-bkash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asmsaiff%2Ftutor-bkash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asmsaiff%2Ftutor-bkash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asmsaiff%2Ftutor-bkash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asmsaiff%2Ftutor-bkash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asmsaiff","download_url":"https://codeload.github.com/asmsaiff/tutor-bkash/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asmsaiff%2Ftutor-bkash/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28752681,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T10:25:12.305Z","status":"ssl_error","status_checked_at":"2026-01-25T10:25:11.933Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bkash","payment-gateway","plugin-development","tutor-lms","wordpress"],"created_at":"2026-01-25T12:08:00.749Z","updated_at":"2026-01-25T12:08:01.328Z","avatar_url":"https://github.com/asmsaiff.png","language":"PHP","readme":"# FinersPay - bKash Payment Gateway for Tutor LMS\n\nEnable fast and secure bKash payments for Tutor LMS \u0026 let students pay instantly using bKash.\n\n## Features\n\n✅ One-time and subscription (manual) payments for course purchases\\\n✅ Tokenized Checkout for secure payment processing\\\n✅ Sandbox and Live environment support\\\n✅ IPN (Instant Payment Notification) integration\\\n✅ Secure payment processing with transaction verification\\\n✅ WordPress HTTP API for secure external communications\\\n✅ Internationalization (i18n) support for translations\n\n## Requirements\n\n- WordPress 5.3 or higher\n- PHP 7.4 or higher\n- Tutor LMS (Free version)\n- bKash merchant account\n\n## Installation\n\n1. Upload the plugin folder to `/wp-content/plugins`\n2. Activate the plugin through WordPress admin\n3. Ensure Tutor LMS is activated\n4. Configure settings in Tutor LMS \u003e Settings \u003e Payments\n\n## Configuration\n\n### Step 1: Get bKash Credentials\n\n**For Sandbox (Testing):**\n1. Register at bKash merchant portal\n2. Apply for SandBox credentials by contacting bKash\n3. Receive username, password, app_key, and app_secret\n\n**For Live (Production):**\n1. Apply for live/production API username, password, app_key, and app_secret\n2. Complete necessary verification (follow your bKash Key Account Manager's (KAM) instructions)\n3. Get credentials from bKash\n\n### Step 2: Configure Plugin\n\n1. Go to **Tutor LMS \u003e Settings \u003e Payments**\n2. Find **bKash** in the payment gateways list\n3. Click to enable and configure:\n   - **Environment**: Select `Sandbox` for testing or `Live` for production\n   - **Username**: Enter your bKash merchant username\n   - **Password**: Enter your merchant password\n   - **App Key**: Enter your bKash App Key\n   - **App Secret**: Enter your bKash App Secret\n   - **Webhook URL**: Copy this URL\n\n### Step 3: Configure bKash Merchant Panel\n\n1. Login to your bKash merchant portal\n2. Go to Webhook Settings\n3. Add the webhook URL from step 2\n4. Save settings\n\n## Testing\n\n### Using Sandbox Environment\n\n1. Set environment to \"Sandbox\"\n2. Use sandbox credentials provided by bKash\n3. Test with bKash mobile app\n\n### Test Transaction Flow\n\n1. Create a test course in your LMS\n2. Set a price for the course\n3. Add course to cart and proceed to checkout\n4. Select bKash as payment method\n5. Complete payment on bKash page\n6. Verify order status in Tutor LMS\n\n## How It Works\n\n### Payment Flow\n\n```\nStudent clicks \"Purchase\"\n    ↓\nPlugin authenticates with bKash and creates payment\n    ↓\nStudent redirected to bKash payment page\n    ↓\nStudent completes payment\n    ↓\nbKash sends webhook notification to your site\n    ↓\nPlugin validates transaction with bKash API\n    ↓\nOrder status updated (Success/Failed/Cancelled)\n    ↓\nStudent gets access to course (if successful)\n```\n\n### Security Features\n\n1. **Token Authentication**: Uses grant token for secure API access\n2. **Transaction Validation**: Double-checks payment status with bKash API\n3. **Amount Verification**: Ensures paid amount matches order amount\n4. **SSL Communication**: All API calls use HTTPS\n\n## Supported APIs\n\nbKash Tokenized Checkout API v1.2.0-beta\n\n**Live Environment:**\n```\nTokenized Pay v1.2.0-beta\n```\n\n**Sandbox Environment:**\n```\nTokenized Sandbox v2\n```\n\nPlease verify that you are using the correct API version before going live.\n\n### API Endpoints\n\n- **Token Grant**: `/tokenized/checkout/token/grant`\n- **Payment Create**: `/tokenized/checkout/payment/create`\n- **Payment Execute**: `/tokenized/checkout/payment/execute`\n- **Payment Query**: `/tokenized/checkout/payment/query`\n\n## File Structure\n\n```\nfinerspay/\n├── finerspay.php           # Main plugin file (entry point with plugin headers)\n├── composer.json             # Composer autoload configuration\n├── composer.lock             # Composer dependency lock file\n├── README.md                 # GitHub/Documentation readme\n├── readme.txt                # WordPress.org-style readme\n│\n├── assets/                   # Static assets (images, CSS, JS)\n│   └── bkash-logo.png        # bKash payment gateway logo\n│\n├── integration/              # Integration layer with Tutor LMS\n│   ├── Init.php              # Handles plugin hooks and initialization\n│   ├── BkashConfig.php       # Configuration (API keys, credentials, environment)\n│   ├── BkashGateway.php      # Registers bKash as a Tutor LMS payment gateway\n│   ├── ExecutePayment.php    # Handles payment execution via API\n│   └── RewriteRules.php      # Custom URL rewrite rules for API callbacks\n│\n├── languages/                # Localization files\n│   └── finerspay.pot       # Base translation template file\n│\n├── payments/                 # Core payment logic\n│   └── Bkash.php             # Handles payment creation, validation, and processing\n│\n└── vendor/                   # Composer dependencies (autoloaded libraries)\n```\n\n## Internationalization (i18n)\n\nThis plugin supports internationalization and is translation-ready. All user-facing strings are wrapped with WordPress translation functions.\n\n### For Translators\n\n1. Use the `languages/finerspay.pot` file as a template\n2. Create language-specific `.po` files using tools like Poedit or Loco Translate\n3. Compile `.mo` files and place them in the `languages/` directory\n4. File naming: `finerspay-{locale}.mo` (e.g., `finerspay-bn_BD.mo` for Bengali)\n\n### Text Domain\n\n- **Text Domain:** `finerspay`\n- **Domain Path:** `/languages/`\n\n### Available Languages\n\nCurrently available in:\n- English (default)\n\nContributions for additional language translations are welcome!\n\n## Troubleshooting\n\n### Payment Not Processing\n\n1. **Check Credentials**: Ensure Username, Password, App Key, and App Secret are correct\n2. **Environment Mismatch**: Sandbox credentials won't work in Live mode\n3. **Webhook URL**: Verify webhook URL is correctly configured in bKash panel\n4. **SSL Certificate**: Ensure your site has valid SSL certificate\n\n### Transaction Validation Failed\n\n1. Check if webhook URL is accessible (not blocked by firewall)\n2. Copy the webhook URL and test it using your browser’s network tab or an API client (like Postman). Make sure the HTTP response status is 200 (OK) — that means it’s working correctly.\n3. Verify webhook_url in plugin settings\n4. Enable debug logging in WordPress (WP_DEBUG)\n5. Check error/debug logs for detailed messages\n\n### Order Status Not Updating\n\n1. Verify webhook is configured correctly\n2. Check if order ID is being passed correctly\n3. Ensure authentication tokens are working\n4. Check webhook response in browser console\n\n## Known Limitations\n\n1. **Wrong Timezone**: Check your website timezone from Settings \u003e General \u003e Timezone and choose either a city in the same timezone as you or a UTC (Coordinated Universal Time) time offset.\n2. **Currency Support**: Currently supports BDT (Bangladeshi Taka) only\n3. **Refunds**: Manual refund processing through bKash merchant panel required\n\n## Support\n\nFor issues related to:\n- **Plugin functionality**: Contact [plugin developer](mailto:asmsaif15@gmail.com)\n- **bKash API**: Contact [support@bkash.com](mailto:support@bkash.com) or [developer@bkash.com](mailto:developer@bkash.com)\n- **Tutor LMS**: Contact [Themeum support](https://tutorlms.com/support)\n\n## License\n\nThis plugin is licensed under GPLv2 or later.\n\n## Credits\n\n- Developed by S. Saif\n- bKash Tokenized API integration\n- Based on [Tutor LMS Custom Payment Gateway Framework](https://docs.themeum.com/tutor-lms/developer-documentation/custom-payment-gateways)\n\n## Disclaimer\n\nThis plugin is **not affiliated with, maintained, endorsed, or sponsored** by Themeum, Tutor LMS, or bKash.\n\n- \"Tutor\" and \"Tutor LMS\" are trademarks of Themeum.\n- \"bKash\" is a trademark of bKash Limited.\n\nThese names are used solely to indicate compatibility.\nThe plugin is developed and maintained independently by the open-source community.\n\n## Additional Resources\n\n- [bKash Documentation](https://developer.bka.sh)\n- [Tutor LMS Documentation](https://docs.themeum.com/tutor-lms)\n- [bKash Merchant Portal](https://merchantportal.bkash.com)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasmsaiff%2Ftutor-bkash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasmsaiff%2Ftutor-bkash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasmsaiff%2Ftutor-bkash/lists"}