【问题标题】:PayPal NVP Integration - Payment not processedPayPal NVP 集成 - 未处理付款
【发布时间】:2017-02-19 05:34:05
【问题描述】:

我目前正在努力将 PayPal 与 NVP (paypalfunctions.php) 进行新的集成以处理付款。相同的集成适用于其他项目,但在当前项目中失败。

说明:付款链接创建成功 - 被重定向到 Paypal - 登录并支付金额(1 或 5 欧元) - 被重定向到成功网址。

问题:商店帐户和发件人帐户都看不到付款,我没有收到 PayPal 的任何回电 - 因此付款未处理/接受等,但我没有从 Paypal 获得任何信息。

我使用的 NVP 设置很少,不需要收货地址:

$nvpstr="&PAYMENTREQUEST_0_AMT=". $paymentAmount;
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_PAYMENTACTION=" . $paymentType;
$nvpstr = $nvpstr . "&RETURNURL=" . $returnURL;
$nvpstr = $nvpstr . "&CANCELURL=" . $cancelURL;
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_CURRENCYCODE=" . $currencyCodeType;
$nvpstr = $nvpstr . "&NOSHIPPING=1";
$nvpstr = $nvpstr . "&BRANDNAME=MyName";
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_CUSTOM=" . $paymentId;
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_NOTIFYURL=https://my.callback.com";

成功创建 URL 并设置所有变量。

知道为什么这不起作用吗?

非常感谢

bert2002

【问题讨论】:

    标签: php paypal paypal-nvp


    【解决方案1】:

    听起来您在此过程中错过了最后一次通话。流程应该是:

    1. 设置ExpressCheckout
    2. GetExpressCheckoutDetails
    3. DoExpressCheckoutPayment

    在最终的 DECP 调用成功完成之前,不会转移任何资金。

    旁注:您所做的不是使用 REST API / SDK,因此该标签具有误导性。

    我有一个PayPal PHP SDK,它将使这些 API 调用对您来说非常快速和容易,因此您不必像现在这样手动构建它们。我建议你看看它。我想你会喜欢的。

    【讨论】:

    • 您好,非常感谢。我使用 CallShortcutExpressCheckout() 应该足够了(或者他们在过去几周/一个月内改变了一些东西),或者我一直都做错了,它没有魔法。我关注了link,它没有提到你的功能。如果我可以集成它,我会检查你的 SDK。只是想知道为什么我的不再工作了。
    • 好的,我找到了一种方法,但它有点奇怪。首先,我使用我的所有详细信息创建一个 CallMarkExpressCheckout(),然后用户付款并被重定向到 ReturnURL,ReturnURL 使用 DoExpressCheckoutPayment() 处理令牌和 PayerID。然后付款得到批准。这个工作流程有意义吗?在另一个项目中,所有第二部分都是通过回调而不是用户的 ReturnUrl 处理的。 ReturnUrl 有点奇怪。
    • 我列出的 API 名称是实际名称。这些函数是为使用 SetExpressCheckout 请求执行特定操作而构建的。例如,SetExpressCheckout 中的参数之一可以设置为“Billing”或“Mark”,根据您的设置方式,体验会有所不同。无论如何,这些函数正在为您运行 SetExpressCheckout,并可能为您处理重定向,但是是的,您还需要在返回到 SetExpressCheckout 提供的 ReturnURL 后添加 DoExpressCheckoutPayment 调用。
    • “回调”是一个通常与 IPN 一起使用的术语,即 PayPal 的服务器向您的服务器发送数据的 POST(或回调),以便您可以使用交易数据自动执行过程。这是一个非常有用的工具,但它与 Express Checkout 和完成付款的流程完全分开。
    • 是的,我是说 IPN。对不起。他们有可能改变工作流程吗?之前我从来不需要使用 ReturnUrl 来验证付款。尽管如此,这似乎是处理这个问题的新方法。非常感谢!
    猜你喜欢
    • 2021-10-11
    • 2014-08-03
    • 2011-11-24
    • 2019-07-15
    • 2014-01-23
    • 2015-11-25
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多