0

我正在尝试创建信用卡支付页面。我在 (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, 0, data.Length);
        newStream.Close();

编辑:如果我在客户端(html)端做它工作正常,但我想在服务器端做。

4

1 回答 1

0

我们需要银行的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 {}
于 2021-05-16T14:58:38.427 回答