数据库中的贝宝付款商店详细信息

Posted

技术标签:

【中文标题】数据库中的贝宝付款商店详细信息【英文标题】:Paypal Payment Store Details in Database 【发布时间】:2013-08-11 12:56:06 【问题描述】:

我创建了一个“立即付款”paypal 按钮,用户可以单击它来预订艺术家。他们需要填写很多详细信息(艺术家姓名、活动日期、活动地点等),然后最后一个选择是付费。

以下是正常的贝宝表格。我还使用了我数据库中的一些变量(艺术家的姓名和姓氏、预算、身份证等)

index.php

$url='https://www.sandbox.paypal.com/cgi-bin/webscr'; ?>
$email='my-email@gmail.com';
<form enctype="multipart/form-data" action='<?php echo $url; ?>' method='post'>
<input type='hidden' name='business' value='<?php echo $email; ?>'>
<input type='hidden' name='cmd' value='_xclick'>
<input type='hidden' name='item_name' value='<?php echo $name . " " . $surname;?>'>
<input type='hidden' name='item_number' value='<?php echo $artist_id;?>'>
<input type='hidden' name='amount' value='<?php echo $price;?>'>
<input type='hidden' name='buyer_name' value='<?php echo $b_name; ?>'>
<input type='hidden' name='buyer_phone' value='<?php echo $phone; ?>'>

<input type='hidden' name='no_shipping' value='1'>
<input type='hidden' name='currency_code' value='EUR'>
<input type='hidden' name='handling' value='0'>
<input type='hidden' name='cancel_return' value='http://mywebsite.com/fail.php'>
<input type='hidden' name='return' value='http://mywebsite.com/success.php'>

<input type="image" src="https://www.sandbox.paypal.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" >

当用户点击按钮时,它会转到显示产品详细信息等的贝宝网站。如果支付成功,它会将用户发送到 success.php 脚本,在那里它应该获取数据(cmd、item_name、item_number , 金额等) 来自 index.php 中的表单

成功.php

<?php
    $artist_id = $_POST['item_number'];
    $buyer_name = $_POST['buyer_name'];
    $buyer_phone = $_POST['buyer_phone'];
    $item_transaction = $_POST['tx'];
    $item_price = $_POST['amt'];

    echo "Name: $item_no , Surname: $buyer_name, Price: $buyer_phone, ID: $item_transaction  $item_price<br/>";

    //retrieve artist's details
    $getArtist = mysql_query("SELECT * FROM artist WHERE artist_id = '$item_no'");
    $details = mysql_fetch_array($getArtist);
    $name = $details['artist_name']; $surname = $details['artist_surname']; $price = $details['artist_budget']; $artist_id = $details['artist_id'];

    //$result = mysql_query("INSERT INTO booked_event (pid, buyer_name, buyer_phone, saledate, transactionid) VALUES('$singer_no', '$buyer_name', '$buyer_phone','$event_date','$item_transaction')");
    //if($result)
    //    echo "<p style='text-align: center;'><img src='images/success.png'><br/><br/>";
    //    echo "We will contact you as soon as possible for further details! Please check your email<br/>";
    //    echo "<a href='book.php'><b>Go Back</b></a></p><br/>";

    //else
    //    echo "Payment Error";
    //
        echo "Name: $name , Surname: $surname, Price: $price, ID: $artist_id";
    
    else
    
    echo "Payment Failed";
    
?>

问题是,当有人预订艺术家时,我没有获取任何详细信息以便将它们存储在数据库中。 我试图回显详细信息,但它什么也没打印(请参阅 echo "Name: $item_no , Surname: $buyer_name, Price: $buyer_phone, ID: $item_transaction $item_price)。

有人知道为什么吗?我做错了吗?

【问题讨论】:

【参考方案1】:

一旦用户完成了贝宝结帐,贝宝就不会从您那里的表单中回传所有数据。

看看 paypal IPN,一旦付款完成,它会将一大堆交易数据发布到您选择的网站页面上。它包含一个“自定义”变量,您可以将自己的数据发回。

【讨论】:

以上是关于数据库中的贝宝付款商店详细信息的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的贝宝 api 调用失败并出现错误版本不支持?

Paypal Payments - 从他们那里存储啥?

获取 paypal ruccuring 付款详情

缺少贝宝付款操作

在 Laravel 中获取贝宝付款详细信息时出现 403 错误

定期付款到已经运行的贝宝脚本