【问题标题】:How to make PayPal DoCapture API Call in PayPal Sandbox?如何在 PayPal 沙箱中进行 PayPal DoCapture API 调用?
【发布时间】:2013-08-06 07:29:59
【问题描述】:

我已使用以下表格发送 PayPal DoCapture API 调用,这是进行 API 调用的正确方法吗?我使用的是 PayPal 标准账户

<form id="paymentForm" action="https://svcs.sandbox.paypal.com/AdaptiveAccounts/DoCapture" method="post" name="paypal">         
    <input id="METHOD" name="METHOD" type="hidden" value="DoCapture" />
    <input id="AUTHORIZATIONID" name="AUTHORIZATIONID" type="hidden" value="7M4218491W8104419" />
    <input id="AMT" name="AMT" type="hidden" value="10" />
    <input id="CURRENCYCODE"  name="CURRENCYCODE" type="hidden" value="EUR" />
    <input id="COMPLETETYPE" name="COMPLETETYPE" type="hidden" value="NotComplete" />
    <input id="STOREID" name="STOREID" type="hidden" value="938738701158035" />         
    <input type="submit" value="Proceed with Payment" id="submit2" name="SUBMIT2"/>
</form>

它显示内部错误?同时我不关心 STOREID 参数.. 这是什么?

任何人都可以通过示例帮助我实现 DoCapture API 调用。

【问题讨论】:

    标签: paypal paypal-sandbox


    【解决方案1】:

    变量STOREID 是提供退款的商家商店的标识符。销售点交易需要此字段。

    字符长度和限制:50 个单字节字符

    此字段从 82.0 版开始可用。

    对于您的表单,您使用的 URL 不正确。 DoCapture API 请求不会发送到 https://svcs.sandbox.paypal.com/AdaptiveAccounts/DoCaptureDoCapture 需要发送到商家 API 端点之一。那么这取决于您使用的是 NVP 还是 SOAP,以及 API 签名还是证书。您可以找到不同端点here 的列表。确保您指向正确的端点。

    【讨论】:

      【解决方案2】:

      我已经在 CodeIgniter 的 PayPal 沙箱代码中创建了 PayPal DoCapture API 调用。

      public function get_execute_docapture($product_id = '', $paypal = '') {
      
          $serverName = $_SERVER['SERVER_NAME'];
          $serverPort = $_SERVER['SERVER_PORT'];
          $url = dirname('http://' . $serverName . ':' . $serverPort . $_SERVER['REQUEST_URI']);
          $currencyCodeType = "USD";
          $paymentType = 'Authorization';
          $personName = "Balasaheb Bhise" . " " . "Balasaheb Bhise";
          $SHIPTOSTREET = $_REQUEST['SHIPTOSTREET'];
          $SHIPTOCITY = $_REQUEST['SHIPTOCITY'];
          $SHIPTOSTATE = $_REQUEST['SHIPTOSTATE'];
          $SHIPTOCOUNTRYCODE = $_REQUEST['SHIPTOCOUNTRYCODE'];
          $SHIPTOZIP = $_REQUEST['SHIPTOZIP'];
          $card_name = "";
          $L_NAME0 = 'demo';
          $L_AMT0 = 10;
          $L_QTY0 = 1;
          $L_NAME1 = '';
          $L_AMT1 = 0;
          $L_QTY1 = 0;
          $returnURL = (base_url() . 'product/get_execute_docapture/' . $product_id . 'paypal/');
          $cancelURL = (base_url() . 'product/get_execute_docapture/' . $product_id);
          $itemamt = 0.00;
          $itemamt = $L_QTY0 * $L_AMT0;
          $amt = $itemamt;
          $maxamt = $itemamt;
          $nvpstr = "";
      
          //  Send transaction id hear
          $AuthorizationId = $transaction_id;
          /*
           * Setting up the Shipping address details
           */
          $shiptoAddress = "&SHIPTONAME=$personName&SHIPTOSTREET=$SHIPTOSTREET&SHIPTOCITY=$SHIPTOCITY&SHIPTOSTATE=$SHIPTOSTATE&SHIPTOCOUNTRYCODE=$SHIPTOCOUNTRYCODE&SHIPTOZIP=$SHIPTOZIP";
      
          $nvpstr = "&ADDRESSOVERRIDE=1$shiptoAddress&L_NAME0=" . $L_NAME0 . "&L_NAME1=" . $L_NAME1 . "&L_AMT0=" . $L_AMT0 . "&L_QTY0=" . $L_QTY0 . "&MAXAMT=" . (string) $maxamt . "&AMT=" . (string) $amt . "&ITEMAMT=" . (string) $itemamt . "&CALLBACKTIMEOUT=4&L_SHIPPINGOPTIONAMOUNT1=0.00&L_SHIPPINGOPTIONlABEL1=&L_SHIPPINGOPTIONNAME1=UPS Air&L_SHIPPINGOPTIONISDEFAULT1=true&L_SHIPPINGOPTIONAMOUNT0=0.00&L_SHIPPINGOPTIONLABEL0=UPS Ground 7 Days&L_SHIPPINGOPTIONNAME0=Ground&L_SHIPPINGOPTIONISDEFAULT0=false&INSURANCEAMT=0.00&INSURANCEOPTIONOFFERED=true&CALLBACK=https://www.ppcallback.com/callback.pl&SHIPPINGAMT=0.00&SHIPDISCAMT=0.00&TAXAMT=0.00&L_NUMBER0=1000&L_DESC0=" . $card_name . "&L_NUMBER1=&L_DESC1=&L_ITEMWEIGHTVALUE1=&L_ITEMWEIGHTUNIT1=&ReturnUrl=" . $returnURL . "&CANCELURL=" . $cancelURL . "&CURRENCYCODE=" . $currencyCodeType . "&PAYMENTACTION=" . $paymentType . "&AUTHORIZATIONID=" . $AuthorizationId . "&COMPLETETYPE=" . "Complete";
          $nvpstr = $nvpHeader . $nvpstr;
      
          $resArray = hash_call("DoCapture", $nvpstr);
      
          echo "<pre>";
          print_r($resArray);
          echo "</pre>";
      }
      

      【讨论】:

      • hash_call 是 PHP 默认函数吗?没找到
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-30
      • 2015-05-23
      • 2010-12-19
      • 2021-12-05
      • 2012-11-09
      • 2018-05-28
      相关资源
      最近更新 更多