paypal - 两个个人账户之间转账时的notify_url

时间:2013-01-20 17:12:59

标签: php paypal paypal-ipn

使用phpprobid软件在拍卖网站上工作,并为购买者整合PayPal付款以向卖家付款。表格如下面的代码,我可以看到从买方转移到卖方的钱,但notify_url回调没有运行。可以访问notify_url(用于将项目标记为付费和其他数据库操作),而不是localhost。是notify_url在两个个人账户之间被叫?所有文件仅涉及个人对企业交易;这是否意味着允许用户通过PayPal销售商品并接受付款需要商家帐户?

此过程在沙箱中有效,因此我知道notify_url脚本中没有错误,但您需要一个模拟的商家帐户,因此这不是问题。我已经向通知脚本添加了一些mail()调用,因此我可以看到它实际上没有运行。转移工作,return网址出现后也是如此。

  <form action="https://www.paypal.com/cgi-bin/webscr/" method="post" id="form_paypal">
     <input name="submit" type="submit">
     <input type="hidden" name="cmd" value="_xclick">
     <input type="hidden" name="bn" value="wa_dw_2.0.4">
     <input type="hidden" name="business" value="Business Name">
     <input type="hidden" name="receiver_email" value="paypal@SELLERSBUSINESS.com">
     <input type="hidden" name="amount" value="SOME_AMOUNT">
     <input type="hidden" name="currency_code" value="A_VALID_CURR_CODE">
     <input type="hidden" name="return" value="OURSITE/RETURN_URL">
     <input type="hidden" name="cancel_return" value="OURSITE/FAILED_URL">
     <input type="hidden" name="item_name" value="DESCRIPTION_OF_ITEM">
     <input type="hidden" name="custom" value="VALUE_TO_BE_SPLIT_FOR_SPECIFIC_DATA">
     <input type="hidden" name="notify_url" value="OURSITE/CALLBACK_SCRIPT_URL">
  </form>

tl; dr ...如果PayPal交易在两个个人账户之间,是notify_url被叫吗?

1 个答案:

答案 0 :(得分:1)

IPN可用于任何类型的帐户。你是否完全确定它实际上没有获得POST,但你的脚本有问题,所以你看不到结果?

您需要通过检查PayPal IPN历史记录和Web服务器日志来确认。

如果PayPal IPN历史记录没有显示任何内容,那么您就知道IPN根本没有被发送。如果它显示200 OK,你知道它已经发送,你的服务器正在返回一个成功的响应,脚本完成没有错误。如果您看到200以外的任何其他内容,则表示您的脚本发生错误。您可以检查Web服务器日志以查找确切的错误。

您还可以使用隐藏变量构建一个简单的测试表单,该变量与您希望从PayPal获得的变量相匹配。将此表单的操作设置为IPN侦听器并直接将其POST。通过这种方式,您可以在屏幕上看到结果,这有助于排查问题。

请记住,当以这种方式测试数据不是来自PayPal时,验证将失败。您可以调整代码以相应地处理此问题以进行测试。