MasterCard menyediakan perpustakaan klien untuk berintegrasi dengan layanannya, tetapi paket .net tidak mendukung .NET Framework 4.5, yang dukungannya berakhir pada 2016:
Tutorial ini menjelaskan cara mengkonsumsi layanan pelanggan MasterCard MDES dari aplikasi .NET 4.5 dengan menghasilkan perpustakaan klien API dengan generator OpenAPI dan menandatangani permintaan HTTP menggunakan versi .NET 4.5 dari OAuth1 Signer Lib.
Perpustakaan klien .NET 4.5 untuk layanan pelanggan MDES dapat dihasilkan menggunakan perintah berikut:
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 "
}Lihat juga: OpenAPI Generator (dapat dieksekusi)
Condition="Exists('....packages')" dalam elemen HintPath , contoh: < Reference Include = " RestSharp " >
< HintPath >....packagesRestSharp.105.1.0libnet45RestSharp.dll</ HintPath >
</ Reference >YourApp.Console :YourApp.MdesCustomerClientMastercard.Developer.OAuth1Signer.Core.dll (.net 4.5 versi)Mastercard.Developer.OAuth1Signer.RestSharp.dll (.net 4.5 versi)RestSharp.dllApiClient untuk menggunakan JSONSecara default, layanan pelanggan MDES menerima dan mengembalikan muatan XML ketika kode yang dihasilkan kami mengharapkan JSON akan digunakan.
Untuk menunjukkan layanan yang kami ajak bicara JSON, buat kelas baru di proyek YourApp.MdesCustomerClient yang mendefinisikan metode parsial InterceptRequest dengan cara berikut:
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 Anda sendiri, pkcs12KeyFilePath , signingKeyAlias , signingKeyAlias dan keyStorageFlags .