MNG Kargo Entegrasyon | C#
Merhaba, MNG Kargo API’lerini kullanmakla ilgili ufak bir çalışmam oldu, buradan paylaşmak istedim.
internal class Program
{
static void Main(string[] args)
{
MngGirisIstek objMngGiris = new MngGirisIstek()
{
customerNumber = "MNG'den verilen müşteri numarası", // Degisecek
identityType = 1,
password = "MNG'den verilen şifre"// Degisecek
};
string mngTokenCevap = ApiIstekGonder("https://testapi.mngkargo.com.tr/mngapi/api/", "token", "", objMngGiris);
Order _order = new Order();
_order.referenceId = "TekilFaturaNo-001"; // Degisecek
_order.barcode = "BBB00001";
_order.billOfLandingId = "İrsaliye 1";
_order.isCOD = 0;
_order.codAmount = 0;
_order.shipmentServiceType = 1;
_order.packagingType = 3;
_order.content = "İçerik 1";
_order.smsPreference1 = 0;
_order.smsPreference2 = 0;
_order.smsPreference3 = 0;
_order.paymentType = 1;
_order.deliveryType = 1;
_order.description = "Açıklama 1";
_order.marketPlaceShortCode = "";
_order.marketPlaceSaleCode = "";
_order.pudoId = "Açıklama 1";
OrderPieceList _orderpiecelist = new OrderPieceList();
_orderpiecelist.barcode = "MalzemeNo-001";// Degisecek
_orderpiecelist.desi = 2;
_orderpiecelist.kg = 2;
_orderpiecelist.content = "Malzeme Açıklama-001";
Recipient _recipient = new Recipient();
_recipient.customerId = "";
_recipient.refCustomerId = "";
_recipient.cityCode = 0;
_recipient.cityName = "Adana";
_recipient.districtName = "Pozantı";
_recipient.districtCode = 0;
_recipient.address = "Merkez Cami yanı";
_recipient.bussinessPhoneNumber = "5050000000";
_recipient.email = "musterieposta@zamkinos.net";
_recipient.taxOffice = "";
_recipient.taxNumber = "";
_recipient.fullName = "Zaim Akınöz";
_recipient.homePhoneNumber = "5050000000";
_recipient.mobilePhoneNumber = "5050000000";
MngCreateOrderIstek objMngCreateOrderIstek = new MngCreateOrderIstek()
{
order = _order,
orderPieceList = new List<OrderPieceList>() { _orderpiecelist },
recipient = _recipient
};
string mngCreateOrderCevap = ApiIstekGonder("https://testapi.mngkargo.com.tr/mngapi/api/standardcmdapi/", "createOrder", mngTokenCevap, objMngCreateOrderIstek);
}
public class MngGirisIstek
{
public string customerNumber { get; set; }
public string password { get; set; }
public int identityType { get; set; }
}
public class MngGirisCevap
{
public string jwt { get; set; }
public string refreshToken { get; set; }
public string jwtExpireDate { get; set; }
public string refreshTokenExpireDate { get; set; }
}
public static string ApiIstekGonder<T>(string apiAdres, string metotAdi, string token, T paramNesne)
{
using (HttpClient client = new HttpClient())
{
client.Timeout = new TimeSpan(0, 0, 360);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("x-ibm-client-secret", "MNG'den verilen secret key"); // Degisecek
client.DefaultRequestHeaders.Add("x-ibm-client-id", "MNG'den verilen client ID"); // Degisecek
if (!string.IsNullOrEmpty(token))
{
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
}
HttpContent content = new StringContent(JsonConvert.SerializeObject(paramNesne), Encoding.UTF8, "application/json");
HttpResponseMessage message = client.PostAsync(apiAdres + metotAdi, content).Result;
if (message.IsSuccessStatusCode)
{
if (string.IsNullOrEmpty(token))
{
return JsonConvert.DeserializeObject<MngGirisCevap>(message.Content.ReadAsStringAsync().Result).jwt;
}
else
{
return message.Content.ReadAsStringAsync().Result;
}
}
else
{
Console.WriteLine("Hata var!!!! ( " + message.Content.ToString() + " ) ");
}
return "";
}}
public class Order
{
public string referenceId { get; set; }
public string barcode { get; set; }
public string billOfLandingId { get; set; }
public int isCOD { get; set; }
public int codAmount { get; set; }
public int shipmentServiceType { get; set; }
public int packagingType { get; set; }
public string content { get; set; }
public int smsPreference1 { get; set; }
public int smsPreference2 { get; set; }
public int smsPreference3 { get; set; }
public int paymentType { get; set; }
public int deliveryType { get; set; }
public string description { get; set; }
public string marketPlaceShortCode { get; set; }
public string marketPlaceSaleCode { get; set; }
public string pudoId { get; set; }
}
public class OrderPieceList
{
public string barcode { get; set; }
public int desi { get; set; }
public int kg { get; set; }
public string content { get; set; }
}
public class Recipient
{
public string customerId { get; set; }
public string refCustomerId { get; set; }
public int cityCode { get; set; }
public string cityName { get; set; }
public string districtName { get; set; }
public int districtCode { get; set; }
public string address { get; set; }
public string bussinessPhoneNumber { get; set; }
public string email { get; set; }
public string taxOffice { get; set; }
public string taxNumber { get; set; }
public string fullName { get; set; }
public string homePhoneNumber { get; set; }
public string mobilePhoneNumber { get; set; }
}
public class MngCreateOrderIstek
{
public Order order { get; set; }
public List<OrderPieceList> orderPieceList { get; set; }
public Recipient recipient { get; set; }
}
Selamlar.
Merhaba, bende php ile yapmaya çalışıyorum. Ancak sürekli olarak kullanıcı adı ve şifresi hatalı yanıtı almaktayım. Aynı bilgiler ile online mng adresine giriş yapabiliyorum. Bu durumu yaşadınız mı acaba?
Merhaba, en doğrusu MNG tarafına sormak olur sanki. Belki kullanıcıya API yetkisi verilmemiştir. Ya da API kullanıcısı ile web arayüz kullanıcısı farklıdır. İlk aklıma gelenler bunlar.
Selamlar.
Admin bey siz bu kullanıcı bilgilerini nereden aldınız. O kadar saçma bir sistemleri var ki kimseyede ulaşamıyoruz
Merhaba hocam, aradan bayağı zaman geçti. Belki sistemlerini de değiştirmiş olabilirler.
Ben kullanıcı bilgilerini kurumun IT tarafındaki arkadaşlarından almıştım.
Selamlar.
Merhaba Emrah bey,
customerNumber ve password alabildiniz mi?