Php 贝宝:我可以返回收据号或订单号返回到";return";网址?
我想能够启动一个支付成功页面后,我的应用程序贝宝交易。作为这项工作的一部分,我想在屏幕上显示一个收据号码,供用户参考(并存储在数据库中) 目前,我的代码如下所示:Php 贝宝:我可以返回收据号或订单号返回到";return";网址?,php,html,paypal,Php,Html,Paypal,我想能够启动一个支付成功页面后,我的应用程序贝宝交易。作为这项工作的一部分,我想在屏幕上显示一个收据号码,供用户参考(并存储在数据库中) 目前,我的代码如下所示: "alert(<?php echo $_GET['receipt_no'] ?>)" 表格 insidesuccess.php <script> alert(/*receipt no*/); </script> 警报(/*收货编号*/); 目前,其目的只是提醒收据编号。我希望可以将
"alert(<?php echo $_GET['receipt_no'] ?>)"
表格
insidesuccess.php
<script>
alert(/*receipt no*/);
</script>
警报(/*收货编号*/);
目前,其目的只是提醒收据编号。我希望可以将其更改为以下内容:
"alert(<?php echo $_GET['receipt_no'] ?>)"
“警报()
有没有办法告诉Paypal,我希望它能给我寄回一个收据号码?它可以通过URL变量访问吗?您可以使用自定义字段
<input type='hidden' name='custom' value='your receiptnumber'>
它将被发回您的返回url..以及您的通知url,您可以访问$\u POST['custom']
你也可以使用
<input type='hidden' name='item_name' value='receipt number'>
<input type='hidden' name='item_number' value='receipt number'>
但这将在paypal网站上显示给用户
您可以使用txn_id跟踪记录,它由paypal返回。将其存储在数据库中
我所做的
我将所有内容存储到数据库中。。以及将其写入文件。
PDT与IPN的对比
PDT
- 1) 返回变量以返回url。为了实现这一点,用户必须单击ReturntoMerchant(或其他内容)返回您的网站。或者,您必须在paypal中将其设置为付款后自动返回您的网站。如果您没有将paypal设置为自动返回,或者用户没有单击“返回商户”,或者如果您的返回url代码中存在任何问题,则您无法知道用户已付款。
- 2) 而且这些变量不可能来自paypal,因为任何人都可以使用方法post创建一个表单,其中包含所有必需的变量,并将其发送到您的返回url
- 1) 返回变量以通知url。在后台工作,发送变量后,paypal将等待200 ok消息(即它将检查您是否已成功接收变量),如果没有,它将重新发送消息(根据文档)
- 2) 为了安全--您应该将ipn返回给您的所有变量发送回paypal。贝宝将检查它是否发送。如果变量由paypal发送,则paypal将发送验证消息。因此,您可以确定这些变量实际上是由paypal发送的
有关详细信息,请在这样的会话中存储收据编号
<?php
session_start();
$receipt_no=$_GET['receipt_no'];
$_SESSION["receipt_session"]=$receipt_no
?>
你可以在付款时使用这个值,正如v Sugumar指出的,你可以这样做。问题是你是否应该这样做。您最好在自己端生成收据号码,在将用户发送到PayPal之前或之后,并将其存储在数据库或会话变量中 从代码标准的角度来看,使用Javascript警报显示收据编号(而且使用PHP编写Javascript变量)也有点“恶心”。为什么不用PHP生成一个正确的收据,并在success.PHP页面上显示它呢 正如NavalDabral提到的,在$\u会话中存储数据很简单。但是,您需要做一些更类似的事情(因为您不会使用PayPal的GET变量):
用户付费并返回success.php
<?php
session_start();
echo "Thank you for your order. Your Receipt number is " . $_SESSION['receipt'];
?>
它还可以防止有人猜测收据号码并访问用户的销售详细信息,因为收据将存储在一个安全的PHP会话中,而不是一个不安全且可猜测的GET变量。这是paypal生成的收据号码还是我自己定义的?或者我可以生成paypal将存储在其记录中的收据号码吗?自定义字段是您发送给paypal的内容,它将按原样返回。。它不是由贝宝生成的。。您需要创建并发送它paypal..@Notaras您可以使用txn_id跟踪记录,它由paypal返回。把它储存在你的数据库里,因为我不能在评论中解释,我更新了我的帖子。请看编辑不要介意提醒回声的事情。这将在以后被替换。自行生成收据号码的问题在于,它与Paypal生成的收据号码没有关系。如果将来需要用Paypal的记录中的交易来控制我数据库中记录的交易,那就不可能了。从昨天开始,我深入研究了一下,发现Paypal的“PDT”有正确的东西,我正在寻找“PDT”是有问题的ipn是最好的,你可能还想进一步调查Stripe;-)。这就是我几年前做的,就像从持续性偏头痛中恢复过来一样。感谢这只是一个简单的观点,不是严格意义上的相关,但如果你没有考虑过的话,这只是一个想法。向热爱贝宝各种API的开发者致歉。还有。。。据我所知,PayPal将生成自己的收据,而不管您可能传递给它的任何收据号码。你不能替换他们自己的参考系。但无论如何。。。听起来你已经找到了解决方案。@vSugumar PDT有什么问题?