如何解决表单发布后,Asp.net 重定向到银行短信验证 (3DPay) 页面
我正在尝试创建信用卡付款页面。 我在后面的代码(C#)中发布表单并成功从银行获取验证短信。 但它不会重定向到银行短信验证页面,因此无法输入验证码。 那我该怎么办?
Here is my code under the Pay button:
String shopCode = "SHOPCODE";
String purchaseAmount = "ORDER PRICE";
String currency = "CURRENCY";
String orderId = "ORDERID";
String okUrl = "REDIRECT PAGE AFTER SMS VERIFICATION COMPLETED SUCCESSFULLY";
String failUrl = "REDIRECT PAGE IF SMS VERIFICATION FAILS";
String rnd = DateTime.Now.ToString();
String installmentCount = "3";
String txnType = "txnType";
String merchantPass = "merchantpass";
String str = shopCode + orderId + purchaseAmount + okUrl + failUrl + txnType + installmentCount + rnd + merchantPass;
System.Security.Cryptography.SHA1 sha = new System.Security.Cryptography.SHA1CryptoServiceProvider();
byte[] bytes = System.Text.Encoding.GetEncoding("ISO-8859-9").GetBytes(str);
byte[] hashingbytes = sha.ComputeHash(bytes);
String hash = Convert.ToBase64String(hashingbytes);
String cardnumber = "CREDIT CARD NUMBER";
String expiry = "EXPIRY DATE";
String CVCCVV = "CVCNUMBER";
String securetype = "3DPay";
String lang = "language";
ASCIIEncoding encoding = new ASCIIEncoding();
string postData = "Pan=" + cardnumber;
postData += ("&Expiry=" + expiry);
postData += ("&Cvv2=" + CVCCVV);
postData += ("&ShopCode=" + shopCode);
postData += ("&PurchAmount=" + purchaseAmount);
postData += ("&Currency=" + currency);
postData += ("&OrderId=" + orderId);
postData += ("&OkUrl=" + okUrl);
postData += ("&FailUrl=" + failUrl);
postData += ("&Rnd=" + rnd);
postData += ("&Hash=" + hash);
postData += ("&TxnType=" + txnType);
postData += ("&InstallmentCount=" + installmentCount);
postData += ("&SecureType=" + securetype);
postData += ("&Lang=" + lang);
byte[] data = encoding.GetBytes(postData);
HttpWebRequest myRequest =
(HttpWebRequest)WebRequest.Create("POSURL");
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream = myRequest.GetRequestStream();
newStream.Write(data,data.Length);
newStream.Close();
编辑: 如果我在客户端 (html) 端执行它可以正常工作,但我想在服务器端执行它。
解决方法
我们需要银行的json信息
try
{
HttpClient clients = new HttpClient();
clients.Timeout = TimeSpan.FromSeconds(2);
HttpResponseMessage _response = await clients.GetAsync("banksmspage");
_response.EnsureSuccessStatusCode();
string responseBody = await _response.Content.ReadAsStringAsync();
dynamic json = JObject.Parse(responseBody);
string smscode = json.jsontitle.smscode;
if (smscode != null)
{
if (smscode == UsersmsEnterString)
{
Response.Redirect("BankpageURL");
}
else
{
Response.Redirect("ErrorURL");
}
}
}
catch {}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。