2016-05-25 33 views
0

我使用SetExpressCheckout的方法,成功獲取令牌後,釋放鏈接,用戶可以進行支付:PayPal API(支付成功,但卡上的錢不會被收取)

https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=<? echo $token[1]; ?> 

查詢代碼:

$paypal_create_token = post('https://api-3t.paypal.com/nvp', 
array(
    'params' => array(
    'USER' => $paypal_config['user'], 
    'PWD' => $paypal_config['password'], 
    'SIGNATURE' => $paypal_config['sign'], 
    'METHOD' => 'SetExpressCheckout', 
    'VERSION' => $paypal_config['version'], 
    'REQCONFIRMSHIPPING' => 0, 
    'NOSHIPPING' => 1, 
    'SOLUTIONTYPE' => 'Sole', 
    'LANDINGPAGE' => 'Billing', 
    'LOGOIMG' => $protocol.'://'.$host.'/images/logo197x40.png?'.$time, 
    'HDRIMG' => $protocol.'://'.$host.'/images/logo.png?'.$time, 
    'BRANDNAME' => mb_strtoupper($host), 
    'PAYMENTREQUEST_0_AMT' => $amount, 
    'PAYMENTREQUEST_0_ITEMAMT' => $amount, 
    'L_PAYMENTREQUEST_0_AMT0' => $amount, 
    'L_PAYMENTREQUEST_0_NAME0' => $description, 
    'PAYMENTREQUEST_0_INVNUM' => $order_id, 
    'L_PAYMENTREQUEST_0_NUMBER0' => $order_id, 
    'PAYMENTREQUEST_0_PAYMENTACTION' => 'SALE', 
    'PAYMENTREQUEST_0_CURRENCYCODE' => 'RUB', 
    'EMAIL' => $orders_info['email'], 
    'RETURNURL' => $paypal_config['success_url'].'?order_id='.$order_id.'&order_hash='.$order_hash, 
    'CANCELURL' => $paypal_config['fail_url'].'?order_id='.$order_id.'&order_hash='.$order_hash, 
) 
) 
); 

$paypal_create_token_content = $paypal_create_token['content']; 

preg_match('/TOKEN\=(.*?)\&/', $paypal_create_token_content, $token); // get token 

其結果是,所有這些是必要的,有一個頁面的帳戶付款方式:

введите сюда описание изображения

而當我點擊繼續,那麼一切順利,但是如果設置了測試模式但沒有使用沙箱鏈接,您的卡將不會被充電。爲了好玩,我決定將您的PayPal賬戶與我的API數據連接到相同的付款服務,付款時從卡中扣除。

然而,有時銀行要求SMS代碼確認付款,但仍然沒有任何記錄。天下奇聞。

什麼問題?我不使用沙箱鏈接,但仍然有這個麻煩。我懷疑在參數中傳遞了某些不正確的東西。

回答

3

當您將用戶重定向到貝寶與此:

https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=<? echo $token[1]; ?> 

用戶只會批准該交易但付款是不完整的,在這個階段。您必須執行「DoExpressCheckoutPayment」來完成付款。

欲瞭解更多信息,請訪問this link