0

我有一个在线销售礼券的客户-他们目前有一个用于为证书分配数字的软件,因此不能多次使用它们-当有人交出礼券时,他们会在计算机上输入数字,这意味着如果其他人有相同的号码,它将不会被接受。

当他们在商店销售时,这很容易,但现在他们想在线销售*使用 PayPal 作为支付网关)。他们有证书的设计,我只需要能够做到以下几点:

  1. 允许用户通过 PayPal 购买(很简单)
  2. 将用户重定向到下载页面(再次简单)
  3. 这就是它变得困难的地方,我需要每次下载在某个地方都有一个唯一的数字 - 所以当他们打印它时,它上面的数字即不仅仅是文件名。

这在网页上很容易,我可以在每个视图的数字上加一个,但理想情况下这将是 PDF 格式。

我可以使用 100 - 10,000 之间的任何数字(以任何顺序)。

有人知道解决这个问题的最佳方法吗?

4

4 回答 4

0

我不确定我是否明白你的意思.. 但你可以尝试在 php 中使用 time() 函数.. 例如:

$file_name = time() . '_file.pdf'
于 2013-07-25T10:59:58.583 回答
0

我会使用uniqid()

$filename = 'foobar'.uniqid();
echo $filename; //eg: foobar51f1048fcd26b

甚至,rand()

$filename = 'foobar'.rand(1,10000);
echo $filename; //eg: foobar6274
于 2013-07-25T10:56:07.650 回答
0

首先,您至少要添加一个校验位,以阻止人们按顺序猜测下一个数字。所以 $gift_code = $random_number 。check_digit($random_number);

这不是傻瓜,理想情况下,您应该从现有软件中生成一组数字并查看该列表。将其存储在数据库中,并在每次销售后将其标记为已售出。

对于 PDF 部分,使用http://www.fpdf.org/http://www.php.net/manual/en/intro.pdf.php 使用您拥有的礼券图像作为背景PDF 并将礼品卡代码添加为文本。

希望这可以帮助。祝你好运!

于 2013-07-25T11:09:29.220 回答
0

使用 md5,

$unique = md5(uniqid(rand (), true));

于 2013-07-25T12:57:11.627 回答