2016-08-01 11 views
1

Ich versuche worldpay Zahlungsmethode in meinem MVC-Projekt zu implementieren und zu versuchen, eine Testzahlung zu machen, aber es zeigt mir diesen FehlerWorldpay Integrationsproblem in MVC

  • Sie abgeschlossen haben oder Ihre Zahlung stornieren.
  • Sie haben Cookies deaktiviert. Um Ihre Zahlung abzuschließen, aktivieren Sie Cookies, indem Sie die Datenschutzeinstellungen in Ihrem Browser ändern. Dann geben Sie auf die Website des Händlers zurück und reichen Sie Ihre Zahlung erneut ein.
  • Ihre Sitzung bei WorldPay ist abgelaufen. Bitte kehren Sie zur Händler-Website zurück und reichen Sie Ihre Zahlung erneut ein.

Code, den ich

<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> 

Antwort

0

versuche Versuchen Sie, diese für Testauftragserteilung durch 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> 

Dann dieses Skript-Datei in Ihrer Ansicht hinzufügen

<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> 

Jetzt hinzufügen diesen Bestellplatzierungscode in Ihrem Controller

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

Vielen Dank für Ihre Lösung. Es hat nur meine Zeit gerettet –