- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经使用沙箱获取交易后 Paypal IPN 返回的信息。我遇到的问题是 IPN 不发送买家地址信息,但我仍然可以获得买家的名字和姓氏等信息。我也可以毫无问题地获取交易 ID 或商品购买信息。我无法获得的唯一变量是所有买家地址信息,如 $_POST['address_name'] 或 $_POST['address_city']。这是我的 HTML 表单:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type='hidden' value="Montant_Achat" name="amount" />
<input name="currency_code" type="hidden" value="EUR" />
<input name="shipping" type="hidden" value="0.00" />
<input name="tax" type="hidden" value="0.00" />
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="XXXXXXX">
<p>
<input type="hidden" name="on0" value="Durée"><span id="texteDuree">Durée : </span><select id="duree" onchange="changeCustom()" name="os0">
<option value="1 mois" id="30">1 mois €0,01 EUR</option>
<option value="3 mois" id="90">3 mois €15,00 EUR</option>
<option value="6 mois" id="180">6 mois €30,00 EUR</option>
</select>
</p>
<input name="return" type="hidden" value="factures.php" />
<input name="cancel_return" type="hidden" value="paypal_pro.php" />
<input name="notify_url" type="hidden" value="paypal/paypal_notify.php" />
<input name="item_name" type="hidden" value="Nom de votre produit" />
<input name="no_note" type="hidden" value="1" />
<input name="lc" type="hidden" value="FR" />
<input name="bn" type="hidden" value="PP-BuyNowBF" />
<input id="custom" name="custom" type="hidden" value="<?php echo $_SESSION["numUser"]; ?>||30" />
<input type="hidden" name="currency_code" value="EUR">
<input type="hidden" name="no_shipping" value="2" />
<input type='hidden' name="address_override" value="1">
<input type="image" style="height:auto;" src="https://www.paypalobjects.com/fr_FR/FR/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - la solution de paiement en ligne la plus simple et la plus sécurisée !">
<img alt="" border="0" src="https://www.paypalobjects.com/fr_FR/i/scr/pixel.gif" width="1" height="1">
</form>
这是我的 Paypal 通知文件的开头:
// lire le formulaire provenant du système PayPal et ajouter 'cmd'
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}
// renvoyer au système PayPal pour validation
$raw_post_data = file_get_contents('php://input');
$raw_post_array = explode('&', $raw_post_data);
$myPost = array();
foreach ($raw_post_array as $keyval) {
$keyval = explode('=', $keyval);
if (count($keyval) == 2)
$myPost[$keyval[0]] = urldecode($keyval[1]);
}
$_req = 'cmd=_notify-validate';
foreach ($myPost as $key => $value) {
$value = urlencode(stripslashes($value));
$_req .= "&$key=$value";
}
// post back to PayPal system to validate
$header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('ssl://ipnpb.paypal.com', 443, $errno, $errstr, 30);
// récupération des informations de paypal
$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'];
$custom = explode("||", $_POST['custom']);
$id_user = $custom[0];
$dureeContrat = $custom[1];
$first_name = $_POST["first_name"];
$last_name = $_POST["last_name"];
$address_city = $_POST["address_city"];
$address_country = $_POST["address_country"];
$address_country_code = $_POST["address_country_code"];
$address_name = $_POST["address_name"];
$address_state = $_POST["address_state"];
$address_street = $_POST["address_street"];
$address_zip = $_POST["address_zip"];
这是 IPN 返回的 $POST 变量:
Key: mc_gross
Key: protection_eligibility
Key: payer_id
Key: tax
Key: payment_date
Key: payment_status
Key: charset
Key: first_name
Key: option_selection1
Key: mc_fee
Key: notify_version
Key: custom
Key: payer_status
Key: business
Key: quantity
Key: verify_sign
Key: payer_email
Key: option_name1
Key: txn_id
Key: payment_type
Key: btn_id
Key: last_name
Key: receiver_email
Key: payment_fee
Key: shipping_discount
Key: insurance_amount
Key: receiver_id
Key: txn_type
Key: item_name
Key: discount
Key: mc_currency
Key: item_number
Key: residence_country
Key: handling_amount
Key: shipping_method
Key: transaction_subject
Key: payment_gross
Key: shipping
Key: ipn_track_id
预先感谢您的帮助。
最佳答案
如果付款信息中包含地址,PayPal 只会发送带有 IPN 通知的地址。否则,它会完全忽略它。
如果在按钮创建过程中您指定不需要运费,这将导致在 IPN 中不退回任何运费。另一种可能是您的订单不需要送货,因此买家只需在结帐时选择不包含他们的送货地址,在这种情况下,PayPal 不会将其发送给您。
关于 Paypal IPN : get Buyer address,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13573193/
我在 C# 中使用 REST API,所以我不确定如果我共享我的代码会有多大帮助。 我有一个帐户,其唯一的角色是买家,并且只关联了一张信用卡。 我想通过关联银行账户和必要的商家信息,将 merchan
我已经使用沙箱获取交易后 Paypal IPN 返回的信息。我遇到的问题是 IPN 不发送买家地址信息,但我仍然可以获得买家的名字和姓氏等信息。我也可以毫无问题地获取交易 ID 或商品购买信息。我无法
我在集成 PayPal Express Checkout 时遇到问题。我想禁用在结帐过程中向买家添加备注的可能性。 我正在使用 PHP SOAP SDK (merchant-php-1.1.93_0.
我正在尝试建立一个使用 PayPal 的网站。不幸的是,PayPal 开发者网站/概念发生了很大变化,所以我找到的所有教程似乎都没有用。例如这个(很好)youtube tutorial很明显是在使用不
我想知道当我想删除我的 Windows Phone 应用程序(您可以购买)中的“功能”时如何处理这种情况,但它应该保留给已经购买该应用程序的人。 例子: 我有一个 ComboBox,其中包含以下项目:
几周前我去度假,我暂停了我的一个项目。当我回来时,我只是检查注册页面,当我收到一个 SQLException 说一个表不存在时,我感到很惊讶。我不明白,因为那个表存在,我是从一个实体创建的。我把代码贴
根据我对与 paypal 集成的理解 - 我们依靠 IPN 来处理我们的数据库注入(inject),例如创建订单、将交易记录到我们的数据库等。 为了从 paypal 接收 IPN 数据,买家需要在付款
是否可以成为 Paypal 交易的中间人而不与交易有任何关系(PayPal 账户明智) 因此买家直接向卖家的账户付款,我的网站会(以某种方式)验证购买并通过电子邮件发送下载链接。 这是如何完成的,是的
我使用 Paypal 的 Express Checkout。问题是,当我多次尝试获取授权时。我收到失败响应。 这笔付款的总金额是 800。 我想获取每个项目的授权。 这是第一个请求。我尝试在“L_AM
我已将 PayPal 快速结账集成到在线商店中。在客户在 PayPal 网站上填写表格并且 PayPal 将她/他重定向回商店后,我立即调用 DoExpressCheckout 电话。但在 PayPa
我是一名优秀的程序员,十分优秀!