我正在使用PHP。
Paypal在付款后返回我的网站是否有可能还可以通过我的电子邮件地址(paypal用户名),以便我可以使用它向他们发送电子邮件?
我试图让我的网站尽可能简单,我不想事先向客户询问大量的信息。
我的理想流程是: 付款>将记录添加到数据库>使用用户名和密码向客户发送电子邮件
然后,客户可以自己登录并填写其余部分。
是否可以获得此变量?
提前致谢。
答案 0 :(得分:1)
此页面显示了您在处理付款后可以从PayPal返回的内容。
以下是我在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帖子来检索用户数据。