我刚刚开始处理一个在网站上处理paypal付款的项目,当电子邮件通知发送时,当且仅当用户返回该网站时,该工作才能正常工作。事实是我没有编码它,我甚至不知道它使用什么样的api。我阅读了对我来说相当模糊的文档(它理解有一个令牌需要通过get request方法从网站发送,但我真的不确定)。我从代码中了解到,在下文中,op = dodons uri用于管理paypal的响应并向用户发送电子邮件通知。以下是我唯一可以告诉您的页面,我想从中获取付款的处理方式:
<form action="{$payPalURL}" method="post" class="payPalForm" id="frmpp">
<input type="hidden" name="cmd" value="_donations" id="typedon"/>
<input type="hidden" name="item_name" value="Donation" />
<input type="hidden" name="business" value="{$myPayPalEmail}" />
<input type="hidden" name="notify_url" value="{$url}/index.php?op=dodons&donation=1&tid={$randomID}&payment=1" />
<input type="hidden" name="return" value="{$url}index.php?page=campaign&op=dodons&campaign_id={$campaign->getId()}&don=ok" />
<input type="hidden" name="rm" value="2" />
<input type="hidden" name="no_note" value="1" />
<input type="hidden" name="cbt" value="Continue" />
<input type="hidden" name="no_shipping" value="1" />
<input type="hidden" name="lc" value="US" />
<input type="hidden" name="currency_code" value="EUR" />
<input type="hidden" name="txn_id" value="{$randomID}" />
<input type="hidden" name="tid" value="{$randomID}" />
{if $logged_user != null}
<input type="hidden" name="a_id" value="{$logged_user->getId()}" />
</form>
答案 0 :(得分:1)
您似乎正在将Payments Standard与Payment Data Transfer (PDT)结合使用。
PDT仅在用户返回到永远无法保证的站点时才有效,即使启用了自动返回也是如此。
相反,请使用Instant Payment Notification (IPN)。这是对服务器上的侦听器脚本的所有事务数据的简单POST,无论用户是否将其返回到您的站点,都会发生这种情况。它与结账流程完全分开。