2016-05-25 11 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

あなたはこれでPayPalにユーザーをリダイレクト:

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

ユーザーはただは、トランザクションを承認しますが、支払いが、この段階では完全ではありません。支払いを完了するには、 "DoExpressCheckoutPayment"コールを行う必要があります。

詳細については、this link

をご覧ください。