[SOLVED] Key Generation based on user input.

  • Posts: 83
  • Thank you received: 1
11 years 6 months ago #65227

Hi,

At present I'm building an e-commercial portal for a tally based firm. Shopping cart is purely based of pay per download.
Downloads are mainly tally software modules. Each tally software has a unique serial.

Almost all parts of the work is completed except the download part. That depending upon the unique serial, a key has to be generated for each download item. The buyer would require to input the serial number of his tally software during the payment process.

Main objective is that a user should not be able to reuse the tally software module in any other tally software with different serial.

So is there any way out or any alternative method or something to meet the goal?

I've checked so many extensions but couldn't find anything useful.

If anyone has a better idea, please let me know.

Thanks & Regards,
Manjesh.

Last edit: 11 years 4 months ago by manjeshmohan.

Please Log in or Create an account to join the conversation.

  • Posts: 25994
  • Thank you received: 4004
  • MODERATOR
11 years 6 months ago #65240

Hi,

HikaSerial is a serial generator which could automatically generate serials when a customer buy a product or which could manually populate his database with serials.
HikaSerial have some web services access, so it is possible that a computer software would check if a serial exists and read his status (assigned, used, etc).
There is a "consume" feature too. The user could enter a serial and if the serial is valid, some plugins would be trigger and could make different processes.

After that, I have some trouble to understand your workflow.
HikaShop have a "pay per download" feature, you can attach files to a product which only be downloadable if the customer have bought it (with a download limitation).

So I think that it could be possible to find a solution for your request even if I don't understand all for the moment.

Regards,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.
The following user(s) said Thank You: manjeshmohan

Please Log in or Create an account to join the conversation.

  • Posts: 25994
  • Thank you received: 4004
  • MODERATOR
11 years 6 months ago #65244

Nicolas forward me you message from the contact form.

We have several serial generator and it is possible to implement some specific one (the Random Generator is a good base).
When the generator is called, HikaSerial gives a lot of parameters to the function.
In these parameters, there is a complete order object. In this object it is possible to read order custom fields or item custom fields.

So yes, the Generator could base his serial generation- on a HikaShop custom field, on a customer entered value.

Best regards,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.
The following user(s) said Thank You: manjeshmohan

Please Log in or Create an account to join the conversation.

  • Posts: 83
  • Thank you received: 1
11 years 6 months ago #65245

Really thankful for the speedy response.

My Objective is to sell Tally software modules in our website which is used on Tally software, so the only unique parameter to check the Tally software is the unique 9 digit serial of it.

So the Tally software module is developed in such a way that when a user installs the module in his Tally software it asks for a key. The key is generated using a logic with the unique Tally software 9 digit serial in the Taly software module. The serial of the Tally software is retrieved in the Tally software module as the backend process and tally software module waits for the user to enter the key.

In the same way we need to implement it in the web by asking the user's Tally software serial. And with this serial plus the same logic (done in the Tally software module) we need to generate the key the same way and send the unique key to the user.

So both of the logics done in the Tally software module and in the web matches up. Thus meeting our goal perfectly.

Hope now you got some idea about the workflow.

I'm really stuck with the last part which is even the most important part of this web project.

Please Log in or Create an account to join the conversation.

  • Posts: 83
  • Thank you received: 1
11 years 6 months ago #65246

I've just briefly explained the workflow, so is it possible to meet the goal with HikaShop starter and HikaSerial?

Please Log in or Create an account to join the conversation.

  • Posts: 83
  • Thank you received: 1
11 years 6 months ago #65249

Hi Jerome,

Could you please explain the process to achieve the following thing said by you:?

"the Generator could base his serial generation- on a HikaShop custom field, on a customer entered value."

Thanks,
Manjesh

Please Log in or Create an account to join the conversation.

  • Posts: 25994
  • Thank you received: 4004
  • MODERATOR
11 years 6 months ago #65253

Hi Manjesh,

The Developer Documentation explain the base of the generate function.
www.hikashop.com/en/hikashop/125-hikaser...er.html#fct_generate
So it is possible to implement your serial logic in a custom plugin generator.

First, you would have to create an order custom field (visible in the front-end and required).
www.hikashop.com/en/support/documentatio...p-field-listing.html

During the checkout, the customer would have to enter a value in this custom field.
When the order would be confirmed, HikaSerial would generate the serials, and could access to the custom field value.
Like "$order->software_serial" if your custom field is "software_serial".

Order custom fields are available in commercial versions of HikaShop.
In HikaShop starter you can only create custom fields for the addresses.

You're welcome !


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.
The following user(s) said Thank You: manjeshmohan

Please Log in or Create an account to join the conversation.

  • Posts: 83
  • Thank you received: 1
11 years 6 months ago #65958

Thank you for the prompt reply and for the bet support.

I've gone through the reference documentation and I've created a logic according to my requirement.

Now my problem is that can I check whether the same works with Hikashop and HikaSerial before buying the same?

Please Log in or Create an account to join the conversation.

  • Posts: 25994
  • Thank you received: 4004
  • MODERATOR
11 years 6 months ago #66004

Hi,

We have a 30-day money-back guarantee.

Regards,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 83
  • Thank you received: 1
11 years 5 months ago #68215

I've bought your product HikaShop Business edition with HikaSerial.

I'm just stuck with some point. I'm just explaining what I've done.

I've created a custom field for tally serial, please find the attached screenshot.

Here I couldn't restrict the field type into numeric only and with a min and max value of 9 digits.

Attachments:

Please Log in or Create an account to join the conversation.

  • Posts: 25994
  • Thank you received: 4004
  • MODERATOR
11 years 5 months ago #68237

Hi,

The simple solution is to edit the HikaShop view "checkout custom_fields"
www.hikashop.com/en/support/documentatio...ashop-view-form.html

Replace the portion of code:

$onWhat='onchange'; if($oneExtraField->field_type=='radio') $onWhat='onclick';
echo $this->fieldsClass->display($oneExtraField,$this->$type->$fieldName,'data['.$type.']['.$fieldName.']',false,' '.$onWhat.'="hikashopToggleFields(this.value,\''.$fieldName.'\',\''.$type.'\',0);"');
By:
$onWhat='onchange="';
if($oneExtraField->field_type=='radio')
	$onWhat='onclick="';
if($fieldName == 'tallyserial') { // Only on your specific custom field
	$msg = 'Please enter a valid serial'; // Your warning message
	$msg = str_replace("'", "\\'", str_replace("\\", "\\\\", $msg)); // Secure the warning message for javascript serialization
	$onWhat = 'onchange="if(this.value.length > 0 && !(/^[0-9]{9}$/.test(this.value))){this.value=\'\';alert(\''.$msg.'\')};'; // Your javascript check (only 9 digits)
}
echo $this->fieldsClass->display($oneExtraField,$this->$type->$fieldName,'data['.$type.']['.$fieldName.']',false,' '.$onWhat.'hikashopToggleFields(this.value,\''.$fieldName.'\',\''.$type.'\',0);"');
Regards,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 83
  • Thank you received: 1
11 years 5 months ago #68373

Thanks for the reply.

I'm bit confused with the generate function which you have mentioned in the earlier post.

as far as to my understanding,

I do not need to pre generate the serial, it should be in a real time based generation which means according to the user's input during the checkout, the input is being concatenated with a key which is need to be configured in the plugin.
So for each product download a unique pack has to be assigned.

Say for example,

there are 3 products to download (X, Y and Z)

when a user buy X product, his tally serial number is asked during the checkout and based on it and the key pre configured in the backend, logic should work out and produce a serial number which should be sent to the user who buys the same.

please correct me if I'm wrong.

I've also tried testing the default series generator plugin. But as an end user, I did not receive the serial through mail or in the user control panel.

Please explain the working process of HikaSerial as I'm kind of cloudy while looking at the huge configurations of Hikashop.

Please Log in or Create an account to join the conversation.

  • Posts: 25994
  • Thank you received: 4004
  • MODERATOR
11 years 5 months ago #68399

Hi,

Serials are send by email in the confirmation email, when the order is confirmed.
You can manually change the order status in the backend and see the serial attached in the bottom of the order edition page.

HikaSerial generator could work as "populate" plugin (in order to pre-generate serials) or as "dynamic generator" plugin.
Dynamic generators could use "order custom fields" (and "item custom fields") for their generation algorithm.
It would be your algorithm which would produce your serial, with your logic. So if with the same tally serial, the result is the same generated serial. It will be.

Regards,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.
The following user(s) said Thank You: manjeshmohan

Please Log in or Create an account to join the conversation.

  • Posts: 83
  • Thank you received: 1
11 years 5 months ago #68403

I've received 2 mails; one order created mail and other order successful mail.

In both mails I did not find any serial.

I've assigned the seriesgen pack into the product but i did not get the serial.

where could be the problem?

Please Log in or Create an account to join the conversation.

  • Posts: 83
  • Thank you received: 1
11 years 5 months ago #68405

regarding the serial generator (dynamic), could you please show a sample code of a general basic algorithem with some logic done with the custom field?

as I'm not a coder, please get me some idea.

Thanks.

Last edit: 11 years 5 months ago by manjeshmohan.

Please Log in or Create an account to join the conversation.

  • Posts: 25994
  • Thank you received: 4004
  • MODERATOR
11 years 5 months ago #68412

Hi,

If you have an order without serials you can use the button "refresh associations".
Please look in the back-end order edition.
demo.hikashop.com/administrator/index.ph...=order&task=edit&cid []=23

HikaSerial add some html content in confirmation order.
But if you don't have any serial attached to your order it wouldn't add anything. So we have to check that there is serials first.

The series plugin had a little mistake in his configuration reading. The plugin is fixed in the latest package (you can re-download HikaShop 1.4.0 and install it, it would just make the update).

About the generator function, you can use our documentation
www.hikashop.com/fr/hikashop/125-hikaser...er.html#fct_generate

If you want a serial which would be the same with same tally serial, you can do something like this:

$serial = strtoupper(md5('mySaltValue' . $order->taillyserial));
You can make a "substr" if you want a tinier serial, add some dashes, etc.
But the important point is to change the "mySaltValue" !

Regards,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 83
  • Thank you received: 1
11 years 5 months ago #68582

I've rechecked everything but I could not figure out where is the problem.

For your reference, I've attached all the necessary pages screenshots. If you require any more pages screenshot, please let me know.

Also in the views page, there are four items in the name of show_email_notification_html; two for the administrator template (frontend and backend) and two for the Site template (frontend and backend).

After the default testing only, I could understand a bit and go ahead put my logic and do the testing.

Attachments:

Please Log in or Create an account to join the conversation.

  • Posts: 25994
  • Thank you received: 4004
  • MODERATOR
11 years 5 months ago #68652

Hi,

I see that your serial have a 'free' status with single quotes before and after the word "free".
This is the source of your problem. I will make some checks and will keep you in touch.

Regards,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 83
  • Thank you received: 1
11 years 5 months ago #68658

When I generated the serials, it came in this way.

Usually how does it create; without quotes?

Please Log in or Create an account to join the conversation.

  • Posts: 25994
  • Thank you received: 4004
  • MODERATOR
11 years 5 months ago #68660

Hi,

I have added more security in the last version of HikaSerial and the generate function in the pack edition added too more quotes.
The new package has been fixed and is available from download.
Please re-download HikaSerial 1.6.0 and update it.

You can delete the old serials and use the button "refresh association" in your order.

Regards,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.
The following user(s) said Thank You: manjeshmohan

Please Log in or Create an account to join the conversation.

Moderators: Obsidev
Time to create page: 0.090 seconds
Powered by Kunena Forum