2

私はそれが達成可能かどうか疑問に思っています:

自分のウェブサイトでユーザーのクレジットカード支払いを受け入れたいです。私はクレジットカード情報を取得する形式を持っていると仮定し、理想的には、すべての情報をクライアント側 (サーバー経由ではなく) で Paypal に投稿して処理し、Paypal が支払いを処理して私の Web サイトにリダイレクトできるようにしたいと考えています。

PCI 準拠のため、すべてのクレジット カード情報がサーバーを通過することはありません。私がペイパルから得ることができる唯一のものは、支払いの成功または失敗と、ウェブサイトで取引を完了するために必要ないくつかの非機密情報です.

Payflow pro が解決策になる可能性があることがわかりましたが、nvp リクエストを作成して Paypal にリダイレクトする方法がわかりません。サーバーサイドでSDKを使うのは簡単なのですが、残念ながら使えません。

誰でもこれで私を助けることができますか?

前もってありがとう、LD

4

2 に答える 2

0

DoDirectPaymentAPIをご覧ください。

これはあなたを助けるはずです。

于 2013-02-21T06:17:05.940 に答える
0

私はこのコードを使用しています。

$infos = array(
            'METHOD' => 'DoDirectPayment', 
            'USER' => $paypal_pros_username, 
            'PWD' => $paypal_pros_password, 
            'SIGNATURE' => $paypal_pros_signature, 
            'VERSION' => urlencode('115'), 
            'PAYMENTACTION' => $_POST['paypal_pros_transaction_type'],
            'IPADDRESS' => $_SERVER['REMOTE_ADDR'],
            'CREDITCARDTYPE' => $_POST['creditCardType'], 
            'ACCT' => $_POST['creditCardNumber'],
            'EXPDATE' => $_POST['expDateMonth'].$_POST['expDateYear'],
            'CVV2' => $_POST['cvv2Number'], 
            //'EMAIL' => $_POST['email'], 
            'FIRSTNAME' => $_POST['firstName'], 
            'LASTNAME' => $_POST['lastName'], 
            'STREET' => $_POST['address1'], 
            'CITY' => $_POST['city'], 
            'STATE' => $_POST['state'],                     
            'ZIP' => $_POST['zip'], 
            'COUNTRYCODE' => $_POST['country'], 
            'AMT' => $_POST['amount'], 
            'CURRENCYCODE' => $_POST['PayPal_pros_curency'], 
            'DESC' => $_POST['paypal_pro_desc'], 
            'NOTIFYURL' => 'https://website.com/ipn.php'
            );

// Loop through $infos array to generate the NVP string.
$nvp_string = '';
foreach($infos as $var=>$val)
{
    $nvp_string .= '&'.$var.'='.urlencode($val);    
}

// Send NVP string to PayPal and store response
// Set the curl parameters.
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $strPurchaseURL);
    curl_setopt($ch, CURLOPT_VERBOSE, 1);
    // Turn off the server and peer verification (TrustManager Concept).
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    // Set the request as a POST FIELD for curl.
    curl_setopt($ch, CURLOPT_POSTFIELDS, $nvp_string);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);


// Get response from the server.
$result = curl_exec($ch);

// Parse the API response
parse_str($result, $output);

    if(array_key_exists('ACK', $output)){

print_r($output);

            if($output['ACK']=="Success"){
                //Success Email or save data in database etc...

                }
            elseif($output['ACK']=="Failure"){
                //Failure Email or send any error etc...

                }
            else {
                echo 'There is any error! Please go back and try again.';
                }   
        }
    else {
        echo 'There is any error! Please go back and try again.';
        }
于 2015-05-05T14:36:07.283 に答える