paypal 按钮/IPN 发票名称
Posted
技术标签:
【中文标题】paypal 按钮/IPN 发票名称【英文标题】:paypal button / IPN invoice name 【发布时间】:2015-03-21 03:23:04 【问题描述】:我目前接受付款的设置如下:
我使用自定义 paypal 按钮代码,在其中设置我的通知 url (IPN) 并返回带有我想要传递的参数的 url(例如 UTM_SOURCE,这样我就可以知道哪个活动产生了销售)。
我有一个用于获取该信息的 IPN 侦听器,并在我的系统中为买家创建一个新用户。
我将带有多个 IPN php 脚本 (http://codeseekah.com/2012/02/11/how-to-setup-multiple-ipn-receivers-in-paypal/) 的 IPN 转发到第三方发票软件,该软件生成发票并将其发送给买方。
问题:
发票软件从他们的 paypal 帐户中获取用户的姓名,而且似乎很多人需要使用不同名称的发票。
有没有办法操纵买家的姓名,这样当我将 IPN 信息转发到发票软件时,它会包含我在记录中的姓名,而不是 paypal 通行证的姓名?
注意:我宁愿这样做而不求助于使用 paypal 的 API。
谢谢:)
【问题讨论】:
【参考方案1】:这是一个 PHP 示例,说明如何实现这一点。本质上,您循环遍历 IPN 值,然后将它们添加回您自己的名称/值对字符串中。但是在将每个值添加到您的字符串之前,您会检查它是名字还是姓氏,如果是,则将其设置为等于您已经设置的某个变量。
$modified_first_name = "Bob";
$modified_last_name = "Smith";
foreach ($_POST as $key => $value) // Loop through the notification NV pairs
//Check if is first or last name, and modify the name
switch ($key)
case 'first_name':
$value = $modified_first_name;
break;
case 'last_name':
$value = $modified_last_name;
break;
//end switch $key
//Add to NV pairs
$value = urlencode(stripslashes($value)); // Encode these values
$req .= "&$key=$value"; // Add the NV pairs to the acknowledgement
编辑:至于您问题的第二部分(将通知发送到 3rd 方软件),您根本不应该将 IPN 发送到 3rd 方软件。相反,使用从我上面粘贴的脚本派生的数据,使用 POST 将数据发送到您自己的第 3 方软件。你可以这样做:
// post to third party software //
$header .= "POST /script.php HTTP/1.0\r\n";
$header .= "Host: www.thirdpartysoftwaresite.com\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$port = 123; //replace this with actual port on server
// Open a socket for the 3rd party software
$fp = fsockopen('http://www.thirdpartysoftwaresite.com/', $port, $errno, $errstr, 30);
// Send the HTTP POST request
fputs($fp, $header . $req);
【讨论】:
以上是关于paypal 按钮/IPN 发票名称的主要内容,如果未能解决你的问题,请参考以下文章