2016-08-01 1 views
1

Je suis en train de mettre en œuvre la méthode de paiement WorldPay dans mon projet MVC et d'essayer de faire un paiement de test, mais il me montre cette erreurproblème d'intégration Worldpay dans MVC

  • Vous avez terminé ou annulé votre paiement.
  • Vous avez désactivé les cookies. Pour terminer votre paiement, activez les cookies en modifiant les paramètres de confidentialité de votre navigateur. Puis retourner sur le site du marchand et renvoyer votre paiement.
  • Votre session sur WorldPay a expiré. Veuillez retourner au site marchand et renvoyer votre paiement.

code que je suis en train

<form action="https://secure-test.worldpay.com/wcc/purchase" method="post"> 
    <input name="address1" type="hidden" value="10 Downing Street" /> 
    <input name="amount" type="hidden" value="100.00" /> 
    <input name="cartId" type="hidden" value="DAW" /> 
    <input name="op-DPChoose-VISA^SSL" type="hidden" value="DAW" /> 
    <input name="cardNoInput" type="hidden" value="4444333322221111" /> 
    <input name="country" type="hidden" value="GB" /> 
    <input name="currency" type="hidden" value="GBP" /> 
    <input name="email" type="hidden" value="[email protected]" /> 
    <input name="instId" type="hidden" value="eca6aba9-16b2-4ad0-8019-1212bbb2f152" /> 
    <input name="name" type="hidden" value="Prime Minister" /> 
    <input name="postcode" type="hidden" value="SW1A 2AA" /> 
    <input name="tel" type="hidden" value="020 7925 0918" /> 
    <input name="testMode" type="hidden" value="100" /> 
    <input name="town" type="hidden" value="London" /> 
    <input name="cardCVV" type="hidden" value="1234" /> 
    <input name="cardExp.month" type="hidden" value="1" /> 
    <input name="cardExp.year" type="hidden" value="2017" /> 

    <div class="form-group"> 
     <button class="btn btn-success btn-lg" type="submit">WorldPay Test Checkout</button> 
    </div> 
</form> 

Répondre

0

Essayez ceci pour le test de placement de la commande par WorldPay

<form action="/complete" id="paymentForm" method="post"> 

    <span id="paymentErrors"></span> 

    <div class="form-row"> 
     <label>Name on Card</label> 
     <input data-worldpay="name" name="name" type="text" /> 
    </div> 
    <div class="form-row"> 
     <label>Card Number</label> 
     <input data-worldpay="number" size="20" type="text" /> 
    </div> 
    <div class="form-row"> 
     <label>CVC</label> 
     <input data-worldpay="cvc" size="4" type="text" /> 
    </div> 
    <div class="form-row"> 
     <label>Expiration (MM/YYYY)</label> 
     <input data-worldpay="exp-month" size="2" type="text" /> 
     <label>/</label> 
     <input data-worldpay="exp-year" size="4" type="text" /> 
    </div> 

    <input type="submit" value="Place Order" /> 

</form> 

Ensuite, ajoutez ce script dans votre fichier de vue

<script src="https://cdn.worldpay.com/v1/worldpay.js"></script> 
    <script type="text/javascript"> 
     var form = document.getElementById('paymentForm'); 

     Worldpay.useOwnForm({ 
      'clientKey': 'Your_Client_Key', 
      'form': form, 
      'reusable': false, 
      'callback': function (status, response) { 
       document.getElementById('paymentErrors').innerHTML = ''; 
       if (response.error) { 
        Worldpay.handleError(form, document.getElementById('paymentErrors'), response.error); 
       } else { 
        var token = response.token; 
        Worldpay.formBuilder(form, 'input', 'hidden', 'token', token); 
        console.log(token); 

        $.ajax({ 
         url: "/Home/payment/", 
         data: { token: token }, 
         success: function (data) { 

         }, 
         dataType: "html", 
         type: "POST", 
         cache: false, 
         error: function() { 
          //Error Message 
         } 
        }); 

        form.submit(); 
       } 
      } 
     }); 
</script> 

Maintenant, ajoutez ce code Order Placement dans votre contrôleur

public ActionResult payment(string token) 
{ 
    var restClient = new WorldpayRestClient("https://api.worldpay.com/v1", "Your_Service_Key"); 

    var orderRequest = new OrderRequest() 
    { 
     token = token, 
     amount = 500, 
     currencyCode = CurrencyCode.GBP.ToString(), 
     name = "test name", 
     orderDescription = "Order description", 
     customerOrderCode = "Order code" 

    }; 

    var address = new Address() 
    { 
     address1 = "123 House Road", 
     address2 = "A village", 
     city = "London", 
     countryCode = CountryCode.GB, 
     postalCode = "EC1 1AA" 
    }; 

    orderRequest.billingAddress = address; 

    try 
    { 
     OrderResponse orderResponse = restClient.GetOrderService().Create(orderRequest); 
     Console.WriteLine("Order code: " + orderResponse.orderCode); 
    } 
    catch (WorldpayException e) 
    { 
     Console.WriteLine("Error code:" + e.apiError.customCode); 
     Console.WriteLine("Error description: " + e.apiError.description); 
     Console.WriteLine("Error message: " + e.apiError.message); 
    } 
    return Json(null, JsonRequestBehavior.AllowGet); 
} 
+1

Nous vous remercions de votre solution. C'est juste sauvé mon temps –