demo.js
https://www.iamport.kr/assets/js/controllers/demo.js
KG이니시스 웹표준결제
신용카드 실시간계좌이체 가상계좌 휴대폰소액결제 삼성페이 KPay 문화상품권 스마트문상 해피머니
angular.module('impwww')
.controller('demoCtrl', function($scope, $http, $timeout, $window) {
function init() {
$scope.use_escrow = false;
$scope.in_app = false;
$scope.is_response = false;
$scope.pg = $scope.pgProviders[0];
$scope.payMethod = $scope.pg.payMethod[0];
$scope.name = "결제테스트";
$scope.merchant_uid = 'merchant_' + new Date().getTime();
$scope.amount = 1004;
$scope.buyer_email = "iamport@siot.do";
$scope.buyer_name = "구매자";
$scope.buyer_tel = "010-1234-5678";
$scope.buyer_addr = "서울특별시 강남구 삼성동";
$scope.buyer_postcode = "123-456";
$scope.vbank_due = moment().add(2, 'day').format('YYYYMMDD');
};
$scope.$watch('pg', function(newPg, oldPg) {
if ( newPg != oldPg ) {
$scope.payMethod = newPg.payMethod[0];
}
});
$scope.pgProviders = [
{
id : "kakaopay",
name : "카카오페이",
userCode : 'imp10391932',
payMethod : [{ value : "card", name:"신용카드"}]
},
{
id : "kakaopay_billing",
name : "카카오페이(정기결제)",
userCode : 'imp10391932',
pgId : 'TCSUBSCRIP',
payMethod : [{ value : "card", name:"신용카드"}]
},
{
id : "naverco",
name : "네이버페이",
userCode : 'imp41073887',
payMethod : [
{ value : "card", name:"신용카드"}
]
},
{
id : "payco",
name : "PAYCO",
userCode : 'imp09215616',
payMethod : [
{ value : "card", name:"신용카드"},
{ value : "trans", name:"실시간계좌이체"},
{ value : "vbank", name:"가상계좌"},
{ value : "phone", name:"휴대폰소액결제"}
]
},
{
id : "html5_inicis",
name : "KG이니시스(웹표준결제)",
userCode : 'imp68124833',
payMethod : [
{ value : "card", name:"신용카드"},
{ value : "trans", name:"실시간계좌이체"},
{ value : "vbank", name:"가상계좌"},
{ value : "phone", name:"휴대폰소액결제"},
{ value : "samsung", name :"삼성페이"},
{ value : "kpay", name :"KPay"},
{ value : "cultureland", name :"문화상품권"},
{ value : "smartculture", name :"스마트문상"},
{ value : "happymoney", name :"해피머니"}
]
},
{
id : "kcp",
name : "NHN KCP",
userCode : 'imp33886024',
payMethod : [
{ value : "card", name:"신용카드"},
{ value : "samsung", name:"삼성페이"},
{ value : "trans", name:"실시간계좌이체"},
{ value : "vbank", name:"가상계좌"},
{ value : "phone", name:"휴대폰소액결제"}
]
},
{
id : "nice",
name : "나이스정보통신",
userCode : 'imp84043725',
payMethod : [
{ value : "card", name:"신용카드"},
{ value : "trans", name:"실시간계좌이체"},
{ value : "vbank", name:"가상계좌"},
{ value : "phone", name:"휴대폰소액결제"}
]
},
{
id : "jtnet",
name : "JTNet",
userCode : 'imp57843720',
payMethod : [
{ value : "card", name:"신용카드"},
{ value : "trans", name:"실시간계좌이체"},
{ value : "vbank", name:"가상계좌"},
{ value : "phone", name:"휴대폰소액결제"}
]
},
{
id : "danal",
name : "다날-휴대폰소액결제전용",
userCode : 'imp00357859',
payMethod : [{ value : "phone", name:"휴대폰소액결제"}]
},
{
id : "danal_tpay",
name : "다날-다날일반결제",
userCode : 'imp00807605',
payMethod : [
{ value : "card", name:"신용카드"},
{ value : "trans", name:"실시간계좌이체"},
{ value : "vbank", name:"가상계좌"}
]
},
{
id : "mobilians",
name : "모빌리언스-휴대폰소액결제",
userCode : 'imp60029475',
payMethod : [{ value : "phone", name:"휴대폰소액결제"}]
},
{
id : "uplus",
name : "LGU+",
userCode : 'imp46648599',
payMethod : [
{ value : "card", name:"신용카드"},
{ value : "trans", name:"실시간계좌이체"},
{ value : "vbank", name:"가상계좌"},
{ value : "phone", name:"휴대폰소액결제"}
]
},
{
id : "kicc",
name : "KICC",
userCode : 'imp53939833',
payMethod : [
{ value : "card", name:"신용카드"},
{ value : "trans", name:"실시간계좌이체"},
{ value : "vbank", name:"가상계좌"},
{ value : "phone", name:"휴대폰소액결제"}
]
},
{
id : "paypal",
name : "페이팔",
userCode : 'imp09350031',
payMethod : [{ value : "card", name:"신용카드"}]
},
{
id : "html5_inicis_billing",
name : "KG이니시스(빌링결제)",
userCode : 'imp86058634',
payMethod : [
{ value : "card", name:"신용카드"}
]
},
{
id : "jtnet_billing",
name : "JTNet(빌링결제)",
userCode : 'imp17732827',
pgId : 'tpaytest2m',
payMethod : [
{ value : "card", name:"신용카드"}
]
}
];
$scope.getHelpText = function(pg){
var helpText = "실제 승인이 이루어진 테스트 결제건은 자정에 이니시스에서 자동 취소처리합니다.";
switch(pg) {
case 'uplus' :
helpText = '실제 승인이 이루어지 않기 때문에 청구되지 않습니다.';
break;
case 'danal' :
case 'danal_tpay':
case 'kakaopay' :
helpText = '실제 승인이 이루어진 테스트 결제건은 약 30분 후 자동 취소처리됩니다.';
break;
default:
helpText = '실제 승인이 이루어진 테스트 결제건은 매일 자정(23:00~23:50분 사이)에 자동 취소처리합니다.';
break;
}
return helpText;
}
$scope.payRequest = function() {
var IMP = window.IMP;
var userCode = $scope.pg.userCode || 'iamport';
IMP.init(userCode);
var param = {
pay_method : $scope.payMethod.value,
escrow : $scope.use_escrow,
merchant_uid : $scope.merchant_uid,
name:$scope.name,
amount:$scope.amount,
buyer_email:$scope.buyer_email,
buyer_name:$scope.buyer_name,
buyer_tel:$scope.buyer_tel,
buyer_addr:$scope.buyer_addr,
buyer_postcode:$scope.buyer_postcode,
vbank_due:$scope.vbank_due,
m_redirect_url:'https://www.iamport.kr/demo',
kcpProducts : [
{
"orderNumber" : "xxxx",
"name" : "상품A",
"quantity" : 3,
"amount" : 1000
},
{
"orderNumber" : "yyyy",
"name" : "상품B",
"quantity" : 2,
"amount" : 3000
}
],
naverProducts : [
{
id : "singleProduct",
name : "네이버페이 상품1",
basePrice : 1000,
taxType : 'FREE', //TAX or FREE
quantity : 2,
infoUrl : "http://www.naver.com",
imageUrl : "http://www.naver.com",
shipping : {
groupId : "",
method : "DELIVERY", //DELIVERY(택배·소포·등기), QUICK_SVC(퀵 서비스), DIRECT_DELIVERY(직접 전달), VISIT_RECEIPT(방문 수령), NOTHING(배송 없음)
baseFee : 0,
feeType : "FREE", //FREE(무료), CHARGE(유료), CONDITIONAL_FREE(조건부 무료), CHARGE_BY_QUANTITY(수량별 부과)
feePayType : "FREE" //FREE(무료), PREPAYED(선불), CASH_ON_DELIVERY(착불)
}
},
{
id : "optionProduct",
name : "네이버페이 상품2",
basePrice : 1000,
taxType : 'FREE', //TAX or FREE
quantity : 2,
infoUrl : "http://www.naver.com",
imageUrl : "http://www.naver.com",
option : {
optionPrice : 200,
selectionCode : "R_L",
selections : [
{
code : "RED",
label : "색상",
value : "빨강"
},
{
code : "180",
label : "사이즈",
value : "180"
}
]
},
shipping : {
groupId : "",
method : "DELIVERY", //DELIVERY(택배·소포·등기), QUICK_SVC(퀵 서비스), DIRECT_DELIVERY(직접 전달), VISIT_RECEIPT(방문 수령), NOTHING(배송 없음)
baseFee : 0,
feeType : "FREE", //FREE(무료), CHARGE(유료), CONDITIONAL_FREE(조건부 무료), CHARGE_BY_QUANTITY(수량별 부과)
feePayType : "FREE" //FREE(무료), PREPAYED(선불), CASH_ON_DELIVERY(착불)
}
}
]
};
if ( $scope.in_app ) param.app_scheme = 'iamporttest';
if ( $scope.pg.pgId ) param.pg = $scope.pg.pgId;
if ( $scope.pg.id === 'html5_inicis_billing' ) {
param.customer_uid = 'iamport_billing_test';
}
if ( $scope.pg.id === 'jtnet_billing' ) {
param.pg = "jtnet." + $scope.pg.pgId;
param.customer_uid = 'iamport_billing_test';
}
if ( $scope.pg.id === 'kakaopay_billing' ) {
param.pg = "kakaopay." + $scope.pg.pgId;
param.customer_uid = 'iamport_billing_test';
}
if ( $scope.pg.id === 'naverco' ) param.amount = 4400;
if ( $scope.pg.id === 'danal_tpay' ) {
if ( $scope.payMethod.value === 'trans' ) {
param.pg = "danal_tpay.A010002002";
} else if ( $scope.payMethod.value === 'vbank' ) {
alert('가상계좌는 테스트가 진행되지 않습니다. 계약 후 이용부탁드립니다.');
return false;
}
}
if ( $scope.pg.id === 'kcp' ) {
if ( $scope.use_escrow && $scope.payMethod.value != 'trans' && $scope.payMethod.value != 'vbank' ) return alert('에스크로 결제는 계좌이체, 가상계좌인 경우에만 적용됩니다.');
}
if ( $scope.pg.id === 'paypal' ) {
param.popup = "redirect";
}
IMP.request_pay(param, function(rsp) {
if ( rsp.success ) {
var msg = '결제가 완료되었습니다.\n';
msg += '고유ID : ' + rsp.imp_uid + '\n';
msg += '상점 거래ID : ' + rsp.merchant_uid + '\n';
msg += '결제 금액 : ' + rsp.paid_amount + '\n';
if ( rsp.pay_method === 'card' ) {
msg += '카드 승인번호 : ' + rsp.apply_num + '\n';
} else if ( rsp.pay_method === 'vbank' ) {
msg += '가상계좌 번호 : ' + rsp.vbank_num + '\n';
msg += '가상계좌 은행 : ' + rsp.vbank_name + '\n';
msg += '가상계좌 예금주 : ' + rsp.vbank_holder + '\n';
msg += '가상계좌 입금기한 : ' + rsp.vbank_date + '\n';
}
} else {
var msg = '결제에 실패하였습니다.' + '\n';
msg += '에러내용 : ' + rsp.error_msg + '\n';
}
$scope.$apply(function() {
$scope.is_response = true;
$scope.response = msg;
});
$timeout(function(){
$scope.is_response = false;
$window.location.reload();
}, 10000, true);
});
return false;
}
init();
});












댓글 ( 4)
댓글 남기기