2013-08-06 99 views
0

我使用以下表單發送PayPal DoCapture API調用,這是進行API調用的正確方法。我正在使用貝寶標準賬戶如何在PayPal沙箱中進行PayPal DoCapture API調用?

<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調用。

回答

0

變量STOREID是給出退款的商家商店的標識符。該字段是銷售點交易所必需的。

字符長度和限制:50個單字節字符

此字段是因爲82.0版本。

至於您的表單,您使用的URL不正確。 DoCapture API請求不會發送到https://svcs.sandbox.paypal.com/AdaptiveAccounts/DoCapture。需要將DoCapture發送到其中一個Merchant API端點。那麼它取決於您是否使用NVP或SOAP以及API簽名或證書。你可以找到不同端點列表here。確保你指向正確的端點。

0

我已經在CodeIgniter的PayPal Sandbox代碼中創建了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>"; 
} 
+0

'hash_call'是PHP默認函數?找不到 –