2013-02-28 5 views
2

Je suis newbie à paypal. Je souhaite mettre en place une API de paiement direct pour mon site web. Moyens que je vais avoir un bouton d'achat quand je clique sur qu'il va se développer et dans ce iframe je vais avoir l'url pour le paiement direct paypal. J'ai écrit le code commeComment mettre en œuvre DoDirectPayment dans paypal en utilisant C#

 string address = "https://api-3t.sandbox.paypal.com/nvp?USER=user&COUNTRYCODE=US&ZIP=95131&STATE=CA&CITY=San Jose&FIRSTNAME=John&LASTNAME=Smith&STREET=1asfasdfSt&CVV2=123&ACCT=4683075410516684&IPADDRESS=192.168.0.62&PWD=1357635822&EXPDATE=042011&VERSION=58.0&SIGNATURE=signature&METHOD=DoDirectPayment&CREDITCARDTYPE=Visa&AMT=10.00&PAYMENTACTION=Sale&RETURNURL=http://returnurl&CANCELURL=http://cancnelurl"; 

     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address); 
     HttpWebResponse response2 = (HttpWebResponse)request.GetResponse(); 
     Stream stream = response2.GetResponseStream(); 
     StreamReader rdr = new StreamReader(stream); 
     string req = rdr.ReadToEnd(); 

Mais le req contient le message d'échec. Je ne sais pas quelles informations d'identification me manquent. Toute aide est appréciée.

+0

Que dit le message d'erreur? Vous devrez peut-être encoder URL les paramètres sur la chaîne de requête –

+0

La réponse contient 'TIMESTAMP = 2013% 2d02% 2d28T13% 3a05% 3a22Z & CORRELATIONID = ddda63e952b88 & ACK = Échec & VERSION = 58% 2e0 & BUILD = 5294323 & L_ERRORCODE0 = 10562 & L_SHORTMESSAGE0 = Invalid% 20Data & L_LONGMESSAGE0 = Ce% 20transaction% 20cannot% 20be% 20processed% 2e% 20Please% 20enter% 20a% 20valid% 20credit% 20card% 20expiration% 20year% 2e & L_SEVERITYCODE0 = Erreur & AMT = 10% 2e00 & CURRENCYCODE = USD' – Pa1

+0

lorsque j'écode l'url il reçoit une exception Invalid Uri – Pa1

Répondre

0

Le message d'erreur indique que c'est la date d'expiration qui pose problème.

Vous passez EXPDATE = 042011 qui me ressemble comme une date dans le passé.

Edit:

10500 Configuration non valide Cette opération ne peut pas être traitée en raison d'une configuration marchande non valide. Se produit lorsque vous n'avez pas accepté le contrat de facturation.

10501 Configuration invalide Cette transaction ne peut pas être traitée en raison d'une configuration de marchand invalide.

Se produit lorsque le contrat de facturation est désactivé ou inactif.

+0

J'ai changé la date à l'avenir mais pas de succès – Pa1

+0

Même erreur ou différent? –

+0

Configuration marchande invalide je vais attendre avec impatience que – Pa1

0

Comme il a déjà été mentionné, l'erreur que vous obtenez est parce que pro n'est pas activé sur le compte pour lequel vous utilisez les informations d'identification. Express Checkout ne nécessite aucun accord de facturation spécial, c'est pourquoi vos appels Express Checkout fonctionnaient.

J'ai activé le service pro sur votre compte test sandbox, et vous devriez pouvoir le tester maintenant.

+0

Yah merci. En fait, mon exigence est le paiement direct sur le même site sans rediriger vers la page paypal. Que dois-je ajouter à mon code pour obtenir cette fonctionnalité. Désolé pour ma langue. – Pa1

+0

Vous devez créer une interface pour que vos acheteurs saisissent les informations de facturation. Ensuite, postez les données sur votre page qui exécute l'appel de l'API DoDirectPayment, puis analysez la réponse.Extrayez les SDK PayPal pour un exemple de travail, et le code est déjà là pour l'interface de l'acheteur. –

+0

Y a-t-il un modèle pour la page html? Où puis-je trouver le modèle – Pa1

0
<html> 
<head> 
<title>PayPal Merchant SDK - DoDirectPayment API</title> 
<link rel="stylesheet" href="../Common/sdk.css"/> 
<script language="JavaScript"> 
    function generateCC(){ 
     var cc_number = new Array(16); 
     var cc_len = 16; 
     var start = 0; 
     var rand_number = Math.random(); 

     switch(document.DoDirectPaymentForm.creditCardType.value) 
     { 
      case "Visa": 
       cc_number[start++] = 4; 
       break; 
      case "Discover": 
       cc_number[start++] = 6; 
       cc_number[start++] = 0; 
       cc_number[start++] = 1; 
       cc_number[start++] = 1; 
       break; 
      case "MasterCard": 
       cc_number[start++] = 5; 
       cc_number[start++] = Math.floor(Math.random() * 5) + 1; 
       break; 
      case "Amex": 
       cc_number[start++] = 3; 
       cc_number[start++] = Math.round(Math.random()) ? 7 : 4 ; 
       cc_len = 15; 
       break; 
     } 

     for (var i = start; i < (cc_len - 1); i++) { 
      cc_number[i] = Math.floor(Math.random() * 10); 
     } 

     var sum = 0; 
     for (var j = 0; j < (cc_len - 1); j++) { 
      var digit = cc_number[j]; 
      if ((j & 1) == (cc_len & 1)) digit *= 2; 
      if (digit > 9) digit -= 9; 
      sum += digit; 
     } 

     var check_digit = new Array(0, 9, 8, 7, 6, 5, 4, 3, 2, 1); 
     cc_number[cc_len - 1] = check_digit[sum % 10]; 

     document.DoDirectPaymentForm.creditCardNumber.value = ""; 
     for (var k = 0; k < cc_len; k++) { 
      document.DoDirectPaymentForm.creditCardNumber.value += cc_number[k]; 
     } 
    } 
</script> 
</head> 
<body> 
    <div id="wrapper"> 
     <div id="header"> 
      <h3>DoDirectPayment</h3> 
      <div id="apidetails">Process a credit card payment.</div> 
     </div> 
     <div id="request_form">  
      <form method="POST" action="DoDirectPayment.php" 
       name="DoDirectPaymentForm"> 
       <div class="params"> 
        <div class="param_name">Payment type</div> 
        <div class="param_value"> 
         <select name="paymentType"> 
          <option value="Sale" selected="selected">Sale</option> 
          <option value="Authorization">Authorization</option> 
         </select> 
        </div> 
       </div> 
       <div class="params"> 
        <div class="param_name">First name</div> 
        <div class="param_value"> 
         <input type="text" name="firstName" value="John"/> 
        </div> 
       </div> 
       <div class="params"> 
        <div class="param_name">Last name</div> 
        <div class="param_value"> 
         <input type="text" name="lastName" value="Doe"/> 
        </div> 
       </div>   
       <div class="params"> 
        <div class="param_name">Card type</div> 
        <div class="param_value"> 
         <select name="creditCardType" 
          onChange="javascript:generateCC(); return false;"> 
           <option value="Visa" selected="selected">Visa</option> 
           <option value="MasterCard">MasterCard</option> 
           <option value="Discover">Discover</option> 
           <option value="Amex">American Express</option> 
         </select>    
        </div> 
       </div> 
       <div class="params"> 
        <div class="param_name">Card number</div> 
        <div class="param_value"> 
         <input type="text" size="19" maxlength="19" name="creditCardNumber"> 
        </div> 
       </div> 
       <div class="params"> 
        <div class="param_name">Expiry date</div> 
        <div class="param_value"> 
         <select name="expDateMonth"> 
          <option value="01">01</option> 
          <option value="02">02</option> 
          <option value="03">03</option> 
          <option value="04">04</option> 
          <option value="05">05</option> 
          <option value="06">06</option> 
          <option value="07">07</option> 
          <option value="08">08</option> 
          <option value="09">09</option> 
          <option value="10">10</option> 
          <option value="11">11</option> 
          <option value="12">12</option> 
         </select> 
         <select name="expDateYear">     
          <option value="2013">2013</option> 
          <option value="2014" selected>2014</option> 
          <option value="2015">2015</option> 
          <option value="2016">2016</option> 
          <option value="2017">2017</option> 
          <option value="2018">2018</option> 
          <option value="2019">2019</option> 
          <option value="2020">2020</option>      
         </select> 
        </div> 
       </div> 
       <div class="params"> 
        <div class="param_name">CVV</div> 
        <div class="param_value"> 
         <input type="text" size="3" maxlength="4" name="cvv2Number" value="962"> 
        </div> 
       </div> 
       <div class="params"> 
        <div class="param_name">Amount</div> 
        <div class="param_value"> 
         <input type="text" size="5" maxlength="7" name="amount" value="1.00"> USD 
        </div> 
       </div>    
       <div class="section_header">Billing address</div> 
       <div class="params"> 
        <div class="param_name">Address 1</div> 
        <div class="param_value"> 
         <input type="text" size="25" maxlength="100" name="address1" value="1 Main St"> 
        </div> 
       </div> 
       <div class="params"> 
        <div class="param_name">Address 2 (optional)</div> 
        <div class="param_value"> 
         <input type="text" size="25" maxlength="100" name="address2" value=""> 
        </div> 
       </div> 
       <div class="params"> 
        <div class="param_name">City</div> 
        <div class="param_value"> 
         <input type="text" size="25" maxlength="40" name="city" value="San Jose"> 
        </div> 
       </div> 
       <div class="params"> 
        <div class="param_name">State</div> 
        <div class="param_value"> 
         <select id=state name="state"> 
          <option value=""></option> 
          <option value="AK">AK</option> 
          <option value="AL">AL</option> 
          <option value="AR">AR</option> 
          <option value="AZ">AZ</option> 
          <option value="CA" selected>CA</option> 
          <option value="CO">CO</option> 
          <option value="CT">CT</option> 
          <option value="DC">DC</option> 
          <option value="DE">DE</option> 
          <option value="FL">FL</option> 
          <option value="GA">GA</option> 
          <option value="HI">HI</option> 
          <option value="IA">IA</option> 
          <option value="ID">ID</option> 
          <option value="IL">IL</option> 
          <option value="IN">IN</option> 
          <option value="KS">KS</option> 
          <option value="KY">KY</option> 
          <option value="LA">LA</option> 
          <option value="MA">MA</option> 
          <option value="MD">MD</option> 
          <option value="ME">ME</option> 
          <option value="MI">MI</option> 
          <option value="MN">MN</option> 
          <option value="MO">MO</option> 
          <option value="MS">MS</option> 
          <option value="MT">MT</option> 
          <option value="NC">NC</option> 
          <option value="ND">ND</option> 
          <option value="NE">NE</option> 
          <option value="NH">NH</option> 
          <option value="NJ">NJ</option> 
          <option value="NM">NM</option> 
          <option value="NV">NV</option> 
          <option value="NY">NY</option> 
          <option value="OH">OH</option> 
          <option value="OK">OK</option> 
          <option value="OR">OR</option> 
          <option value="PA">PA</option> 
          <option value="RI">RI</option> 
          <option value="SC">SC</option> 
          <option value="SD">SD</option> 
          <option value="TN">TN</option> 
          <option value="TX">TX</option> 
          <option value="UT">UT</option> 
          <option value="VA">VA</option> 
          <option value="VT">VT</option> 
          <option value="WA">WA</option> 
          <option value="WI">WI</option> 
          <option value="WV">WV</option> 
          <option value="WY">WY</option> 
          <option value="AA">AA</option> 
          <option value="AE">AE</option> 
          <option value="AP">AP</option> 
          <option value="AS">AS</option> 
          <option value="FM">FM</option> 
          <option value="GU">GU</option> 
          <option value="MH">MH</option> 
          <option value="MP">MP</option> 
          <option value="PR">PR</option> 
          <option value="PW">PW</option> 
          <option value="VI">VI</option> 
         </select> 
        </div> 
       </div> 
       <div class="params"> 
        <div class="param_name">Zip code</div> 
        <div class="param_value"> 
         <input type="text" size="10" maxlength="10" name="zip" value="95131"> (5 or 9 digits) 
        </div> 
       </div> 
       <div class="params"> 
        <div class="param_name">Country</div> 
        <div class="param_value"> 
         <input type="text" size="10" maxlength="10" name="country" value="US"> 
        </div> 
       </div> 
       <div class="params"> 
        <div class="param_name">Phone</div> 
        <div class="param_value"> 
         <input type="text" size="10" maxlength="10" name="phone" value=""> 
        </div> 
       </div> 
       <div class="params"> 
        <div class="param_name">IPN listener URL</div> 
        <div class="param_value"> 
         <input type="text" size="80" maxlength="200" name="notifyURL" value=""> 
        </div> 
       </div> 

       <div class="params"> 
        <div class="param_name"></div> 
        <div class="param_value"> 
        </div> 
       </div> 
       <div class="submit"> 
        <input type="submit" name="DoDirectPaymentBtn" 
         value="DoDirectPayment" /> 
       </div>       
      </form> 
      <a href="../index.php">Home</a> 
     </div> 
    </div> 
    <script language="javascript"> 
     generateCC(); 
    </script> 
</body> 
</html> 
Questions connexes