php - IPN 如何将用户用户名添加到 Paypal 交易 (PHP)

标签 php paypal paypal-ipn

所以我将这个未经测试的代码添加到我的 IPN

if (strcmp ($res, "VERIFIED") == 0) {
    // check whether the payment_status is Completed
    // check that txn_id has not been previously processed
    // check that receiver_email is your PayPal email
    // check that payment_amount/payment_currency are correct
    // process payment and mark item as paid.

    // assign posted variables to local variables
    $item_name = $_POST['item_name'];
    $item_number = $_POST['item_number'];
    $payment_status = $_POST['payment_status'];
    $payment_amount = $_POST['mc_gross'];
    $payment_currency = $_POST['mc_currency'];
    $txn_id = $_POST['txn_id'];
    $receiver_email = $_POST['receiver_email'];
    $payer_email = $_POST['payer_email'];

    include 'connect.php';
    if($payment_status == "completed")
    {
        mysql_query('UPDATE `users` SET `is_member`= 1 WHERE `username` == $username')
    }
    else
    {
       mysql_query('UPDATE `users` SET `is_member`= 0 WHERE `username` == $username')
    }

本质上是根据 payment_status 更改数据。我遇到的问题是 Paypal 不知道用户名是什么。我将如何向 Paypal 提供这些信息?我是通过订阅按钮还是更改 html 代码来完成?

最佳答案

这里有几个选项可以完成您的用户/成员(member)与 IPN 的协调,

  1. 在结帐时将“用户名”/“电子邮件”存储到您的数据库中,并在付款完成后,从 IPN POST-back 中读取 $payer_email 并将数据与您的数据库条目匹配(订单详情)

虽然这需要对您的代码进行最少的更改,但当用户使用不同的电子邮件帐户(PayPal 帐户)付款时,它会无法工作

  1. (推荐)使用“invoice”参数来唯一标识对帐订单。 生成一个唯一的发票 ID,并在结账时将其与用户名/电子邮件一起存储到您的数据库中;将该“发票”标签传递给 PayPal,IPN 将在付款完成时返回相同的标签;获取 $invoice 值并将其映射到您的订单数据条目。

这里有一些引用以获取更多详细信息:

IPN Variables

在此处查看如何添加“发票”字段:

有关标准付款按钮,请参阅 HTML Variables for PayPal Payments Standard

有关 Express Checkout API,请参阅 SetExpressCheckout API Operation (NVP)

关于php - IPN 如何将用户用户名添加到 Paypal 交易 (PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32635749/

相关文章:

php - Laravel 5,验证和显示用户角色

转义文字 <?php 和 <?在 PHP 脚本中

php - 配置 Notepad++ 以在本地主机上运行 php?

python - 使用 urllib2 进行简单 https 身份验证时出现问题(获取 PayPal OAUTH 不记名 token )

paypal - 处理 PayPal IPN : is necessary? 我可以使用其他方法吗?

php - 为什么MySQL中的连接太多

python - PayPal REST 实时问题

HTTP 上的 Paypal IPN 无法正常工作

php - 如何使用加密按钮将价格变量传递给 Paypal

php - PayPal IPN 自定义表单数据