Интеграция Paytm - SendOTP API - ошибка 434 неверного запроса - PullRequest
0 голосов
/ 23 октября 2019

Работа над интеграцией Paytm с приложением C #.

Я использую поток автоматического дебетования для целей интеграции.

В рамках этого потока необходимо вызвать API SENDOTP, предоставляемый Paytm, дляотправка OTP на мобильный телефон клиента.

Я использовал код, полученный с сайта разработчиков Paytm.

https://developer.paytm.com/docs/send-otp-api/

.Net Код:

String url = "https://accounts -uat.paytm.com / signin / otp ";

Dictionary<String, String> paytmParams = new Dictionary<String, String>();
paytmParams.Add("email", xxxxxxx@xxxxxxx.xxx);
paytmParams.Add("phone", xxxxxxxxxx);
paytmParams.Add("clientId", xxxxxxxx-xxx);
paytmParams.Add("scope", wallet);
paytmParams.Add("responseType", token);
try {
    String postData = "JsonData="+ new JavaScriptSerializer().Serialize(paytmParams);
    HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
    webRequest.Headers.Add("ContentType", "application/json");
    webRequest.Method = "POST";
    using (StreamWriter streamWriter = new StreamWriter(webRequest.GetRequestStream())) {
        streamWriter.Write(postData);
        streamWriter.Flush();
        streamWriter.Close();
    }
    string string responseData = string.Empty;
    using (StreamReader responseReader = new StreamReader(webRequest.GetResponse())) {
        responseData = responseReader.ReadToEnd();
    }
} catch (Exception ex) {
    Response.Write("Exception message: " + ex.Message.ToString());
}

Ниже приведен формат запроса:

JsonData = {
    "email":"login2kkr@gmail.com",
    "phone":"XXXXXXXXXX",
    "clientId":"merchant-ABC",
    "scope":"Wallet",
    "responseType":"Token"
    }

Ответ:

{
    "status":"FAILURE",
    "responseCode":"434",
    "message":"Bad Request"
}

С уважением, Кишор.

1 Ответ

0 голосов
/ 24 октября 2019

Я пытался использовать приведенный ниже код и работал для меня.

string url = "https://accounts.paytm.com/signin/otp";

        Dictionary<string, string> paytmParams = new Dictionary<string, string>();
        paytmParams.Add("email", "xxxxxxx@xxxxx.com");
        paytmParams.Add("phone", "xxxxxxxxxxx");
        paytmParams.Add("clientId", "paytm-web-secure");
        paytmParams.Add("scope", "wallet");
        paytmParams.Add("responseType", "token");

        try
        {
            string postData = new JavaScriptSerializer().Serialize(paytmParams);

            HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
            webRequest.Headers.Add("ContentType", "application/json");
            webRequest.Method = "POST";

            using (StreamWriter streamWriter = new StreamWriter(webRequest.GetRequestStream()))
            {
                streamWriter.Write(postData);
                streamWriter.Flush();
                streamWriter.Close();
            }
            string responseData = string.Empty;
            string statusCode = string.Empty;
            string state = string.Empty;

            using (StreamReader responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream()))
            {
                responseData = responseReader.ReadToEnd();
            }
        }
        catch (Exception ex)
        {
            Response.Write("Exception message: " + ex.Message.ToString());
        }
...