PAY.jp 도입 중반에서 갑자기 출현한 402의 에러에 대해 생각하면 예상치 못한 장소가
402 오류의 의미는 무엇입니까?
402 Payment Required (향후 사용을 위한 예약 코드)
http://www5.plala.or.jp/vaio0630/mail/st_code.htm에서
그렇습니다만 이것을 봐도 의미를 몰랐습니다. 좀 더 자세하게 조사하면, 지불이 필요한 때에 나오는 에러로 현재는 미실장이라고 있습니다.
그 때의 기술로서는 이런 느낌이었습니다.
hoge.js
const formResult = document.getElementById("charge-form");
const formData = new FormData(formResult);
const card = {
number: formData.get("item[number]"),
cvc: formData.get("item[cvc]"),
exp_month: formData.get("item[exp_month]"),
exp_year: `20${formData.get("item[exp_year]")}`,
};
Payjp.createToken(card, (status, response) => {
if (status == 200) {
const token = response.id;
console.log(token)
}
}); //全てではありません、一部省略してます//
Payjp.createToken~의 부분에서 if문으로 스테이터스 코드가 200(200은 성공이라고 하는 의미입니다)이면 token의 정보를 콘솔로 낼 것이라고 하는 조건 분기를 하고 있습니다. 이것과 402로부터 생각해, const card~로부터의 기술을 재검토했습니다. 거기까지는 제대로 log는 잡혀 있었고, 예약 코드가 되는 이유는 여기밖에 없다고.
index.html.erb
<%= form_with model: @item, url: item_purchases_path, id: 'charge-form', class: 'transaction-form-wrap',local: true do |f| %>
위의 view 코드에서이 부분의 id를 가득 채웠습니다.
에러 이유를 결론부터 먼저 말하면, @item의 부분이 다른 인스턴스를 가져올 필요가 있었습니다. 웃음
반대로 왜 여기까지 @item 로 정상적으로 작동하고 있었는지 궁금해졌습니다. 해결해 보면 초보적인 오류라고 할 수 있지만이 부분까지 정상적으로 작동했기 때문에 반대로 혼란을 일으키는 매우 해결 시간이 걸렸습니다.
요약
지금까지는 에러 이유를 생각할 때, rails이면 에러분이 확실하고 MVC 아래 에러를 확인해 가면 좋았습니다. 그리고 JS에 관해서도 지금까지는 기초적인 부분이 많았기 때문인지 에러 부분은 거의 JS 없는 실수였기 때문에 이번은 맹점을 붙인 느낌이 들었습니다.
rails의 설명은 여기까지 성공했기 때문에 틀리지 않았다! 라고 하는 생각이 나의 1시간 반을 빼앗아 갔습니다만, 이런 에러의 후불적인 느낌이 있다고 알려진 것은 매우 귀중한 체험이었습니다.
402 오류에 대한 제목에서 너무 죄송합니다. 웃음
읽어 주셔서 감사합니다.
Reference
이 문제에 관하여(PAY.jp 도입 중반에서 갑자기 출현한 402의 에러에 대해 생각하면 예상치 못한 장소가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/entakujinia/items/86b51d0257903af1cbce텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)