Migrate with C#
This section explains how to edit the files in your application to use P12
authentication. If you do not have the files that are mentioned in this section, you can
find them in the most recent version of the C# SOAP toolkit in GitHub.
Follow these steps to upgrade your C# code:
- Add this service URL as a service reference to your project, and setN.NNNto the most recent server API version.https://ics2wstest.ic3.com/commerce/1.x/transactionProcessor/CyberSourceTransaction_N.NNN.wsdlThis step generates a Connected Services section in your project. It will also generate anapp.configfile for your project.
- Add these sections to the top of yourapp.configfile:<configuration> <configSections> <section name="toolkitProperties" type="System.Configuration.NameValueSectionHandler"/> </configSections> <toolkitProperties> <add key="MERCHANT_ID" value="<your_merchant_id>"/> <add key="KEY_ALIAS" value="<your_certificate_key_alias>"/> <add key="KEY_FILE" value="<your_certificate_file>"/> <add key="KEY_PASS" value="<your_certificate_password>"/> <add key="KEY_DIRECTORY" value="<path/to/certificate/file>"/> </toolkitProperties> </configuration>The<configSections>element must be the first dependent element in the<configurations>element.
- In the generatedapp.configfile, leave the<binding>section as it is.The<binding>section must look like this:<bindings> <basicHttpBinding> <binding name="ITransactionProcessor"> <security mode="Transport"/> </binding> </basicHttpBinding> </bindings>
- Add this dependency to thepackages.configfile:<packages> <package id="Portable.BouncyCastle" version="1.9.0" targetFramework="net472" /> </packages>
- Install this dependency by either running this command in your terminal or by another method:nuget install packages.config -OutputDirectory packages
- Add this package reference to your.csprojfile:
The steps for adding a new dependency can also be comleted through Visual Studio Package Manager.<Reference Include="BouncyCastle.Crypto, Version=1.9.0.0, Culture=neutral, PublicKeyToken=0e99375e54769942, processorArchitecture=MSIL"> <HintPath>packages\Portable.BouncyCastle.1.9.0\lib\net40\BouncyCastle.Crypto.dll</HintPath> </Reference> - Add your P12 certificate to the Key directory.ThisKEY_DIRECTORYlocation must be accessible to your code. Ensure that your code has permission to read this location.
- Copy these files from theCSharpSoapToolkit/CSharpSoapToolkitfolder to your project directory and import them to your project:
- Find these lines in your existing code:
Replace them with these lines:TransactionProcessorClient proc = new TransactionProcessorClient(); proc.ChannelFactory.Credentials.UserName.UserName = request.merchantID; proc.ChannelFactory.Credentials.UserName.Password = TRANSACTION_KEY; ReplyMessage reply = proc.runTransaction(request);TransactionProcessorClient proc = new TransactionProcessorClient(); proc.Endpoint.EndpointBehaviors.Add(new InspectorBehavior()); ReplyMessage reply = proc.runTransaction(request); - Find your installation of the .NET Framework.It is often in one of these locations:
- C:\Windows\Microsoft.NET\Framework\v4.0.30319(32-bit)
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319(64-bit)
- Use themsBuild.exefile that is already in your system to compile your project.<path_to_framework>\msBuild.exe <name_of_project>.csproj
- Run the project executable:bin\<configuration>\<project_name>.exe
- To confirm that your configuration is updated successfully, you can use a Bearer token that verifies that your request is authenticated. To do so, add this command after line 59 in theInspectorBehavior.csfile from theCSharpSoapToolkitfolder:Console.WriteLine(request.ToString());
What to Do Next
After completing the above migration steps, you must send a test authorization
request using your P12 certificate to validate your migration. For more information,
see Send a Test Request with P12 Authentication.