paypal返回url返回用户paypal帐户的电子邮件地址

时间:2013-04-18 21:20:00

标签: php email paypal username

我正在使用PHP。

Paypal在付款后返回我的网站是否有可能还可以通过我的电子邮件地址(paypal用户名),以便我可以使用它向他们发送电子邮件?

我试图让我的网站尽可能简单,我不想事先向客户询问大量的信息。

我的理想流程是: 付款>将记录添加到数据库>使用用户名和密码向客户发送电子邮件

然后,客户可以自己登录并填写其余部分。

是否可以获得此变量?

提前致谢。

3 个答案:

答案 0 :(得分:1)

此页面显示了您在处理付款后可以从PayPal返回的内容。

IPN and PDT Variables

以下是我在Codeigniter中制作的示例。

/* Receives a form data from paypal that is processed after payment goes through.
 * It will update the database entry with a transaction id. 
 */
 function epayment_notify(){
    $this->load->model('pament_notice_model');

    echo "Hi<br>";
    $postvars = isset($_POST)? $_POST : array("no post");
    /* echo "</pre>Post Vars:<br><pre>";
    print_r($postvars);
    echo "</pre>Refurl:<br><pre>";
    Check for the transaction ID and put it in the pament_notice table if possible. 
    */
    if (isset($postvars['item_number']) &&  $postvars['item_number'] > 0 && isset($postvars['txn_id'])){

        /* make sure that payment_number is empty on this row. */ 
        log_message('info',"PayPal transaction received.");

        if ($this->pament_notice_model->make_sure_payment_number_is_empty($postvars['item_number'])){   
            //writes the message to the local log file in CI
            log_message('debug',"PayPal payment number is empty.");

            /* set the txn_id in the slot */
            $data = array('payment_number' => $postvars['txn_id']);
            $this->db->where('entry_id',$postvars['item_number']);
            $this->db->update('pament_notice',$data);
            log_message('debug',"payment number updated. item:".$postvars['item_number']);
            log_message('debug',"payment actual cost. payment_gross:".$postvars['payment_gross']);

        }  else {
            log_message('error',"PayPal transaction attempted on non-empty payment number.");
            if (isset($postvars['item_number']))
                log_message('error',"failed request item_number :".$postvars['item_number']);
            if (isset($postvars['txn_id']))
                log_message('error',"failed request txn_id:". $postvars['txn_id']); 
        }   

    } else {
        log_message('info',"PayPal payment transaction sent with invalid data.");
        if (!isset($postvars['item_number']))
            log_message('error',"item_number is not set");

        if (isset($postvars['item_number']))
            log_message('error',"failed request item_number :".$postvars['item_number']);

        if (!isset($postvars['txn_id']))
            log_message('error',"txn_id is not set\n");

        if (isset($postvars['txn_id']))
            log_message('error',"failed request txn_id:". $postvars['txn_id']); 
    }
}

答案 1 :(得分:1)

是...查看传回的receiver_email变量。

指南:https://cms.paypal.com/cms_content/GB/en_GB/files/developer/IPNGuide.pdf

见第42-43页

答案 2 :(得分:0)

有几种方法可以解决这个问题。

最简单的方法是在将用户发送到PayPal之前收集该数据。 将其存储在用户当前会话中,并让paypal自动将用户重定向回您的页面。

第二种是设置付款数据传输选项。我没有完全实现这一点,但有paypal开发者网站上的文档。当用户付款时,它基本上会将令牌发送回您的网站,您必须执行另一个HTTP帖子来检索用户数据。