paymentkey 오류
안녕하세요 nextjs + django로 결제 구현을 하던 중에
respaymentKey = resjson["paymentKey"]
KeyError: 'paymentKey'
와 같은 오류를 만났습니다. 해결 방법을 알고 싶습니다..
nextjs 결제 로직은 아래와 같습니다.
const router = useRouter()
const [res, setRes] = useState()
const {mutate: success, isLoading, isSuccess } = useFetchOrderSuccess()
useEffect(()=>{
const param = router?.query
const data = {
amount : param.amount,
orderId : param.orderId,
paymentKey : param.paymentKey,
paymentType : param.paymentType,
}
const result = success(data)
setRes(result)
},[router])
django view는 아래와 같이 작성 하였습니다.
def success(request):
orderId = request.data['orderId']
amount = request.data['amount']
paymentKey = request.data['paymentKey']
url = "https://api.tosspayments.com/v1/payments/confirm"
secertkey = "test_sk_D4yKeq5bgrpKRd0JYbLVGX0lzW6Y"
userpass = secertkey + ':'
encoded_u = base64.b64encode(userpass.encode()).decode()
headers = {
"Authorization" : "Basic %s" % encoded_u,
"Content-Type": "application/json"
}
params = {
"orderId" : orderId,
"amount" : amount,
"paymentKey": paymentKey,
}
res = requests.post(url, data=json.dumps(params), headers=headers)
resjson = res.json()
pretty = json.dumps(resjson, indent=4)
respaymentKey = resjson["paymentKey"]
resorderId = resjson["orderId"]
rescardcom = resjson["card"]["company"]
reuslt = {
"res" : pretty,
"respaymentKey" : respaymentKey,
"resorderId" : resorderId,
"rescardcom" : rescardcom,
}
return Response(reuslt)
감사합니다.
respaymentKey = resjson["paymentKey"]
KeyError: 'paymentKey'
와 같은 오류를 만났습니다. 해결 방법을 알고 싶습니다..
nextjs 결제 로직은 아래와 같습니다.
const router = useRouter()
const [res, setRes] = useState()
const {mutate: success, isLoading, isSuccess } = useFetchOrderSuccess()
useEffect(()=>{
const param = router?.query
const data = {
amount : param.amount,
orderId : param.orderId,
paymentKey : param.paymentKey,
paymentType : param.paymentType,
}
const result = success(data)
setRes(result)
},[router])
django view는 아래와 같이 작성 하였습니다.
def success(request):
orderId = request.data['orderId']
amount = request.data['amount']
paymentKey = request.data['paymentKey']
url = "https://api.tosspayments.com/v1/payments/confirm"
secertkey = "test_sk_D4yKeq5bgrpKRd0JYbLVGX0lzW6Y"
userpass = secertkey + ':'
encoded_u = base64.b64encode(userpass.encode()).decode()
headers = {
"Authorization" : "Basic %s" % encoded_u,
"Content-Type": "application/json"
}
params = {
"orderId" : orderId,
"amount" : amount,
"paymentKey": paymentKey,
}
res = requests.post(url, data=json.dumps(params), headers=headers)
resjson = res.json()
pretty = json.dumps(resjson, indent=4)
respaymentKey = resjson["paymentKey"]
resorderId = resjson["orderId"]
rescardcom = resjson["card"]["company"]
reuslt = {
"res" : pretty,
"respaymentKey" : respaymentKey,
"resorderId" : resorderId,
"rescardcom" : rescardcom,
}
return Response(reuslt)
감사합니다.
