微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

表单发布后,Asp.net 重定向到银行短信验证 (3DPay) 页面

如何解决表单发布后,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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?