Cybersource (WCF)

General Topics > Payment Gateways
Smith Cart is integrated with the Cybersource payment gateway.  Smith Cart is integrated with Cybersource using the Cybersource WCF .NET SOAP toolkit integration method
 
The following credentials are required by the Cybersource gateway:
 
Merchant ID - This is a required field for the Cybersource gateway.  Merchant ID is your unique gateway id that identifies you with the Cybersource gateway provider.
 
Transaction Key - This is the gateway password and is a required field.   
 
To get your Cybersource gateway Merchant ID and Transaction Key you need to login to your Cybersource Virtual Terminal or Contact Cybersource directly.  You should generate two transaction security keys—one for the CyberSource production environment and one for the test environment.
 
Web.Config Entries
 
In order for the Cybersource gateway to work properly you will need to update your web.config file and add the following sections:
 
1 . Find the <system.serviceModel> node and within it add the following two bindings in the <basicHttpBinding> section:

<binding name="ITransactionProcessor" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
  <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
  <security mode="TransportWithMessageCredential">
    <transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
    <message clientCredentialType="UserName" algorithmSuite="Default"/>
  </security>
</binding>

<binding name="ITransactionProcessor1" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
  <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
  <security mode="TransportWithMessageCredential">
    <transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
    <message clientCredentialType="UserName" algorithmSuite="Default"/>
  </security>
</binding>
Find the <system.serviceModel> node and within it add the following two endpoints in the <client> section:

<client>
  <endpoint address="https://ics2wstest.ic3.com/commerce/1.x/transactionProcessor" binding="basicHttpBinding" bindingConfiguration="ITransactionProcessor" contract="CyberSource.ITransactionProcessor" name="portXML"/>

  <!--<endpoint address="https://ics2ws.ic3.com/commerce/1.x/transactionProcessor" binding="basicHttpBinding" bindingConfiguration="ITransactionProcessor" contract="CybersourceTxn.ITransactionProcessor" name="portXML" />-->
</client>



Save the changes to your web.config file


Please Note:  In step 2 above there are 2 endpoints;  the first one, which is uncommented is the Cybersource “test” endpoint.  The second endpoint which is commented is the “Live” endpoint.
When you're ready to go live, you will need to comment the “test” endpoint and uncomment the “live” endpoint as follows:

<client>
  <!--<endpoint address="https://ics2wstest.ic3.com/commerce/1.x/transactionProcessor" binding="basicHttpBinding" bindingConfiguration="ITransactionProcessor" contract="CyberSource.ITransactionProcessor" name="portXML"/>-->

  <endpoint address="https://ics2ws.ic3.com/commerce/1.x/transactionProcessor" binding="basicHttpBinding" bindingConfiguration="ITransactionProcessor" contract="CybersourceTxn.ITransactionProcessor" name="portXML" />
</client>