본문 바로가기
프로그래밍/Unity

Steam ISteamMicroTxnSandbox InitTxn

by neive 2019. 1. 30.
728x90


그냥 쉽게 할 수 있는 방법인 [실패1]은 이상하게도 파라메터 missing 이 난다 


<html><head><title>Bad Request</title></head><body><h1>Bad Request</h1>Required parameter 'orderid' is missing</body></html>


혹시나 URL Encoding 문제일 수도 있으니 Uri.EscapeUriString 을 써봤지만 역시나 위와 같은 현상.


마지막으로 WWWForm 을 사용해봤더니 아주 잘 된다


성공의 Uri.EscapeUriString("ko") 를 따라할 필요는 없다. 그냥 "ko" 로 해줘도 됨



예제


    IEnumerator TestPost()
    {
	// 실패1
        //UnityWebRequest www = UnityWebRequest.Post("https://partner.steam-api.com/ISteamMicroTxnSandbox/InitTxn/v3/?key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&orderid=86&steamid=XXXXXXXXXXXXXXXXX&appid=xxxxxx&itemcount=1&language=ko&currency=USD&itemid[0]=5000001&qty[0]=1&amount[0]=700&description[0]=테스트", "");

	// 실패2
        //string sUrl = Uri.EscapeUriString("https://partner.steam-api.com/ISteamMicroTxnSandbox/InitTxn/v3/?key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&orderid=86&steamid=XXXXXXXXXXXXXXXXX&appid=xxxxxx&itemcount=1&language=ko&currency=USD&itemid[0]=5000001&qty[0]=1&amount[0]=700&description[0]=테스트");
        //UnityWebRequest www = UnityWebRequest.Post(sUrl, "");

	// 성공
        WWWForm form = new WWWForm();
        form.AddField("key", "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
        form.AddField("orderid", "86");
        form.AddField("steamid", "XXXXXXXXXXXXXXXXX");
        form.AddField("appid", "xxxxxx");
        form.AddField("itemcount", "1");
        form.AddField("language", Uri.EscapeUriString("ko"));
        form.AddField("currency", Uri.EscapeUriString("usd"));
        form.AddField("itemid[0]", "5000001");
        form.AddField("qty[0]", Uri.EscapeUriString("1"));
        form.AddField("amount[0]", Uri.EscapeUriString("700"));
        form.AddField("description[0]", Uri.EscapeUriString("테스트"));

        UnityWebRequest www = UnityWebRequest.Post("https://partner.steam-api.com/ISteamMicroTxnSandbox/InitTxn/v3", form);

        yield return www.Send();

        if (www.isError)
        {
            Debug.LogFormat("POST ISteamMicroTxnSandbox Error : {0}", www.error);
        }
        else
        {
            Debug.Log("POST ISteamMicroTxnSandbox Done !!");
            Debug.LogFormat("ㄴ {0}", www.downloadHandler.text);

        }

    }



728x90

댓글