ವರ್ಡ್ಪ್ರೆಸ್ ಪ್ಲಗಿನ್ ಲೈಸೆನ್ಸಿಂಗ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ಹೇಗೆ ನಿರ್ಮಿಸುವುದು
ವಾಣಿಜ್ಯ ವರ್ಡ್ಪ್ರೆಸ್ ಪ್ಲಗಿನ್ ಮಾರಾಟ ಮಾಡಲು ಲೈಸೆನ್ಸಿಂಗ್ ಸಿಸ್ಟಮ್ ಅಗತ್ಯವಿದೆ.
ನೀವು ಗ್ರಾಹಕರ ಸೈಟ್ಗಳಲ್ಲಿ ಕೀಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬೇಕಾಗುತ್ತದೆ. ಕೀಗಳನ್ನು ನಿರ್ದಿಷ್ಟ ಡೊಮೇನ್ಗಳಿಗೆ ಸೀಮಿತಗೊಳಿಸಬೇಕಾಗುತ್ತದೆ. ಬಳಕೆದಾರರು ಒಂದೇ ಕೀಯನ್ನು ಅನೇಕ ಸೈಟ್ಗಳಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳದಂತೆ ನೀವು ತಡೆಯಬೇಕು.
ಹೆಚ್ಚಿನ ಜನರು Freemius ಅಥವಾ EDD ಅನ್ನು ಬಳಸುತ್ತಾರೆ. ಈ ಪರಿಕರಗಳು ಚೆನ್ನಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತವೆ. ಆದಾಗ್ಯೂ, ಅವು ಆದಾಯದ ಒಂದು ಭಾಗವನ್ನು ಪಡೆಯುತ್ತವೆ. ಅವು ಮೂರನೇ ವ್ಯಕ್ತಿಯ (third-party) ಅವಲಂಬನೆಗಳಾಗಿವೆ. ಈ ಪ್ರಕ್ರಿಯೆಯ ಮೇಲೆ ನಿಮಗೆ ಸಂಪೂರ್ಣ ನಿಯಂತ್ರಣ ಇರುವುದಿಲ್ಲ.
ನಾವು RideCab WP ಗಾಗಿ ನಮ್ಮದೇ ಆದ ಸಿಸ್ಟಮ್ ಅನ್ನು ನಿರ್ಮಿಸಿದ್ದೇವೆ. ಅಂದರೆ ಶೂನ್ಯದಿಂದ (from scratch) ಕಸ್ಟಮ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ಹೇಗೆ ನಿರ್ಮಿಸುವುದು ಎಂಬುದು ಇಲ್ಲಿದೆ.
ಈ ಸಿಸ್ಟಮ್ ಎರಡು ಭಾಗಗಳನ್ನು ಹೊಂದಿದೆ.
ಲೈಸೆನ್ಸ್ ಸರ್ವರ್ (The License Server) ಇದು ನಿಮ್ಮ ಸ್ವಂತ ಮೂಲಸೌಕರ್ಯದಲ್ಲಿ (infrastructure) ಚಲಿಸುತ್ತದೆ. ನಿಮ್ಮ ಮಾರ್ಕೆಟಿಂಗ್ ಸೈಟ್ನಲ್ಲಿ ವರ್ಡ್ಪ್ರೆಸ್ must-use ಪ್ಲಗಿನ್ ಬಳಸಿ. ಇದು ಡೇಟಾಬೇಸ್ನಲ್ಲಿ ಕೀಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ (activation) ಮತ್ತು ವ್ಯಾಲಿಡೇಶನ್ಗಾಗಿ ಇದು REST API ಅನ್ನು ಬಳಸುತ್ತದೆ. ಕೀಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಇದು ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ.
ಕ್ಲೈಂಟ್ (The Client) ಇದು ನಿಮ್ಮ ವಾಣಿಜ್ಯ ಪ್ಲಗಿನ್ನ ಒಳಗಿರುವ ಒಂದು PHP class ಆಗಿದೆ. ಇದು ಸೆಟ್ಟಿಂಗ್ಸ್ ಪೇಜ್ ಅನ್ನು ಸೇರಿಸುತ್ತದೆ. ಸಕ್ರಿಯಗೊಳಿಸಲು ಇದು ನಿಮ್ಮ ಸರ್ವರ್ ಅನ್ನು ಕರೆಯುತ್ತದೆ. ಇದು ವ್ಯಾಲಿಡೇಶನ್ ಫಲಿತಾಂಶಗಳನ್ನು ಕ್ಯಾಶ್ (cache) ಮಾಡುತ್ತದೆ. ಇದು ಹಿನ್ನೆಲೆಯಲ್ಲಿ (background) ಮರು-ವ್ಯಾಲಿಡೇಟ್ ಮಾಡುತ್ತದೆ.
ಪ್ರಮುಖ ಅವಶ್ಯಕತೆಗಳು:
- ಖರೀದಿಯ ಸಮಯದಲ್ಲಿ ವಿಶಿಷ್ಟ ಕೀಗಳನ್ನು ರಚಿಸುವುದು.
- ಗ್ರಾಹಕರು ಕೀಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ಅನುಮತಿಸುವುದು.
- ಕೀಗಳನ್ನು ನಿರ್ದಿಷ್ಟ ಡೊಮೇನ್ಗಳಿಗೆ ಕಟ್ಟುಹಾಕುವುದು.
- ಕಾಲಕಾಲಕ್ಕೆ ಕೀಗಳನ್ನು ವ್ಯಾಲಿಡೇಟ್ ಮಾಡುವುದು.
- ಗ್ರಾಹಕರು ಸೈಟ್ಗಳನ್ನು ಬದಲಾಯಿಸಿದಾಗ ಡೀ-ಆಕ್ಟಿವೇಷನ್ಗಳನ್ನು ನಿರ್ವಹಿಸುವುದು.
- ನಿಮ್ಮ ಸರ್ವರ್ ಸ್ಥಗಿತಗೊಂಡರೆ ಸುಗಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದು (Fail gracefully).
ಅತ್ಯಂತ ಪ್ರಮುಖ ನಿಯಮವೆಂದರೆ 'fail open' ಆಗಿರುವುದು.
ನಿಮ್ಮ ಲೈಸೆನ್ಸ್ ಸರ್ವರ್ ಸ್ಥಗಿತಗೊಂಡಿದ್ದರೆ, ಗ್ರಾಹಕರನ್ನು ಹೊರಹಾಕಬೇಡಿ (lock out). ನೀವು 'fail closed' ಆಗಿದ್ದರೆ, ಗ್ರಾಹಕರಿಗೆ ಸೈಟ್ ಕೆಟ್ಟುಹೋದಂತೆ ಕಾಣುತ್ತದೆ. ಇದು ನಿಮ್ಮ ಪ್ರತಿಷ್ಠೆಯನ್ನು ಹಾಳುಮಾಡುತ್ತದೆ. ನೀವು 'fail open' ಆಗಿದ್ದರೆ, ಪ್ಲಗಿನ್ ಕೆಲಸ ಮಾಡುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತದೆ. ಕೆಲವು ಪೈರೇಟ್ಗಳು ಇದನ್ನು ಉಚಿತವಾಗಿ ಬಳಸಬಹುದು, ಆದರೆ ನಿಮ್ಮ ಹಣ ಪಾವತಿಸುವ ಗ್ರಾಹಕರು ಸಂತೋಷವಾಗಿರುತ್ತಾರೆ.
ಉತ್ತಮ ಪದ್ಧತಿಗಳು:
- ಎಲ್ಲಾ API ಕರೆಗಳಿಗಾಗಿ HTTPS ಬಳಸಿ.
- ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಉಳಿಸಲು ವ್ಯಾಲಿಡೇಶನ್ ಫಲಿತಾಂಶಗಳನ್ನು ಕ್ಯಾಶ್ ಮಾಡಿ.
- ಸುರಕ್ಷಿತ ಕೀಗಳಿಗಾಗಿ
random_bytes()ಬಳಸಿ.rand()ಬಳಸಬೇಡಿ. - ಗ್ರಾಹಕರು ಸ್ವತಃ ಕೀಗಳನ್ನು ಡೀ-ಆಕ್ಟಿವೇಟ್ ಮಾಡಲು ದಾರಿ ನೀಡಿ.
- ಸ್ಟೇಜಿಂಗ್ ಅಥವಾ ಡೆವ್ (dev) ಡೊಮೇನ್ಗಳಿಗೆ ಅವಕಾಶ ನೀಡಿ.
ಈ ಸೆಟಪ್ ಲೈಸೆನ್ಸಿಂಗ್ನ ಮೂಲಭೂತ ಅಂಶಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ಇದು ಅಪ್ಡೇಟ್ ವಿತರಣೆಯನ್ನು (update delivery) ಒಳಗೊಂಡಿಲ್ಲ. ನಾನು ಅದನ್ನು ಮುಂದಿನ ಪೋಸ್ಟ್ನಲ್ಲಿ ವಿವರಿಸುತ್ತೇನೆ.