我有一个脚本,使用BusinessID和Token通过表单向PayPal提交付款。显然它仍适用于美国的PayPal,但我在澳大利亚的一位客户表示PayPal告诉他们这种方法不再适用。在阅读文档时,我看到现在可能需要BusinessID,密码和签名。使用IPN流程在API中发生了哪些变化,以及我的客户需要在其帐户中设置哪些步骤才能实现此功能。感谢任何帮助,使我的代码适应新的标准。
<? if ($test == "1"){ ?>
<form name="_xclick" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<?} else {?>
<form action="https://www.paypal.com/us/cgi-bin/webscr" method="post" name="_xclick" id="_xclick">
<? } ?>
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="<?=$businessid;?>">
<input type="hidden" name="notify_url" value="<?=$SITE_URL;?>/notify_payment.php?tx= <?=$test;?>">
<input type="hidden" name="return" value="<?=$SITE_URL;?>/thankyou.php?px=<?=base64_encode($bid);?>">
<input type="hidden" name="cancel_return" value="<?=$SITE_URL;?>/buybidsunsuccess.php">
<input type="hidden" name="currency_code" value="AUD" />
<input type="hidden" name="item_name" value="<?=$bidpackname;?>">
<input type="hidden" name="amount" value="<?=$amt;?>">
<input type="hidden" name="custom" value="<?=$bid."_".$uid;?>" >
$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";
if ($test =="1") {
$fp = fsockopen ('www.sandbox.paypal.com', 80, $errno, $errstr, 30);
}
else
{
$fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);
}
// assign posted variables to local variables
$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 varible
$invoice_id = $_POST['invoice_id'];
//retrieve payment status
$payment_status = $_POST['payment_status'];
$customvar = $_POST["custom"];
if (!$fp) {
// HTTP ERROR
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0) {
答案 0 :(得分:0)
你说什么代币?除了您自己的BID之外,我没有看到旧形式的令牌,而PayPal并不关心。我不知道澳大利亚在这种集成方面有什么不同 - 它应该适用于任何可以接收付款的PayPal商业帐户(并且不会阻止未加密的付款)
Express Checkout在实施方面是完全不同的,尽管最终结果是非常相似的客户体验。这是一个优秀的集成,如果您有编写API调用的知识(我将使用业务帐户的API用户名,API密码和API签名进行身份验证),我建议使用EC。使用EC的另一个好处是您的服务器与PayPal同步通信,因此不需要异步IPN消息以编程方式确认付款发生。