Li

Delete

Are you sure you want to delete this?

EasyPayModel


Date
20211011
Target
C_028
Title
kakaopay 결제준비 curl을 C#/.NET으로 변환
Contents
이 문서전에 31번을 참고한다. 순서가 뒤죽박죽이 되었다. curl -v -X POST "https://kapi.kakao.com/v1/payment/ready" \ -H "Authorization: KakaoAK 9e23f09fa2d36ff44c6acd990a7cb908" \ --data-urlencode "cid=TC0ONETIME" \ --data-urlencode "partner_order_id=partner_order_id" \ --data-urlencode "partner_user_id=partner_user_id" \ --data-urlencode "item_name=초코파이" \ --data-urlencode "quantity=1" \ --data-urlencode "total_amount=2200" \ --data-urlencode "vat_amount=200" \ --data-urlencode "tax_free_amount=0" \ --data-urlencode 'approval_url=https://www.tanz.co.kr/PaymentMethod/kakaoPay' \ --data-urlencode 'fail_url=https://www.tanz.co.kr/PaymentMethod/kakaoPay' \ --data-urlencode 'cancel_url=https://www.tanz.co.kr/PaymentMethod/kakaoPay' 를 C#/.NET으로 변환한다. 방법은 https://reqbin.com/req/csharp/c-w7oitglz/convert-curl-to-http-request 을 사용 위를 curl -v -X POST "https://kapi.kakao.com/v1/payment/ready" \ -H "Authorization: KakaoAK 9e23f09fa2d36ff44c6acd990a7cb908" \ -d "cid=TC0ONETIME" \ -d "partner_order_id=partner_order_id" \ -d "partner_user_id=partner_user_id" \ -d "item_name=초코파이" \ -d "quantity=1" \ -d "total_amount=2200" \ -d "vat_amount=200" \ -d "tax_free_amount=0" \ -d 'approval_url=https://www.tanz.co.kr/PaymentMethod/kakaoPay' \ -d 'fail_url=https://www.tanz.co.kr/PaymentMethod/kakaoPay' \ -d 'cancel_url=https://www.tanz.co.kr/PaymentMethod/kakaoPay' 로 수정하여 C#/.NET 변환요청하여 var url = "https://kapi.kakao.com/v1/payment/ready"; var httpRequest = (HttpWebRequest)WebRequest.Create(url); httpRequest.Method = "POST"; httpRequest.Headers["Authorization"] = "KakaoAK 9e23f09fa2d36ff44c6acd990a7cb908"; httpRequest.ContentType = "application/x-www-form-urlencoded"; var data = "cid=TC0ONETIME&partner_order_id=partner_order_id&partner_user_id=partner_user_id&item_name=초코파이&quantity=1&total_amount=2200&vat_amount=200&tax_free_amount=0&approval_url=https://www.tanz.co.kr/PaymentMethod/kakaoPay&fail_url=https://www.tanz.co.kr/PaymentMethod/kakaoPay&cancel_url=https://www.tanz.co.kr/PaymentMethod/kakaoPay"; using (var streamWriter = new StreamWriter(httpRequest.GetRequestStream())) { streamWriter.Write(data); } var httpResponse = (HttpWebResponse)httpRequest.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var result = streamReader.ReadToEnd(); } Console.WriteLine(httpResponse.StatusCode); 의 결과를 얻었다. 이 부분을 통해 toss와는 달리 카카오 페이는 Content-type: application/x-www-form-urlencoded;charset=utf-8을 사용하므로 Content-type: application/json을 사용하는 경우와 다른 코딩방식을 사용하여야 한다. 관건은 Content-type고 이에 따른 코딩이 달라야 한다는 점이 주안점.