private void button1_Click(object sender, EventArgs e) { //request params need to request to MoMo system string endpoint = textEndpoint.Text.Equals("") ? "https://test-payment.momo.vn/gw_payment/transactionProcessor" : textEndpoint.Text; string partnerCode = textPartnerCode.Text; string accessKey = textAccessKey.Text; string serectkey = "nqQiVSgDMy809JoPF6OzP5OdBUB550Y4"; string orderInfo = textOrderInfo.Text; string returnUrl = textReturn.Text; string notifyurl = textNotify.Text; string amount = textAmount.Text; string orderid = Guid.NewGuid().ToString(); string requestId = Guid.NewGuid().ToString(); string extraData = ""; //Before sign HMAC SHA256 signature string rawHash = "partnerCode=" + partnerCode + "&accessKey=" + accessKey + "&requestId=" + requestId + "&amount=" + amount + "&orderId=" + orderid + "&orderInfo=" + orderInfo + "&returnUrl=" + returnUrl + "¬ifyUrl=" + notifyurl + "&extraData=" + extraData; log.Debug("rawHash = " + rawHash); MoMoSecurity crypto = new MoMoSecurity(); //sign signature SHA256 string signature = crypto.signSHA256(rawHash, serectkey); log.Debug("Signature = " + signature); //build body json request JObject message = new JObject { { "partnerCode", partnerCode }, { "accessKey", accessKey }, { "requestId", requestId }, { "amount", amount }, { "orderId", orderid }, { "orderInfo", orderInfo }, { "returnUrl", returnUrl }, { "notifyUrl", notifyurl }, { "extraData", extraData }, { "requestType", "captureMoMoWallet" }, { "signature", signature } }; log.Debug("Json request to MoMo: " + message.ToString()); string responseFromMomo = PaymentRequest.sendPaymentRequest(endpoint, message.ToString()); JObject jmessage = JObject.Parse(responseFromMomo); log.Debug("Return from MoMo: " + jmessage.ToString()); DialogResult result = MessageBox.Show(responseFromMomo, "Open in browser", MessageBoxButtons.OKCancel); if (result == DialogResult.OK) { //yes... System.Diagnostics.Process.Start(jmessage.GetValue("payUrl").ToString()); } else if (result == DialogResult.Cancel) { //no... } }