react-native-toss-payments
Version:
리액트 네이티브용 토스페이먼츠 결제 연동 라이브러리
278 lines (210 loc) • 9.48 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getMarketUrl = getMarketUrl;
exports.isAppUrl = isAppUrl;
exports.isBlank = isBlank;
exports.openPGApp = openPGApp;
var _reactNative = require("react-native");
var _constant = require("./constant");
function getMarketUrl(url, scheme, packageName) {
if (_reactNative.Platform.OS === 'ios') {
switch (scheme) {
case 'kftc-bankpay':
// 뱅크페이
return _constant.IOS_MARKET_PREFIX + 'id398456030';
case 'ispmobile':
// ISP/페이북
return _constant.IOS_MARKET_PREFIX + 'id369125087';
case 'hdcardappcardansimclick':
// 현대카드 앱카드
return _constant.IOS_MARKET_PREFIX + 'id702653088';
case 'shinhan-sr-ansimclick':
// 신한 앱카드
return _constant.IOS_MARKET_PREFIX + 'id572462317';
case 'kb-acp':
// KB국민 앱카드
return _constant.IOS_MARKET_PREFIX + 'id695436326';
case 'mpocket.online.ansimclick':
// 삼성앱카드
return _constant.IOS_MARKET_PREFIX + 'id535125356';
case 'lottesmartpay':
// 롯데 모바일결제
return _constant.IOS_MARKET_PREFIX + 'id668497947';
case 'lotteappcard':
// 롯데 앱카드
return _constant.IOS_MARKET_PREFIX + 'id688047200';
case 'cloudpay':
// 하나1Q페이(앱카드)
return _constant.IOS_MARKET_PREFIX + 'id847268987';
case 'citimobileapp':
// 시티은행 앱카드
return _constant.IOS_MARKET_PREFIX + 'id1179759666';
case 'payco':
// 페이코
return _constant.IOS_MARKET_PREFIX + 'id924292102';
case 'kakaotalk':
// 카카오톡
return _constant.IOS_MARKET_PREFIX + 'id362057947';
case 'lpayapp':
// 롯데 L.pay
return _constant.IOS_MARKET_PREFIX + 'id1036098908';
case 'wooripay':
// 우리페이
return _constant.IOS_MARKET_PREFIX + 'id1201113419';
case 'com.wooricard.wcard':
// 우리WON카드
return _constant.IOS_MARKET_PREFIX + 'id1499598869';
case 'nhallonepayansimclick':
// NH농협카드 올원페이(앱카드)
return _constant.IOS_MARKET_PREFIX + 'id1177889176';
case 'hanawalletmembers':
// 하나카드(하나멤버스 월렛)
return _constant.IOS_MARKET_PREFIX + 'id1038288833';
case 'shinsegaeeasypayment':
// 신세계 SSGPAY
return _constant.IOS_MARKET_PREFIX + 'id666237916';
case 'naversearchthirdlogin':
// 네이버페이 앱 로그인
return _constant.IOS_MARKET_PREFIX + 'id393499958';
case 'lguthepay-xpay':
// 페이나우
return _constant.IOS_MARKET_PREFIX + 'id760098906';
case 'lmslpay':
// 롯데 L.POINT
return _constant.IOS_MARKET_PREFIX + 'id473250588';
case 'liivbank':
// Liiv 국민
return _constant.IOS_MARKET_PREFIX + 'id1126232922';
case 'supertoss':
// 토스
return _constant.IOS_MARKET_PREFIX + 'id839333328';
case 'newsmartpib':
// 우리WON뱅킹
return _constant.IOS_MARKET_PREFIX + 'id1470181651';
case 'ukbanksmartbanknonloginpay':
// 케이뱅크 페이
return _constant.IOS_MARKET_PREFIX + 'id1178872627';
default:
return url;
}
} else if (_reactNative.Platform.OS === 'android') {
if (packageName != null) {
return _constant.ANDROID_MARKET_PREFIX + packageName;
}
switch (scheme) {
case _constant.ANDROID_APPSCHEME.ISP:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_ISP;
case _constant.ANDROID_APPSCHEME.BANKPAY:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_BANKPAY;
case _constant.ANDROID_APPSCHEME.KB_BANKPAY:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_KB_BANKPAY;
case _constant.ANDROID_APPSCHEME.NH_BANKPAY:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_NH_BANKPAY;
case _constant.ANDROID_APPSCHEME.MG_BANKPAY:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_MG_BANKPAY;
case _constant.ANDROID_APPSCHEME.KN_BANKPAY:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_KN_BANKPAY;
case _constant.ANDROID_APPSCHEME.KAKAOPAY:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_KAKAOPAY;
case _constant.ANDROID_APPSCHEME.SMILEPAY:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_SMILEPAY;
case _constant.ANDROID_APPSCHEME.CHAIPAY:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_CHAIPAY;
case _constant.ANDROID_APPSCHEME.PAYCO:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_PAYCO;
case _constant.ANDROID_APPSCHEME.HYUNDAICARD:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_HYUNDAICARD;
case _constant.ANDROID_APPSCHEME.TOSS:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_TOSS;
case _constant.ANDROID_APPSCHEME.SHINHANCARD:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_SHINHANCARD;
case _constant.ANDROID_APPSCHEME.HANACARD:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_HANACARD;
case _constant.ANDROID_APPSCHEME.SAMSUNGCARD:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_SAMSUNGCARD;
case _constant.ANDROID_APPSCHEME.KBCARD:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_KBCARD;
case _constant.ANDROID_APPSCHEME.NHCARD:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_NHCARD;
case _constant.ANDROID_APPSCHEME.CITICARD:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_CITICARD;
case _constant.ANDROID_APPSCHEME.LOTTECARD:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_LOTTECARD;
case _constant.ANDROID_APPSCHEME.LPAY:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_LPAY;
case _constant.ANDROID_APPSCHEME.SSGPAY:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_SSGPAY;
case _constant.ANDROID_APPSCHEME.KPAY:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_KPAY;
case _constant.ANDROID_APPSCHEME.KBANKPAY:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_KBANKPAY;
case _constant.ANDROID_APPSCHEME.PAYNOW:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_PAYNOW;
case _constant.ANDROID_APPSCHEME.WOORIWONCARD:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_WOORIWONCARD;
case _constant.ANDROID_APPSCHEME.LPOINT:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_LPOINT;
case _constant.ANDROID_APPSCHEME.KTFAUTH:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_KTFAUTH;
case _constant.ANDROID_APPSCHEME.LGTAUTH:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_LGTAUTH;
case _constant.ANDROID_APPSCHEME.SKTAUTH:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_SKTAUTH;
case _constant.ANDROID_APPSCHEME.WOORIWONBANK:
return _constant.ANDROID_MARKET_PREFIX + _constant.ANDROID_PACKAGE.PACKAGE_WOORIWONBANK;
default:
return url;
}
} else {
return url;
}
}
function isAppUrl(scheme) {
// console.log(scheme);
return !(scheme.startsWith('https://') || scheme.startsWith('http://') || scheme.startsWith('about:blank'));
}
function isBlank(url, mainDocumentUrl) {
// console.log(scheme);
return url.startsWith('about:blank') && mainDocumentUrl && mainDocumentUrl.startsWith('about:blank');
}
async function openPGApp(url) {
let splittedUrl = url.replace('://', ' ').split(' ');
let scheme = splittedUrl[0];
if (scheme === undefined) {
return;
}
if (_reactNative.Platform.OS === 'ios') {
try {
await _reactNative.Linking.openURL(url);
} catch (error) {
await _reactNative.Linking.openURL(getMarketUrl(url, scheme, ''));
}
} else if (_reactNative.Platform.OS === 'android') {
let packageName = '';
let intentUrl = splittedUrl[1].split('#Intent;');
let host = intentUrl[0];
let args = intentUrl[1].split(';');
let path = '';
if (scheme !== 'intent') {
scheme = scheme.split(':')[1];
path = scheme + '://' + host;
}
args.forEach(s => {
if (s.startsWith('scheme')) {
let scheme = s.split('=')[1];
path = scheme + '://' + host;
} else if (s.startsWith('package')) {
const packagee = s.split('=')[1];
packageName = packagee;
}
});
try {
await _reactNative.Linking.openURL(path);
} catch (error) {
await _reactNative.Linking.openURL(getMarketUrl(url, scheme, packageName));
}
}
}
//# sourceMappingURL=libs.js.map