// Http Request to Momo Server public void sendPaymentRequest() { var reqtime = Utils.GetTimeStamp().ToString(); var transid = Guid.NewGuid().ToString(); var embeddata = new {}; var order = new Dictionary <string, string>(); order.Add("appid", appid); order.Add("appuser", "demo"); order.Add("apptime", Utils.GetTimeStamp().ToString()); order.Add("amount", totalCost.ToString()); order.Add("apptransid", DateTime.Now.ToString("yyMMdd") + "_" + transid); order.Add("embeddata", JsonConvert.SerializeObject(embeddata)); order.Add("item", orderInfo); order.Add("description", "Smart Food Court ZaloPay demo"); order.Add("bankcode", "zalopayapp"); var data = appid + "|" + order["apptransid"] + "|" + order["appuser"] + "|" + order["amount"] + "|" + order["apptime"] + "|" + order["embeddata"] + "|" + order["item"]; order.Add("mac", HmacHelper.Compute(ZaloPayHMAC.HMACSHA256, key1, data)); var orderJSON = Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(order)); Dictionary <string, string> param = new Dictionary <string, string>(); param.Add("appid", appid); param.Add("reqtime", reqtime); param.Add("mac", HmacHelper.Compute(ZaloPayHMAC.HMACSHA256, key1, appid + "|" + reqtime)); payUrl = qrUrl = "https://sbgateway.zalopay.vn/openinapp?order=" + Convert.ToBase64String(orderJSON); }
public async Task <string> CreateOrderAsync(Booking booking, long amount, string description) { var transid = Guid.NewGuid().ToString(); var embeddata = new {}; var items = new object[] {}; var param = new Dictionary <string, string>(); param.Add("appid", _appid); param.Add("appuser", booking.Owner.Name); param.Add("apptime", Utils.GetTimeStamp().ToString()); // Quick hack to convert to VND :)) param.Add("amount", Math.Ceiling(amount * 23193d).ToString()); param.Add("apptransid", DateTime.Now.ToString("yyMMdd") + "_" + transid); param.Add("embeddata", JsonConvert.SerializeObject(embeddata)); param.Add("item", JsonConvert.SerializeObject(items)); param.Add("description", description); param.Add("bankcode", "zalopayapp"); var data = _appid + "|" + param["apptransid"] + "|" + param["appuser"] + "|" + param["amount"] + "|" + param["apptime"] + "|" + param["embeddata"] + "|" + param["item"]; param.Add("mac", HmacHelper.Compute(ZaloPayHMAC.HMACSHA256, _key1, data)); var result = await HttpHelper.PostFormAsync(_createOrderUrl, param); foreach (var entry in result) { Console.WriteLine("{0} = {1}", entry.Key, entry.Value); } return(result["orderurl"] as string); }
public static string Compute(string data, string key = "") { if (string.IsNullOrEmpty(key)) { key = Constants.KEY1; } return(HmacHelper.Compute(ZaloPayHMAC.HMACSHA256, key, data)); }
public static string Compute(string data, string key = "") { if (string.IsNullOrEmpty(key)) { key = ConfigurationManager.AppSettings["Key1"]; } return(HmacHelper.Compute(ZaloPayHMAC.HMACSHA256, key, data)); }
public static bool VerifyCallback(string data, string requestMac) { try { string mac = HmacHelper.Compute(ZaloPayHMAC.HMACSHA256, ConfigurationManager.AppSettings["Key2"], data); return(requestMac.Equals(mac)); } catch { return(false); } }
public static bool VerifyCallback(string data, string requestMac) { try { string mac = HmacHelper.Compute(ZaloPayHMAC.HMACSHA256, Constants.KEY1, data); return(requestMac.Equals(mac)); } catch { return(false); } }
public Task <string> CreateOrderAsync(Booking booking, long amount, string description) { string secret = "MbRYDmFmFTVl11Dp8KqUYmeSPpUnEYnr"; long amountVnd = amount * 21000; string partnerCode = "MOMOLEEQ20210615"; string accessKey = "XGqCNhlAZAtL0lGD"; string requestId = Utils.GetTimeStamp().ToString(); string orderId = Guid.NewGuid().ToString(); string orderInfo = description; string url = (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Production"? "https://etour-client.azurewebsites.net/booking/momoconfirm" : "https://localhost:44323/booking/momoconfirm") + $"?id={booking.ID}"; string requestType = "captureMoMoWallet"; string extraData = ""; var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://test-payment.momo.vn/gw_payment/transactionProcessor"); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { string json = new JavaScriptSerializer().Serialize(new { partnerCode, accessKey, requestId, amount = amountVnd.ToString(), orderId, orderInfo, returnUrl = url, notifyUrl = url, requestType, signature = HmacHelper.Compute(key: secret, message: $"partnerCode={partnerCode}&accessKey={accessKey}&requestId={requestId}&amount={amountVnd.ToString()}&orderId={orderId}&orderInfo={orderInfo}&returnUrl={url}¬ifyUrl={url}&extraData={extraData}"), extraData }); streamWriter.Write(json); } var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var result = streamReader.ReadToEnd(); Console.WriteLine(result); return(Task.FromResult <string>(((dynamic) new JavaScriptSerializer().DeserializeObject(result)).payUrl)); } }
public string ComputeMac() { return(HmacHelper.Compute(ZaloPayHMAC.HMACSHA256, Constants.APP_ID, GetMacData())); }
public string ComputeMac() { return(HmacHelper.Compute(ZaloPayHMAC.HMACSHA256, ConfigurationManager.AppSettings["Key1"], GetMacData())); }