2012-10-04 2 views
2

을 사용하여 금액을 동적으로 재정의 할 수 있습니다. paypal로 리디렉션하는 동안 수락하지 않는 금액을 사용자가 PayPal에 입력하도록 허용합니다. 금액은 비어 있습니다. 비는 사람 button.can 암호화 호스팅 사용하면 도움이 .im 무력은 호스트가 아닌 암호화 된 버튼

이이 내 PHP 코드

  <?php 

    $MY_KEY_FILE = "/home/khader/smsmobilebase/certs/private-key.pem"; 

    $MY_CERT_FILE = "/home/khader/smsmobilebase/certs/publi-cert.pem"; 

    $PAYPAL_CERT_FILE = "/home/khader/smsmobilebase/certs/paypal_cert_pem.txt"; 

    $OPENSSL = "/usr/bin/openssl"; 


    $form = array('cmd' => '_xclick','business' => '[email protected]','cert_id' => '6BPQP9KEEBCJ6','currency_code' => 'USD', 
'no_shipping' => '1', 
'item_name' => 'PayNow', 


'cancel_return' => 'http://mobiletool.xichlomobile.com/', 
'amount' => "'$amount'" 
      ); 

    $encrypted = paypal_encrypt($form); 

function paypal_encrypt($hash) 
    { 

     global $MY_KEY_FILE; 
     global $MY_CERT_FILE; 
     global $PAYPAL_CERT_FILE; 
     global $OPENSSL; 


     if (!file_exists($MY_KEY_FILE)) { 
     echo "ERROR: MY_KEY_FILE $MY_KEY_FILE not found\n"; 
    } 
     if (!file_exists($MY_CERT_FILE)) { 
     echo "ERROR: MY_CERT_FILE $MY_CERT_FILE not found\n"; 
     } 
     if (!file_exists($PAYPAL_CERT_FILE)) { 
     echo "ERROR: PAYPAL_CERT_FILE $PAYPAL_CERT_FILE not found\n"; 
     } 

     $data = ""; 
     foreach ($hash as $key => $value) { 
     if ($value != "") { 
    //echo "Adding to blob: $key=$value\n"; 
    $data .= "$key=$value\n"; 
     } 
    } 

    $openssl_cmd = "($OPENSSL smime -sign -signer $MY_CERT_FILE -inkey $MY_KEY_FILE " . 
       "-outform der -nodetach -binary <<_EOF_\n$data\n_EOF_\n) | " . 
       "$OPENSSL smime -encrypt -des3 -binary -outform pem $PAYPAL_CERT_FILE"; 

      exec($openssl_cmd, $output, $error); 

     if (!$error) { 
     return implode("\n",$output); 

      print $hash; 
      } else { 
      return "ERROR: encryption failed"; 
      } 
       } 
      ?> 
+0

포스트 일부 코드 바랍니다 – antoniom

+0

이 당신이 JQuery와 또는 유사한 자바 스크립트 라이브러리를 사용해야 내 코드 – arok

답변

0

당신이 할 수있는 내 양식

 <form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target=_blank> 
    <input type="hidden" name="cmd" value="_s-xclick"> 
    <input type="hidden" name="encrypted" value="<?PHP echo $encrypted; ?>"> 

    <div class="paypal_list2"> 
    <input type="hidden"><h3>Enter the amount</h3><br /> </div> 
    <input id="total" class="paypal_input_1" type="text" value="" name="amount"> 

    <input class="paypal_btn" type="image"src="https://www.sandbox.paypal.com/en_US/i/btn/btn_paynowCC_LG.gif" name="submit" alt="PayPal - The safer, easier way to pay online!">         
    </form> 

입니다 사용자가 amount 을 변경할 때마다 Ajax 호출을 사용하여 encrypted 필드를 업데이트하십시오. jQuery를 같은 라이브러리 이렇게하면 간단하다

$('input[name=amount]').change(function() { 

    $.ajax({ 
    url: "http://mydomain.com/encrypter.php", 
    type: "POST", 
    data: { amount: $('input[name=amount]').val() } 
    }).done(function (data) { 
    $('input[name=enctypted]').val(data); 
    }); 

}); 
+0

입니다. 다음에서 jquery를 배울 수 있습니다. http://www.w3schools.com/jquery/jquery_ajax.asp – antoniom