MasterCard bietet Clientbibliotheken für die Integration in seine Dienste. Die .NET -Pakete unterstützen jedoch nicht .NET Framework 4.5, deren Unterstützung 2016 endete:
In diesem Tutorial wird erläutert, wie der MasterCard -MDES -Kundendienst von einer .NET 4.5 -App konsumiert wird, indem eine API -Client -Bibliothek mit OpenAPI -Generator generiert und HTTP -Anforderungen mit einer .NET 4.5 -Version der OAUTH1 Signer LIB unterzeichnet wird.
Eine .NET 4.5 -Client -Bibliothek für den MDES -Kundendienst kann mit dem folgenden Befehl generiert werden:
java -jar openapi-generator-cli.jar generate -i mdes-customer-service-2.0.4.yaml -g csharp -c config.json -o mdes-customer-service-net45-tutorialconfig.json:
{
"targetFramework" : " v4.5 " ,
"packageName" : " YourApp.MdesCustomerClient "
}Siehe auch: OpenAPI -Generator (ausführbar)
Condition="Exists('....packages')" in HintPath -Elementen, Beispiel: < Reference Include = " RestSharp " >
< HintPath >....packagesRestSharp.105.1.0libnet45RestSharp.dll</ HintPath >
</ Reference >YourApp.Console hinzu:YourApp.MdesCustomerClientMastercard.Developer.OAuth1Signer.Core.dll (.NET 4.5 -Version)Mastercard.Developer.OAuth1Signer.RestSharp.dll (.NET 4.5 -Version)RestSharp.dllApiClient , um JSON zu verwendenStandardmäßig akzeptiert und gibt der MDES -Kundendienst XML -Nutzlasten zurück, wenn unser generierter Code erwartet, dass JSON verwendet wird.
Um den Dienst anzugeben, den wir JSON sprechen, erstellen Sie eine neue Klasse im Projekt YourApp.MdesCustomerClient , das die teilweise Methode InterceptRequest die folgende Weise definiert:
using RestSharp ;
namespace YourApp . MdesCustomerClient . Client
{
/// <summary>
/// Extends the generated ApiClient class.
/// </summary>
public partial class ApiClient
{
/// <summary>
/// Adds "Format=JSON" to the RestSharp request so that the service accepts and returns JSON instead of XML.
/// </summary>
partial void InterceptRequest ( IRestRequest request ) => request . AddQueryParameter ( "Format" , "JSON" ) ;
}
} class Program
{
static void Main ( string [ ] args )
{
// The request was aborted: Could not create SSL/TLS secure channel
ServicePointManager . Expect100Continue = true ;
ServicePointManager . SecurityProtocol = SecurityProtocolType . Tls12 ;
var consumerKey = "<insert consumer key>" ;
var signingKey = SecurityUtils . LoadPrivateKey ( "<insert PKCS#12 key file path>" , "<insert key alias>" , "<insert key password>" ) ; // Pass X509KeyStoragFlags here
var config = Configuration . Default ;
config . BasePath = "https://sandbox.api.mastercard.com/mdes/csapi/v2" ;
config . ApiClient . RestClient . Authenticator = new RestSharpOAuth1Authenticator ( consumerKey , signingKey , new Uri ( config . BasePath ) ) ;
var searchApi = new SearchApi ( config ) ;
var auditInfo = new AuditInfo ( "A1435477" , "John Smith" , "Any Bank" , "5555551234" ) ;
var tokenUniqueReference = "DWSPMC00000000010906a349d9ca4eb1a4d53e3c90a11d9c" ;
var searchRequest = new SearchRequest ( null , tokenUniqueReference , null , null , null , null , null , null , auditInfo ) ;
var response = searchApi . SearchPost ( new SearchRequestSchema ( searchRequest ) ) ;
System . Console . WriteLine ( response . SearchResponse . Accounts . Account [ 0 ] . Tokens . Token [ 0 ] ) ;
System . Console . ReadLine ( ) ;
}
}consumerKey , pkcs12KeyFilePath , signingKeyAlias , signingKeyAlias und keyStorageFlags .