2013-04-18 2 views
-1

Я использую PHP.pay pal returnurl, чтобы вернуть пользователям адрес электронной почты для почтовой учетной записи

Возможно ли, когда paypal вернется на мой сайт после получения платежа, чтобы он мог передать мне адрес электронной почты (имя пользователя PayPal), чтобы я мог использовать его, чтобы отправить им электронное письмо?

Я стараюсь, чтобы мой сайт был как можно более простым, и я не хочу просить клиента загружать информацию спереди.

Мой идеальный поток будет: Take Payment> Добавить запись в базу данных> адрес электронной почты клиента с именем пользователя и паролем

Клиент может войти в систему и заполнить отдых в в своем собственном досуге.

Можно ли получить эту переменную?

Заранее спасибо.

ответ

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']); 
    } 
} 
+0

Спасибо, этот код будет под рукой! – screechyboy79

1

Да ... см. Переменную receiver_email, которая была передана обратно.

Руководство здесь: https://cms.paypal.com/cms_content/GB/en_GB/files/developer/IPNGuide.pdf

См Страница 42-43

+0

Спасибо, если я правильно понимаю, я могу настроить IPN в своих настройках PayPal и добавить страницу URL-адреса, а затем пользовательскую переменную $ payer_email? – screechyboy79

0

Есть несколько способа обработки этого.

Самый простой способ - собрать эти данные перед отправкой пользователю на paypal. Храните его в текущем сеансе пользователей и автоматически переадресовывайте пользователя на свою страницу автоматически.

Во-вторых, необходимо настроить опцию передачи платежных данных. Я не полностью реализовал это, но есть документация на сайте разработчика PayPal. Он в основном отправляет токен обратно на ваш сайт, когда пользователь производит платеж, и вам нужно выполнить другое сообщение HTTP для извлечения пользовательских данных.

+0

Я стараюсь, чтобы они не заполнили форму до тех пор, пока они не подписали необычное, что я знаю, но имеет смысл в этом сценарии. Я не слышал о переводе платежных данных, но спасибо за отзыв. Я рассмотрю это. – screechyboy79

Смежные вопросы