MasterCard fournit des bibliothèques clients pour s'intégrer à ses services, mais les packages .NET ne prennent pas en charge .NET Framework 4.5, dont le support s'est terminé en 2016:
Ce didacticiel explique comment consommer le service client MasterCard MDES à partir d'une application .NET 4.5 en générant une bibliothèque client API avec un générateur OpenAPI et en signant des demandes HTTP à l'aide d'une version .NET 4.5 de la Signer LIB OAuth1.
Une bibliothèque client .NET 4.5 pour le service client MDES peut être générée à l'aide de la commande suivante:
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 "
}Voir aussi: Générateur OpenAPI (exécutable)
Condition="Exists('....packages')" dans les éléments HintPath , exemple: < Reference Include = " RestSharp " >
< HintPath >....packagesRestSharp.105.1.0libnet45RestSharp.dll</ HintPath >
</ Reference >YourApp.Console :YourApp.MdesCustomerClientMastercard.Developer.OAuth1Signer.Core.dll (.net 4.5 version)Mastercard.Developer.OAuth1Signer.RestSharp.dll (version .net 4.5)RestSharp.dllApiClient pour utiliser JSONPar défaut, le service client MDES accepte et renvoie les charges utiles XML lorsque notre code généré s'attend à ce que JSON soit utilisé.
Pour indiquer le service que nous parlons JSON, créez une nouvelle classe dans le projet YourApp.MdesCustomerClient définissant la méthode partielle InterceptRequest la manière suivante:
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 et keyStorageFlags .