균형 결제 처리를 내 사이트에 통합하려고하지만 솔루션에서 표준 HTML 양식이 사용되고 있다고 가정하고 jQuery로 검색합니다. 내 양식에 힘을주기 위해 knockout.js를 사용하기 때문에 양식이 다르게 참조되어 양식을 수정해야합니다. 이 예에서는 신용 카드 데이터의 값을 $ (# 신용 카드 양식)에서 가져 오는 대신 수동으로 설정합니다.jQuery를 사용하여 변수/객체에 입력 속성 추가
오류를 확인하기 위해 네트워크 탭을 열면 "Uncaught TypeError : 속성 0 '개체의 함수가 아닙니다 "나는 creditCardData에 추가되는 입력 특성에 대한 참조입니다.
This fiddle은 어떻게 작동하는지 보여주는 예제입니다. javascript 영역에서 새로운 request bin을 만들고 그 bin을 코드에 복사해야합니다. 그런 다음 코드를 업데이트하고 "토큰 화"를 클릭하면 요청 빈 URL을 방문하면 요청이 제출 된 것을 볼 수 있습니다.
카드를 올바르게 토큰화한 this fiddle을 만들었지 만 오류가 발생하여 어디서 왔는지 정확하게 파악할 수 없습니다. 자신의 requestbin을 만들고 해당 URL을 코드에 복사/붙여 넣기해야합니다. 머리를 위로하면 "토큰 화"버튼이 아무 것도하지 않을 것입니다. 방금 HTML을 남겨 두었습니다. 바이올린이 열리 자마자 함수가 호출되는 것을 고려하면 아무 것도하지 않습니다.
내 버전과 균형 조정의 주된 차이점은 balanced.js 함수의 초기 호출에 있습니다. 균형 잡힌 반면
//paidForItems is a button set with knockout.js
self.paidForItems = function() {
//responseCallbackHandler here, see fiddle for details
var creditCardData = {
card_number: '4111111111111111',
expiration_month: '01',
expiration_year: '2020',
security_code: '123'
};
balanced.card.create(creditCardData, responseCallbackHandler);
}
는 의견이 약간 긴지고 있기 때문에 답변에 넣어가는 형태
//responseCallbackHandler here, see fiddle for details
var tokenizeInstrument = function(e) {
e.preventDefault();
var $form = $('#credit-card-form');
var creditCardData = {
card_number: $form.find('.cc-number').val(),
expiration_month: $form.find('.cc-em').val(),
expiration_year: $form.find('.cc-ey').val(),
security_code: $form.find('cc-csc').val()
};
balanced.card.create(creditCardData, responseCallbackHandler);
};
$('#credit-card-form').submit(tokenizeInstrument);
열기 또는 pageload에서 실행 중이십니까? JQuery는 실제로 이와 같은 작업을 위해 페이지로드를 기다리고 싶어합니다. –
.val()과 문자열 값을 하드 코딩하는 것 사이에는 아무런 차이가 없습니다. 다른 생각이 들었습니다. –
@BenBarden 저는 여러분이 무슨 뜻인지 잘 모르겠습니다. 나는 당신이 뭔가 다른 것을 언급하지 않는 한 함수가 꽤 명확하게 호출되는 방법을 설명한다고 생각했다. – user1406951