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고 이에 따른 코딩이 달라야 한다는 점이 주안점.