我有一个在线销售礼券的客户-他们目前有一款软件用于为证书分配号码,因此不能多次使用-当有人交上礼券时,他们会在计算机上输入号码,这意味着如果其他人有相同的号码,就不会被接受。
当他们在商店销售时,这很容易,但现在他们想在网上销售(使用PayPal作为支付网关)。他们有证书的设计,我只需要能够做到以下几点:
- 允许用户通过PayPal购买(很简单)
- 将用户重新引导到下载页面(再次轻松)
- 这就是它变得困难的地方,我需要每次下载都在某个地方有一个唯一的数字——所以当他们打印它时,数字就在上面,而不仅仅是文件名
这在网页上很容易,我可以在每个视图的数字上添加一个,但理想情况下,这将是PDF格式。
我可以使用100到10000之间的任何数字(按任何顺序)。
有人知道最好的办法吗?
首先,您需要至少在顶部添加一个校验位,以阻止人们猜测下一个数字。因此$gift_code=$random_number。check_digit($random_number);
这不是万无一失的,你应该从现有的软件中生成一组数字,然后浏览这个列表。将其存储在数据库中,并在每次销售后将其标记为已售出。
对于PDF部分,请使用http://www.fpdf.org/或http://www.php.net/manual/en/intro.pdf.php使用您拥有的礼券图像作为PDF的背景,并将礼品卡代码添加为文本。
希望这能有所帮助。祝你好运
我会使用uniqid()
:
$filename = 'foobar'.uniqid();
echo $filename; //eg: foobar51f1048fcd26b
甚至,rand()
:
$filename = 'foobar'.rand(1,10000);
echo $filename; //eg: foobar6274
我不确定我是否确切理解你的意思。。但是你可以尝试在php中使用time()函数。。例如:
$file_name = time() . '_file.pdf'
使用md5、
$unique = md5(uniqid(rand (), true));