guyroch Posted October 5, 2015 Share Posted October 5, 2015 In 3.4 I would create a trial.php with the following and it would generate my custom key... <?php class licenseKey_trial { public static function generate( $member, $purchase ) { return 'some-trial-key-here'.rand(1,100); } } When I do the same in 4.0 I get an error. Initially I was getting a file/class not found but then I noticed the capital letters in 4.0 and added them. Now I no longer get a file/class not found but instead I get error ex256 on checkout. <?php class LicenseKey_Trial { public static function generate( $member, $purchase ) { return 'some-trial-key-here'.rand(1,100); } } Where can I get the new documentation for generating custom license keys in 4.0? Thank you Guylain Link to comment Share on other sites More sharing options...
Stuart Silvester Posted October 5, 2015 Share Posted October 5, 2015 Hi, There's a few more changes involved, here's a similar basic license key generation file. <?php namespace IPS\nexus\Purchase\LicenseKey; /* To prevent PHP errors (extending class does not exist) revealing path */ if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) ) { header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' ); exit; } /** * License Key Model - MD5 */ class _Mdfive extends \IPS\nexus\Purchase\LicenseKey { /** * Generates a License Key * * @return string */ public function generate() { return md5( uniqid() ); } } Remember, classes in IPS4 should start with an underscore Link to comment Share on other sites More sharing options...
guyroch Posted October 5, 2015 Author Share Posted October 5, 2015 Awesome Stuart, I'll give that a try. Thanks Link to comment Share on other sites More sharing options...
guyroch Posted October 5, 2015 Author Share Posted October 5, 2015 Well I got further, the key was generated, woohoo! However, I can not pass $member and $purchase as parameters, otherwise the call errors out still. I need both these arrays to generate the license key. What are the parameters in 4? public static function generate( $member, $purchase ){ } Link to comment Share on other sites More sharing options...
Stuart Silvester Posted October 5, 2015 Share Posted October 5, 2015 Hi, You can fetch the purchase/member data inside the method /* \IPS\nexus\Purchase object */ $purchase = $this->purchase; /* \IPS\Member object */ $member = $this->purchase->member; Note that both of these will be objects, not arrays. Link to comment Share on other sites More sharing options...
guyroch Posted October 5, 2015 Author Share Posted October 5, 2015 A++ Link to comment Share on other sites More sharing options...
不中用 Posted January 4, 2016 Share Posted January 4, 2016 On 10/5/2015 at 8:08 PM, Stuart Silvester said: Hi, There's a few more changes involved, here's a similar basic license key generation file. <?php namespace IPS\nexus\Purchase\LicenseKey; /* To prevent PHP errors (extending class does not exist) revealing path */ if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) ) { header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' ); exit; } /** * License Key Model - MD5 */ class _Mdfive extends \IPS\nexus\Purchase\LicenseKey { /** * Generates a License Key * * @return string */ public function generate() { return md5( uniqid() ); } } Remember, classes in IPS4 should start with an underscore . Hi, I'm fighting this LicenseKey too .. but my problem is in the naming file/class .. I've copied the file " Mdfive.php " to " test.php " .. renamed the class name " _Mdfive " to " _test " .. on the product page, " store and purchase settings " .. " License Key " .. in the list it shows : " lkey_test " " lkey_test " is a name that I didn't use/set anywhere .. anyway, I select that and try to change a customers product license key and it gives me a blank screen .. MD5 & Standard works flawlessly .. If I change the code in the file Mdfive.php (what I need) then it works also .. So .. how I make " test.php " work ? ( it is in the right folder, same permissions as Mdfive.php & Standard.php ) . Link to comment Share on other sites More sharing options...
Nathan Explosion Posted January 4, 2016 Share Posted January 4, 2016 Long shot.... Mdfive.php Standard.php test.php Link to comment Share on other sites More sharing options...
不中用 Posted January 4, 2016 Share Posted January 4, 2016 5 minutes ago, Nathan Explosion said: Long shot.... Mdfive.php Standard.php test.php . YES!! That's it .. but also .. what I had before INkey.php .. didn't work with IN .. does work with In .. Thank you! . Link to comment Share on other sites More sharing options...
EmpireKicking Posted January 4, 2016 Share Posted January 4, 2016 3 minutes ago, IN10TION said: . YES!! That's it .. but also .. what I had before INkey.php .. didn't work with IN .. does work with In .. Thank you! . it's completely new codes then 3x however it has a mind of its own Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.