1

SetExpressCheckout に PayPal API 関数を実装しようとしています。以下に、PayPal 側で支払いプロセスを呼び出すために使用しているコードの一部を示します。すべてがうまく見えます。チェックアウトの最後のステップで、「今すぐ支払う」ボタンを押すと、支払いが処理されます。そのユーザーが元のサイトに戻った後、トランザクション ID、成功メッセージ、およびトークンを取得しました。すべてが順調に進んでいるように見えますが、私の PayPal アカウントには取引が見られず、お金もまったく入っていません。

        $returnUrl = home_url("/wp-login.php?checkemail=registered&ppayment=done&price=".$package_price."&code=".$paypal_price_unit."&package=".$package_name."&pid=".$incomingpost);


        $requestParams = array(
           'RETURNURL' => $returnUrl,
           'CANCELURL' => home_url('/wp-login.php?checkemail=registered&ppayment=cancel')
        );

        // Sent item info
        $orderParams = array(
           'PAYMENTREQUEST_0_AMT' => $package_price,
           'PAYMENTREQUEST_0_SHIPPINGAMT' => '0',
           'PAYMENTREQUEST_0_CURRENCYCODE' => $paypal_price_unit,
           'PAYMENTREQUEST_0_ITEMAMT' => $package_price
        );

        //send package info
        $item = array(
           'L_PAYMENTREQUEST_0_NAME0' => $paymentName,
           'L_PAYMENTREQUEST_0_DESC0' => $package_name,
           'L_PAYMENTREQUEST_0_AMT0' => $package_price,
           'L_PAYMENTREQUEST_0_QTY0' => '1'
        );


        //Call payment process
        $infos = array();
        $infos['USER'] = $paypal_api_user;
        $infos['PWD'] = $paypal_api_pwd;
        $infos['SIGNATURE'] = $paypal_api_signature;
        if($paypal_sandbox == 1){$sandstatus = true;}else{$sandstatus = false;}



        $paypal = new Paypal($infos,$sandstatus);
        $response = $paypal -> request('SetExpressCheckout',$requestParams + $orderParams + $item);


        if(is_array($response) && $response['ACK'] == 'Success') { 
            // We will redirecting now.
            $token = $response['TOKEN']; 

            //Save DB before redirect.
            $trans_post = array(
                'post_status' => 'pending',
                'post_type' => 'retransactions',
                'post_title' => $token,
            );
            $new_post_id = wp_insert_post( $trans_post );
            add_post_meta($new_post_id, 'webburemap_payment_user', $user_id);
            add_post_meta($new_post_id, 'webburemap_payment_amount', $package_price);
            add_post_meta($new_post_id, 'webburemap_payment_package_id', $package_IDNO);
            add_post_meta($new_post_id, 'webburemap_payment_package_transtype', 'NewPackage');



            if($paypal_sandbox == 0){
            $commit = '&useraction=commit';
            header( 'Location: https://www.paypal.com/webscr?cmd=_express-checkout&token=' . urlencode($token) . $commit ); //PayPal Pay Now
            }else{
            header( 'Location: https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&token=' . urlencode($token) );
            }
            die();
        }
4

1 に答える 1

0

戻ってきたエクスプレス チェックアウト トークンとトランザクション ID を教えていただけますか?また、正しいエンドポイントを指していることを確認してください。ライブ支払いを処理しようとしている場合は、サンドボックスではなくライブ サイトを指していることを確認してください。

于 2013-06-20T14:22:38.203 に答える