Skip to content

bootpay/react-native-bootpay-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

64 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

react-native-bootpay-api ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

๋ถ€ํŠธํŽ˜์ด์—์„œ ์ง€์›ํ•˜๋Š” ๊ณต์‹ react native ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž…๋‹ˆ๋‹ค. (ํด๋ผ์ด์–ธํŠธ ์šฉ)

  • PG ๊ฒฐ์ œ์ฐฝ ์—ฐ๋™์€ ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. (Javascript, Android, iOS, React Native, Flutter ๋“ฑ)
  • ๊ฒฐ์ œ ๊ฒ€์ฆ ๋ฐ ์ทจ์†Œ, ๋นŒ๋งํ‚ค ๋ฐœ๊ธ‰, ๋ณธ์ธ์ธ์ฆ ๋“ฑ์˜ ์ˆ˜ํ–‰์€ ์„œ๋ฒ„์‚ฌ์ด๋“œ์—์„œ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. (Java, PHP, Python, Ruby, Node.js, Go, ASP.NET ๋“ฑ)

1-1. ์„ค์น˜ํ•˜๊ธฐ

npm์œผ๋กœ ์„ค์น˜ํ•˜๊ธฐ

npm install react-native-bootpay-api

yarn์œผ๋กœ ์„ค์น˜ํ•˜๊ธฐ

yarn add react-native-bootpay-api

๋˜๋Š” package.json ํŒŒ์ผ์˜ dependencies์— ์ถ”๊ฐ€ ํ›„ yarn install์„ ํ•ฉ๋‹ˆ๋‹ค.

"dependencies": {
    "react-native-webview-api": last_version
}

์ถ”๊ฐ€ ๋ชจ๋“ˆ ์„ค์น˜

react-native-bootpay-api๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ์•„๋ž˜์˜ ๋ชจ๋“ˆ์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์„ค์น˜ํ•ด์ฃผ์„ธ์š”.

"dependencies": {
    "react-native-webview-api": last_version
},
"devDependencies": {    
    "react-native-webview-bootpay": last_version,
    "react-native-sensitive-info": last_version,
    "react-native-base64": last_version,
    "react-native-device-info": last_version
},

์„ค์ •ํ•˜๊ธฐ

Android

๋”ฐ๋กœ ์„ค์ •ํ•˜์‹ค ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค.

iOS

** {your project root}/ios/Runner/Info.plist ** CFBundleURLName๊ณผ CFBundleURLSchemes์˜ ๊ฐ’์€ ๊ฐœ๋ฐœ์‚ฌ์—์„œ ๊ณ ์œ ๊ฐ’์œผ๋กœ ์ง€์ •ํ•ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์™ธ๋ถ€์•ฑ(์นด๋“œ์‚ฌ์•ฑ)์—์„œ ๋‹ค์‹œ ๊ธฐ์กด ์•ฑ์œผ๋กœ ์•ฑํˆฌ์•ฑ ํ˜ธ์ถœ์‹œ ํ•„์š”ํ•œ ์Šคํ‚ค๋งˆ ๊ฐ’์ž…๋‹ˆ๋‹ค.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    ...

    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>CFBundleURLName</key>
            <string>kr.co.bootpaySample</string> 
            <key>CFBundleURLSchemes</key>
            <array>
                <string>bootpaySample</string> 
            </array>
        </dict>
    </array>

    ...
</dict>
</plist>

์‚ฌ์šฉ์˜ˆ์ œ

 
import React, { useRef }  from 'react';

import {
  StyleSheet,
  View,
  Text,
  TouchableOpacity
} from 'react-native';
import { Bootpay, Extra } from 'react-native-bootpay-api'; 


export default function App() {
  const bootpay = useRef<Bootpay>(null);
  
 

  const goBootpayTest = () => {   
    const payload = {
      pg: '๋‚˜์ด์ŠคํŽ˜์ด',  //['kcp', 'danal', 'inicis', 'nicepay', 'lgup', 'toss', 'payapp', 'easypay', 'jtnet', 'tpay', 'mobilians', 'payletter', 'onestore', 'welcome'] ์ค‘ ํƒ 1
      method: '์นด๋“œ',  // ['์นด๋“œ', 'ํœด๋Œ€ํฐ', '๊ณ„์ขŒ์ด์ฒด', '๊ฐ€์ƒ๊ณ„์ขŒ', '์นด์นด์˜คํŽ˜์ด', '๋„ค์ด๋ฒ„ํŽ˜์ด', 'ํŽ˜์ด์ฝ”', '์นด๋“œ์ž๋™'] ์ค‘ ํƒ 1 
      order_name: '๋งˆ์Šค์นด๋ผ', //๊ฒฐ์ œ์ฐฝ์— ๋ณด์—ฌ์งˆ ์ƒํ’ˆ๋ช…
      order_id: '1234_1234', //๊ฐœ๋ฐœ์‚ฌ์— ๊ด€๋ฆฌํ•˜๋Š” ์ฃผ๋ฌธ๋ฒˆํ˜ธ 
      // subscription_id: '12345_21345', //๊ฐœ๋ฐœ์‚ฌ์— ๊ด€๋ฆฌํ•˜๋Š” ์ฃผ๋ฌธ๋ฒˆํ˜ธ (์ •๊ธฐ๊ฒฐ์ œ์šฉ)
      // authentication_id: '12345_21345', //๊ฐœ๋ฐœ์‚ฌ์— ๊ด€๋ฆฌํ•˜๋Š” ์ฃผ๋ฌธ๋ฒˆํ˜ธ (๋ณธ์ธ์ธ์ฆ์šฉ) 
      // method: 'card', 
      // methods: ['card', 'vbank', 'bank', 'phone'], // ํ†ตํ•ฉ๊ฒฐ์ œ์ฐฝ ์ง„ํ–‰์‹œ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฐ์ œ์ˆ˜๋‹จ ์ง€์ • ๊ฐ€๋Šฅ, method์™€ ํ•จ๊ป˜ ์ ์šฉ ๋ถˆ๊ฐ€ 
      price: 1000, //๊ฒฐ์ œ๊ธˆ์•ก 
      // taxFree: 0, //๋ฉด์„ธ๊ธˆ์•ก 
    } 

    //๊ฒฐ์ œ๋˜๋Š” ์ƒํ’ˆ์ •๋ณด๋“ค๋กœ ํ†ต๊ณ„์— ์‚ฌ์šฉ๋˜๋ฉฐ, price์˜ ํ•ฉ์€ ๊ฒฐ์ œ๊ธˆ์•ก๊ณผ ๋™์ผํ•ด์•ผํ•จ 
    const items = [
      {
        name: 'ํ‚ค๋ณด๋“œ', //ํ†ต๊ณ„์— ๋ฐ˜์˜๋  ์ƒํ’ˆ๋ช… 
        qty: 1, //์ˆ˜๋Ÿ‰ 
        id: 'ITEM_CODE_KEYBOARD', //๊ฐœ๋ฐœ์‚ฌ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ์ƒํ’ˆ๊ณ ์œ ๋ฒˆํ˜ธ 
        price: 1000, //์ƒํ’ˆ๋‹จ๊ฐ€ 
        cat1: 'ํŒจ์…˜', //์นดํ…Œ๊ณ ๋ฆฌ ์ƒ , ์ž์œ ๋กญ๊ฒŒ ๊ธฐ์ˆ 
        cat2: '์—ฌ์„ฑ์ƒ์˜', //์นดํ…Œ๊ณ ๋ฆฌ ์ค‘, ์ž์œ ๋กญ๊ฒŒ ๊ธฐ์ˆ  
        cat3: '๋ธ”๋ผ์šฐ์Šค', //์นดํ…Œ๊ณ ๋ฆฌ ํ•˜, ์ž์œ ๋กญ๊ฒŒ ๊ธฐ์ˆ 
      }
    ]

    //๊ตฌ๋งค์ž ์ •๋ณด๋กœ ๊ฒฐ์ œ์ฐฝ์ด ๋ฏธ๋ฆฌ ์ ์šฉ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ†ต๊ณ„์—๋„ ์‚ฌ์šฉ๋˜๋Š” ์ •๋ณด 
    const user = {
      id: 'user_id_1234', //๊ฐœ๋ฐœ์‚ฌ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ํšŒ์›๊ณ ์œ ๋ฒˆํ˜ธ 
      username: 'ํ™๊ธธ๋™', //๊ตฌ๋งค์ž๋ช…
      email: '[email protected]', //๊ตฌ๋งค์ž ์ด๋ฉ”์ผ
      gender: 0, //์„ฑ๋ณ„, 1:๋‚จ์ž , 0:์—ฌ์ž
      birth: '1986-10-14', //์ƒ๋…„์›”์ผ yyyy-MM-dd
      phone: '01012345678', //์ „ํ™”๋ฒˆํ˜ธ, ํŽ˜์ด์•ฑ ํ•„์ˆ˜ 
      area: '์„œ์šธ', // [์„œ์šธ,์ธ์ฒœ,๋Œ€๊ตฌ,๊ด‘์ฃผ,๋ถ€์‚ฐ,์šธ์‚ฐ,๊ฒฝ๊ธฐ,๊ฐ•์›,์ถฉ์ฒญ๋ถ๋„,์ถฉ๋ถ,์ถฉ์ฒญ๋‚จ๋„,์ถฉ๋‚จ,์ „๋ผ๋ถ๋„,์ „๋ถ,์ „๋ผ๋‚จ๋„,์ „๋‚จ,๊ฒฝ์ƒ๋ถ๋„,๊ฒฝ๋ถ,๊ฒฝ์ƒ๋‚จ๋„,๊ฒฝ๋‚จ,์ œ์ฃผ,์„ธ์ข…,๋Œ€์ „] ์ค‘ ํƒ 1
      addr: '์„œ์šธ์‹œ ๋™์ž‘๊ตฌ ์ƒ๋„๋กœ' //์ฃผ์†Œ
    }


    //๊ธฐํƒ€ ์„ค์ •

    const extra = {
      card_quota: "0,2,3",  //๊ฒฐ์ œ๊ธˆ์•ก์ด 5๋งŒ์› ์ด์ƒ์‹œ ํ• ๋ถ€๊ฐœ์›” ํ—ˆ์šฉ๋ฒ”์œ„๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ, [0(์ผ์‹œ๋ถˆ), 2๊ฐœ์›”, 3๊ฐœ์›”] ํ—ˆ์šฉ, ๋ฏธ์„ค์ •์‹œ 12๊ฐœ์›”๊นŒ์ง€ ํ—ˆ์šฉ 
      app_scheme: "bootpayrnapi", //ios์˜ ๊ฒฝ์šฐ ์นด๋“œ์‚ฌ ์•ฑ ํ˜ธ์ถœ ํ›„ ๋˜๋Œ์•„์˜ค๊ธฐ ์œ„ํ•œ ์•ฑ ์Šคํ‚ค๋งˆ๋ช…  
      show_close_button: false, // x ๋‹ซ๊ธฐ ๋ฒ„ํŠผ ์‚ฝ์ž… (๋‹ซ๊ธฐ๋ฒ„ํŠผ์ด ์—†๋Š” PG์‚ฌ๋ฅผ ์œ„ํ•œ ์˜ต์…˜)  
    }  
 

    if(bootpay != null && bootpay.current != null) bootpay.current.requestPayment(payload, items, user, extra);
  }


  const goBootpaySubscriptionTest = () => {   
    const payload = {
      pg: '๋‚˜์ด์ŠคํŽ˜์ด',  //['kcp', 'danal', 'inicis', 'nicepay', 'lgup', 'toss', 'payapp', 'easypay', 'jtnet', 'tpay', 'mobilians', 'payletter', 'onestore', 'welcome'] ์ค‘ ํƒ 1
      method: '์นด๋“œ์ž๋™', // ['์นด๋“œ', 'ํœด๋Œ€ํฐ', '๊ณ„์ขŒ์ด์ฒด', '๊ฐ€์ƒ๊ณ„์ขŒ', '์นด์นด์˜คํŽ˜์ด', '๋„ค์ด๋ฒ„ํŽ˜์ด', 'ํŽ˜์ด์ฝ”', '์นด๋“œ์ž๋™'] ์ค‘ ํƒ 1 
      order_name: '๋งˆ์Šค์นด๋ผ', //๊ฒฐ์ œ์ฐฝ์— ๋ณด์—ฌ์งˆ ์ƒํ’ˆ๋ช…
      // order_id: '1234_1234', //๊ฐœ๋ฐœ์‚ฌ์— ๊ด€๋ฆฌํ•˜๋Š” ์ฃผ๋ฌธ๋ฒˆํ˜ธ 
      subscription_id: '12345_21345', //๊ฐœ๋ฐœ์‚ฌ์— ๊ด€๋ฆฌํ•˜๋Š” ์ฃผ๋ฌธ๋ฒˆํ˜ธ (์นด๋“œ์ž๋™๊ฒฐ์ œ์šฉ)
      // authentication_id: '12345_21345', //๊ฐœ๋ฐœ์‚ฌ์— ๊ด€๋ฆฌํ•˜๋Š” ์ฃผ๋ฌธ๋ฒˆํ˜ธ (๋ณธ์ธ์ธ์ฆ์šฉ) 
      // method: 'card', 
      // methods: ['card', 'vbank', 'bank', 'phone'], // ํ†ตํ•ฉ๊ฒฐ์ œ์ฐฝ ์ง„ํ–‰์‹œ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฐ์ œ์ˆ˜๋‹จ ์ง€์ • ๊ฐ€๋Šฅ, method์™€ ํ•จ๊ป˜ ์ ์šฉ ๋ถˆ๊ฐ€ 
      price: 1000, //๊ฒฐ์ œ๊ธˆ์•ก 
      // taxFree: 0, //๋ฉด์„ธ๊ธˆ์•ก 
    } 

    //๊ฒฐ์ œ๋˜๋Š” ์ƒํ’ˆ์ •๋ณด๋“ค๋กœ ํ†ต๊ณ„์— ์‚ฌ์šฉ๋˜๋ฉฐ, price์˜ ํ•ฉ์€ ๊ฒฐ์ œ๊ธˆ์•ก๊ณผ ๋™์ผํ•ด์•ผํ•จ 
    const items = [
      {
        name: 'ํ‚ค๋ณด๋“œ', //ํ†ต๊ณ„์— ๋ฐ˜์˜๋  ์ƒํ’ˆ๋ช… 
        qty: 1, //์ˆ˜๋Ÿ‰ 
        id: 'ITEM_CODE_KEYBOARD', //๊ฐœ๋ฐœ์‚ฌ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ์ƒํ’ˆ๊ณ ์œ ๋ฒˆํ˜ธ 
        price: 1000, //์ƒํ’ˆ๋‹จ๊ฐ€ 
        cat1: 'ํŒจ์…˜', //์นดํ…Œ๊ณ ๋ฆฌ ์ƒ , ์ž์œ ๋กญ๊ฒŒ ๊ธฐ์ˆ 
        cat2: '์—ฌ์„ฑ์ƒ์˜', //์นดํ…Œ๊ณ ๋ฆฌ ์ค‘, ์ž์œ ๋กญ๊ฒŒ ๊ธฐ์ˆ  
        cat3: '๋ธ”๋ผ์šฐ์Šค', //์นดํ…Œ๊ณ ๋ฆฌ ํ•˜, ์ž์œ ๋กญ๊ฒŒ ๊ธฐ์ˆ 
      }
    ]

    //๊ตฌ๋งค์ž ์ •๋ณด๋กœ ๊ฒฐ์ œ์ฐฝ์ด ๋ฏธ๋ฆฌ ์ ์šฉ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ†ต๊ณ„์—๋„ ์‚ฌ์šฉ๋˜๋Š” ์ •๋ณด 
    const user = {
      id: 'user_id_1234', //๊ฐœ๋ฐœ์‚ฌ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ํšŒ์›๊ณ ์œ ๋ฒˆํ˜ธ 
      username: 'ํ™๊ธธ๋™', //๊ตฌ๋งค์ž๋ช…
      email: '[email protected]', //๊ตฌ๋งค์ž ์ด๋ฉ”์ผ
      gender: 0, //์„ฑ๋ณ„, 1:๋‚จ์ž , 0:์—ฌ์ž
      birth: '1986-10-14', //์ƒ๋…„์›”์ผ yyyy-MM-dd
      phone: '01012345678', //์ „ํ™”๋ฒˆํ˜ธ, ํŽ˜์ด์•ฑ ํ•„์ˆ˜ 
      area: '์„œ์šธ', // [์„œ์šธ,์ธ์ฒœ,๋Œ€๊ตฌ,๊ด‘์ฃผ,๋ถ€์‚ฐ,์šธ์‚ฐ,๊ฒฝ๊ธฐ,๊ฐ•์›,์ถฉ์ฒญ๋ถ๋„,์ถฉ๋ถ,์ถฉ์ฒญ๋‚จ๋„,์ถฉ๋‚จ,์ „๋ผ๋ถ๋„,์ „๋ถ,์ „๋ผ๋‚จ๋„,์ „๋‚จ,๊ฒฝ์ƒ๋ถ๋„,๊ฒฝ๋ถ,๊ฒฝ์ƒ๋‚จ๋„,๊ฒฝ๋‚จ,์ œ์ฃผ,์„ธ์ข…,๋Œ€์ „] ์ค‘ ํƒ 1
      addr: '์„œ์šธ์‹œ ๋™์ž‘๊ตฌ ์ƒ๋„๋กœ' //์ฃผ์†Œ
    }


    //๊ธฐํƒ€ ์„ค์ •
    const extra = {
      card_quota: "0,2,3",  //๊ฒฐ์ œ๊ธˆ์•ก์ด 5๋งŒ์› ์ด์ƒ์‹œ ํ• ๋ถ€๊ฐœ์›” ํ—ˆ์šฉ๋ฒ”์œ„๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ, [0(์ผ์‹œ๋ถˆ), 2๊ฐœ์›”, 3๊ฐœ์›”] ํ—ˆ์šฉ, ๋ฏธ์„ค์ •์‹œ 12๊ฐœ์›”๊นŒ์ง€ ํ—ˆ์šฉ 
      app_scheme: "bootpayrnapi2", //ios์˜ ๊ฒฝ์šฐ ์นด๋“œ์‚ฌ ์•ฑ ํ˜ธ์ถœ ํ›„ ๋˜๋Œ์•„์˜ค๊ธฐ ์œ„ํ•œ ์•ฑ ์Šคํ‚ค๋งˆ๋ช…  
      show_close_button: false, // x ๋‹ซ๊ธฐ ๋ฒ„ํŠผ ์‚ฝ์ž… (๋‹ซ๊ธฐ๋ฒ„ํŠผ์ด ์—†๋Š” PG์‚ฌ๋ฅผ ์œ„ํ•œ ์˜ต์…˜)
    } 

    if(bootpay != null && bootpay.current != null) bootpay.current.requestSubscription(payload, items, user, extra);
  }

  const goBootpayAuthTest = () => {
    const payload = {
      pg: '๋‹ค๋‚ ',  //['kcp', 'danal', 'inicis', 'nicepay', 'lgup', 'toss', 'payapp', 'easypay', 'jtnet', 'tpay', 'mobilians', 'payletter', 'onestore', 'welcome'] ์ค‘ ํƒ 1
      method: '๋ณธ์ธ์ธ์ฆ',
      order_name: '๋งˆ์Šค์นด๋ผ', //๋ณธ์ธ์ธ์ฆ ๋ช…
      // order_id: '1234_1234', //๊ฐœ๋ฐœ์‚ฌ์— ๊ด€๋ฆฌํ•˜๋Š” ์ฃผ๋ฌธ๋ฒˆํ˜ธ 
      // subscription_id: '12345_21345', //๊ฐœ๋ฐœ์‚ฌ์— ๊ด€๋ฆฌํ•˜๋Š” ์ฃผ๋ฌธ๋ฒˆํ˜ธ (์ •๊ธฐ๊ฒฐ์ œ์šฉ)
      authentication_id: '12345_21345', //๊ฐœ๋ฐœ์‚ฌ์— ๊ด€๋ฆฌํ•˜๋Š” ์ฃผ๋ฌธ๋ฒˆํ˜ธ (๋ณธ์ธ์ธ์ฆ์šฉ) 
      // method: 'card', 
      // methods: ['card', 'vbank', 'bank', 'phone'], // ํ†ตํ•ฉ๊ฒฐ์ œ์ฐฝ ์ง„ํ–‰์‹œ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฐ์ œ์ˆ˜๋‹จ ์ง€์ • ๊ฐ€๋Šฅ, method์™€ ํ•จ๊ป˜ ์ ์šฉ ๋ถˆ๊ฐ€ 
      // price: 1000, //๊ฒฐ์ œ๊ธˆ์•ก 
      // taxFree: 0, //๋ฉด์„ธ๊ธˆ์•ก 
    } 
 


    //๊ธฐํƒ€ ์„ค์ •
    const extra = {
      app_scheme: "bootpayrnapi", //ios์˜ ๊ฒฝ์šฐ ์นด๋“œ์‚ฌ ์•ฑ ํ˜ธ์ถœ ํ›„ ๋˜๋Œ์•„์˜ค๊ธฐ ์œ„ํ•œ ์•ฑ ์Šคํ‚ค๋งˆ๋ช…  
      show_close_button: true, // x ๋‹ซ๊ธฐ ๋ฒ„ํŠผ ์‚ฝ์ž… (๋‹ซ๊ธฐ๋ฒ„ํŠผ์ด ์—†๋Š” PG์‚ฌ๋ฅผ ์œ„ํ•œ ์˜ต์…˜)
      
    } 

    // const extra = new Extra();

    if(bootpay != null && bootpay.current != null) bootpay.current.requestAuthentication(payload, [], {}, extra);

  }

  const onCancel = (data: string) => {
    console.log('-- cancel', data); 
  }

  const onError = (data: string) => {
    console.log('-- error', data);
  }

  const onIssued = (data: string) => {
    console.log('-- issued', data);
  }

  const onConfirm = (data: string) => {
    console.log('-- confirm', data);
    if(bootpay != null && bootpay.current != null) bootpay.current.transactionConfirm(data);
  }

  const onDone = (data: string) => {
    console.log('-- done', data);
  }

  const onClose = () => {
    console.log('-- closed');
  }

  // React.useEffect(() => {
  //   BootpayApi.multiply(3, 7).then(setResult);
  // }, []);

  return (
    <View style={styles.container}>
      <TouchableOpacity
          style={styles.button}
          onPress={goBootpayTest}
        >
        <Text>์ผ๋ฐ˜๊ฒฐ์ œ ๊ฒฐ์ œํ…Œ์ŠคํŠธ</Text>
      </TouchableOpacity> 

      <Bootpay 
      ref={bootpay}
      ios_application_id={'5b8f6a4d396fa665fdc2b5e9'}
      android_application_id={'5b8f6a4d396fa665fdc2b5e8'} 
      // ios_application_id={'5b9f51264457636ab9a07cdd'}
      // android_application_id={'5b9f51264457636ab9a07cdc'} 
      onCancel={onCancel}
      onError={onError}
      onIssued={onIssued}
      onConfirm={onConfirm}
      onDone={onDone}
      onClose={onClose} 

      /> 
      <TouchableOpacity
          style={styles.button}
          onPress={goBootpaySubscriptionTest}
        >
        <Text>์ •๊ธฐ๊ฒฐ์ œ ํ…Œ์ŠคํŠธ</Text>
      </TouchableOpacity> 
      <TouchableOpacity
          style={styles.button}
          onPress={goBootpayAuthTest}
        >
        <Text>๋ณธ์ธ์ธ์ฆ ํ…Œ์ŠคํŠธ</Text>
      </TouchableOpacity> 
 
    </View>
  );

  
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
  },
  button: {
    alignItems: "center",
    backgroundColor: "#DDDDDD",
    padding: 10,
    margin: 10,
  },
}); 
 

Documentation

๋ถ€ํŠธํŽ˜์ด ๊ฐœ๋ฐœ๋งค๋‰ด์–ผ์„ ์ฐธ์กฐํ•ด์ฃผ์„ธ์š”

๊ธฐ์ˆ ๋ฌธ์˜

์ฑ„ํŒ…์œผ๋กœ ๋ฌธ์˜

License

MIT License.

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •