Php paypal支付操作缺失

Php paypal支付操作缺失,php,curl,paypal,Php,Curl,Paypal,在将PayPal集成到我们的商店系统中时,我做了最新的可用文档所说的事情。我刚刚发现NVP中似乎有PAYMENTREQUEST\u n\u PAYMENTACTION参数 我使用SetExpressCheckout返回的令牌和PayerID获取付款详细信息。当我输出返回的卷曲时,我发现: [CHECKOUTSTATUS] => PaymentActionNotInitiated 有什么问题吗 我在cURL中使用此查询: // Prepare PayPal API URL $url = "

在将PayPal集成到我们的商店系统中时,我做了最新的可用文档所说的事情。我刚刚发现NVP中似乎有PAYMENTREQUEST\u n\u PAYMENTACTION参数

我使用SetExpressCheckout返回的令牌和PayerID获取付款详细信息。当我输出返回的卷曲时,我发现:

[CHECKOUTSTATUS] => PaymentActionNotInitiated
有什么问题吗

我在cURL中使用此查询:

// Prepare PayPal API URL
$url = "https://api-3t.sandbox.paypal.com/nvp";

// $PAYMENTACTION = "Sale"

// Prepare PayPal NVP (Name-Value Pair) payment request
$nvp = "METHOD=" . $SETMETHOD;
$nvp .= "&VERSION=" . $VERSION;
$nvp .= "&USER=" . $USERNAME;
$nvp .= "&PWD=" . $PASSWORD;
$nvp .= "&SIGNATURE=" . $SIGNATURE;
$nvp .= "&PAYMENTREQUEST_0_PAYMENTACTION=" . $PAYMENTACTION;
$nvp .= "&PAYMENTREQUEST_0_CURRENCYCODE=" . $CURRENCY;
$nvp .= "&SOLUTIONTYPE=" . $SOLUTIONTYPE;
$nvp .= "&RETURNURL=" . $RETURNURL;
$nvp .= "&CANCELURL=" . $CANCELURL;
$nvp .= "&L_PAYMENTREQUEST_0_NAME0=" . $PAYMENTNAME0;
$nvp .= "&L_PAYMENTREQUEST_0_DESC0=" . $PAYMENTDESC0;
$nvp .= "&L_PAYMENTREQUEST_0_AMT0=" . $PAYMENTAMT0;
$nvp .= "&L_PAYMENTREQUEST_0_QTY0=" . $PAYMENTQTY0;
$nvp .= "&PAYMENTREQUEST_0_ITEMAMT=" . $PAYMENTITEMAMT;
$nvp .= "&PAYMENTREQUEST_0_AMT=" . $PAYMENTAMT;
$nvp .= "&PAYMENTREQUEST_0_CURRENCYCODE=" . $CURRENCY;
$nvp .= "&LOCALECODE=" . $LOCALECODE;
$nvp .= "&HDRIMG=" . $HEADERLOGO;
$nvp .= "&PAYFLOWCOLOR=" . 262626;

PaymentActionNotInitiated
未引用
PAYMENTREQUEST\u 0\u PAYMENTACTION

这仅仅意味着您尚未将买家引导至PayPal页面以确认其付款

总而言之,以下是Express Checkout的工作原理:

  • SetExpressCheckout设置付款并返回令牌
  • 您将买家重定向到,其中TOKEN-HERE是您之前收到的令牌
  • 在买方同意付款后,他将返回您的现场
  • 您可以调用GetExpressCheckoutDetails并将令牌作为参数提供,以将PAYERID从买家中删除
  • 使用提供的令牌和PAYERID调用DoExpressCheckoutPayment以完成付款

  • 我以前从未使用过paypal系统,但快速搜索表明,paypal不允许数字超过2位小数,这可能会导致问题?@Nick-我认为这与此无关。Amount工作正常,只是某些参数&PAYMENTREQUEST\u 0\u PAYMENTACTION似乎是问题所在。如果没有人知道答案,您可以尝试使用此方法作为解决方法:“我找到的唯一解决方法是执行GetExpressCheckoutDetails并检查CHECKOUTSTATUS变量,以查看它是否为PaymentActionComplete。如果是,我会处理付款。如果是PaymentActionNotInitiated,我将进行DoExpressCheckoutPayment。“-尽管我真的希望你找到更好的解决方案。我在你的个人资料中发现了这条评论
    以玩PayPal API为生。
    。怎么可能?PayPal为你在stackoverflow中的工作付费了吗??(有点离题,但我在贝宝商户技术服务公司工作。)