2016-10-10 166 views
0

我目前正在与贝宝与NVP(paypalfunctions.php)进行支付的新集成。同样的集成适用于其他项目,但在当前的项目中失败。PayPal NVP集成 - 付款未处理

描述:支付链接获得成功创建 - 获取重定向到PayPal - 登录并支付金额(1或5欧元) - 重定向到成功链接。

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

我用的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

回答

0

这听起来像你错过了在过程中的最后通话。该流程应该是:

  1. SetExpressCheckout
  2. GetExpressCheckoutDetails
  3. DoExpressCheckoutPayment

直到最后DECP呼叫成功完成没有钱将被移动。

备注:您所做的不是使用REST API/SDK,因此标签会产生误导。

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

+0

嗨,非常感谢。我使用的CallShortcutExpressCheckout()应该足够了(或者他们在过去的几周/一个月内改变了某些内容),或者我在整个过程中都做错了,并且它没有任何魔力。我跟着[链接](https://devtools-paypal.com/integrationwizard/ecpaypal/code.php),它没有提到你的功能。我会检查你的SDK是否可以集成这个。只想知道为什么我的工作不再。 – bert2002

+0

好吧,我找到了一种方式,但它的一种奇怪。首先,我用我的所有详细信息制作了一个CallMarkExpressCheckout(),然后用户支付并获取重定向到ReturnURL,后者使用DoExpressCheckoutPayment()处理令牌和PayerID。然后付款获得批准。这个工作流程是否有意义?在另一个项目中,所有第二部分都与回调一起处理,而不是来自用户的ReturnUrl。那ReturnUrl有点奇怪。 – bert2002

+0

我列出的API名称是实际名称。这些函数是用SetExpressCheckout请求来完成的。例如,SetExpressCheckout中的其中一个参数可以设置为“Billing”或“Mark”,根据您的设置,体验会有所不同。无论如何,这些函数都为您运行SetExpressCheckout,并且可能会为您处理重定向,但是,您需要在返回到由SetExpressCheckout提供的ReturnURL后添加DoExpressCheckoutPayment调用。 –