iamport-react-native icon indicating copy to clipboard operation
iamport-react-native copied to clipboard

IOS에서 이니시스 실시간계좌이체 결제완료 후 다음 버튼이 눌리지 않습니다.

Open yeonuk-hwang opened this issue 4 years ago • 15 comments

IOS환경에서 이니시스 실시간 계좌이체 결제 완료 후 다음 버튼이 눌리지 않습니다. 뱅크페이 실행 -> 결제 -> 뱅크페이에서 브라우저에 결과하면 노출 -> 확인버튼 누르고 딥링크 통해서 다시 원래 앱으로 복귀 과정까지는 원활하게 흘러가는데, 복귀한 화면에서 "다음" 버튼이 눌리지 않습니다.

아이폰 X, XS, 6S 모두 동일한 증상이 발현됩니다.

IMG_5951

IMG_5952

IMG_5950

return (
    <View>
      <IMP.Payment
        userCode={IAMPORT_ID}
        data={params as PaymentData}
        loading={<UsefulLoad />}
        callback={paymentCallBack}
      />
    </View>
  );
}

const View = styled.View`
  flex: 1;
  padding-top: ${getStatusBarHeight()}px;
  margin-bottom: ${getBottomSpace()}px;
`;

코드는 위와 같이 단순하고, 혹시 저 노치부분과 하단 홈바부분을 대응하기 위한 View가 문제가 되는건가 싶어서 제거해봤지만 동일한 증상입니다.

연관되었다고 생각되는 라이브러리버전은

"react-native": "0.63.4", "react-native-webview": "^11.0.2",

입니다.

yeonuk-hwang avatar Jan 26 '21 09:01 yeonuk-hwang

안녕하세요 아임포트 기술지원팀입니다.

이니시스 - 실시간 계좌이체 결제 연동을 위해서는 별도의 설정이 필요합니다. 매뉴얼에 기재되어 있는데 아마 이 부분을 놓치신 것 같습니다. 조치 후에도 같은 이슈가 재현되시는지 확인 부탁드립니다.

감사합니다.

SoleeChoi avatar Jan 28 '21 09:01 SoleeChoi

딥링크설정은 사전에 메뉴얼 및 RN공식문서 보고 *AppDelegate.m 파일 생성해서 거기에 해당코드 추가하는식으로 설정했었습니다. AppDelegate.m 파일이 있는 동일 디렉토리에 *AppDelegate.m 파일 생성 후 거기에 아래의 코드 추가했는데 혹 뭔가 잘못된 부분이 있을까요??

#import <React/RCTLinkingManager.h>

- (BOOL)application:(UIApplication *)application
   openURL:(NSURL *)url
   options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
  return [RCTLinkingManager application:application openURL:url options:options];
}

추가로 AppDelegate.m 파일은 아래와 같습니다.

#import "AppDelegate.h"

#import <React/RCTBridge.h>
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
#import "RNSplashScreen.h"

#ifdef FB_SONARKIT_ENABLED
#import <FlipperKit/FlipperClient.h>
#import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h>
#import <FlipperKitUserDefaultsPlugin/FKUserDefaultsPlugin.h>
#import <FlipperKitNetworkPlugin/FlipperKitNetworkPlugin.h>
#import <SKIOSNetworkPlugin/SKIOSNetworkAdapter.h>
#import <FlipperKitReactPlugin/FlipperKitReactPlugin.h>

static void InitializeFlipper(UIApplication *application) {
  FlipperClient *client = [FlipperClient sharedClient];
  SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults];
  [client addPlugin:[[FlipperKitLayoutPlugin alloc] initWithRootNode:application withDescriptorMapper:layoutDescriptorMapper]];
  [client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]];
  [client addPlugin:[FlipperKitReactPlugin new]];
  [client addPlugin:[[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]];
  [client start];
}
#endif

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
#ifdef FB_SONARKIT_ENABLED
  InitializeFlipper(application);
#endif

  RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"mobile"
                                            initialProperties:nil];

  rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];

  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
  UIViewController *rootViewController = [UIViewController new];
  rootViewController.view = rootView;
  self.window.rootViewController = rootViewController;
  [self.window makeKeyAndVisible];
  [RNSplashScreen show]; 

  return YES;
}

- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
#if DEBUG
  return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"packages/mobile/index" fallbackResource:nil];
#else
  return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif
}

@end

AppDelegate.m 파일에 바로 딥링크관련 코드들을 추가했을때에는 애초에 결제가 되지 않고 네트워크 통신에 문제있다는 Alert이 뱅크페이결제완료에서 다시 본 앱을 복귀할때 발생했고 결제완료페이지까지 이동하지도 않고 바로 콜백이 실행되었습니다(이 때 Callback함수에 전달되는 Respone 확인해보면 imp_uid, merchant_uid는 전달되는데 imp_success값은 전달되지 않았습니다.)

Alert내용은 아래와같았습니다.

네트워크 연결이 불안정합니다.(1)
결제완료 후 결과를 확인하시기 바랍니다.
* code: 0

*AppDelegate.m 파일로 딥링크 설정을 다시 했을때에는 실제 결제도 이루어지고 본앱으로 복귀도 되는데(엄청 간헐적으로 결제가 되지 않고 네트워크 통신에 문제있다는 Alert이 뜨긴 했습니다) 결제완료페이지에서 "다음"버튼만 눌리지 않는 현상이 지속적으로 발생하고 있습니다.(이때는 다음버튼이 안눌려서 CallBack함수도 실행되지 않고 있는 상태입니다.)

yeonuk-hwang avatar Jan 29 '21 00:01 yeonuk-hwang

안녕하세요 아임포트 기술지원팀입니다.

1) AppDelegate.m 파일 기존의 AppDelegate.m 파일과 이와 이름이 다른 *AppDelegate.m 파일 이렇게 2개가 있으시고 *AppDelegate.m 파일에 아임포트가 안내한 코드를 작정해두신 것으로 이해하였고 올바르게 연동하신 것이 맞으십니다.

매뉴얼에는 크게 2가지 방법을 안내드리고 있는데 AppDelegate.m 파일에 해당 코드를 추가했을때 기존 코드와의 호환성 등의 문제로 정상적으로 동작하지 않는 경우가 있어 이럴때는 고객님처럼 별도의 파일을 만드는 방법으로 연동하도록 하고 있습니다.

2) imp_success 파라미터 이니시스 - 실시간 계좌이체의 경우에만 imp_success값이 전달되고 있지 않은데 사실 해당 필드는 오래 전 아임포트 코어 단에서 deprecated되었고 참고용으로만 사용하시도록 안내하고 있으며 정확한 결제 성공/실패 여부는 imp_uid로 결제내역을 조회하여 판단하시도록 권장하고 있습니다.

3) 네트워크 연결 불안정 이슈 해당 이슈는 저희도 최근에 접한 것인데 (RN 프로젝트 외에 다른 프로젝트에서 접함) 말씀하신대로 매우 간헐적으로 발생하고 있어 원인을 파악하는데 애를 먹고 있습니다. <IMP.Payment /> 컴포넌트 렌더링시 전달하는 결제 데이터(data) prop의 app_scheme값과 info.plist 파일에 선언하신 URL Scheme값이 정확히 일치하면 문제는 없는데 혹시 관련하여 업데이트 된 내용이 있으면 전달드리도록 하겠습니다.

4) 다음 버튼이 클릭 되지 않는 이슈 뱅크페이 앱 결제 프로세스는 다음과 같습니다. [1] 귀하의 앱에서 이니시스 - 계좌이체 결제창 호출 -> [2] 뱅크페이 앱에서 인증 완료 -> [3] 사파리 앱에서 이니시스 최종 결제 승인 페이지 렌더링 -> [4] 하단의 다음 버튼 클릭 -> [5] 귀하의 앱으로 복귀 -> [6] 콜백 함수 호출

즉 "다음" 버튼은 [4]단계에 있는 것이고 이 "다음" 버튼을 눌러서 [5] 앱으로 복귀가 진행되는 것이라 복귀는 되는데 "다음" 버튼 클릭이 되지 않는다고 하시는 것이 잘 이해가지 않습니다. [5]가 되자마자 바로 [6]이 실행되는 구조라서요. 정상적인 플로우를 확인하고 싶으시다면 example을 띄워서 테스트 해보시면 될 것 같습니다. 저희가 금일 해당 앱으로 여러번 테스트 했을때는 정상적으로 동작하는 것을 확인하였습니다.

감사합니다.

SoleeChoi avatar Jan 29 '21 02:01 SoleeChoi

안드로이드에서는 정상적으로 되며 IOS에서만 발생하는 문제로, [4]최종 결제 승인 페이지에서 하단의 확인버튼 클릭 [5]귀하의 앱으로 복귀 이 과정에서 문제가 생깁니다. [5]번이 실행되고나서 바로 콜백함수가 호출되는 것이 아니라 앱으로 복귀하고나면 하단에 "다음"버튼이 있는 이니시스 결제창이 렌더링되고 여기서 "다음"버튼이 눌리지 않는 문제입니다. 콜백이 아마 저 다음버튼을 누르고 나서 실행되는 것 같은데 그래서 콜백도 실행이 되지 않고 있습니다.

아래의 사진 중 첫번째 사진이 [4]에 해당하는 과정이고 두번째사진이 [5] 앱으로 복귀 후 렌더링 되는 화면입니다.

example로 테스트를 해보고싶으나, 테스트과정에서 뱅크페이 앱 설치 및 실제 결제 등록(간편결제 또는 공인인증서가 필요합니다..)이 필수적으로 보이는데 시뮬레이터에서 뱅크페이 앱을 설치하고 결제등록을 할 수 있는 방법이 없어보여서 테스트를 못하고 있는 상황입니다.

혹 실기기에 example프로젝트를 설치해서 확인해볼 수 있는 방법이 있나요?

IMG_5968

IMG_5969

https://user-images.githubusercontent.com/54208214/106227506-a1f1e600-622c-11eb-9d1f-1a3cc9748fe3.MP4

yeonuk-hwang avatar Jan 29 '21 03:01 yeonuk-hwang

안녕하세요 아임포트 기술지원팀입니다.

말씀하신 바와 같이 [5]번이 실행되고나서 바로 콜백함수가 호출되는 것이 아니라 앱으로 복귀하고나면 하단에 다음 버튼이 있는 이니시스 결제창이 렌더링 되는 것이 문제인 것 같습니다.

본래 [5]번 이후 바로 콜백 함수가 호출되는데 음.. AppDelegate.m 파일에 작성한 코드가 제대로 실행되지 않는 것 같습니다.

파일명을 *AppDelegate.m으로 작성해서 인식을 못하는건가... 혹시 매뉴얼에 안내되어 있는 대로 AppDelegate+Iamport.m, AppDelegate+Iamport.h 와 같이 만들어보시겠어요? 또한 XCode에서 브레이크 포인트를 찍어서 사파리 앱 -> 귀하의 앱으로 복귀시 관련 로직을 타는지 체크 부탁드립니다.

example 프로젝트는 직접 실행해보실 수 있습니다. 관련 내용은 여기를 참고해주세요.

감사합니다.

SoleeChoi avatar Jan 29 '21 03:01 SoleeChoi

*AppDelegate 파일 지우고 example과 동일하게 ios디렉토리 하위에 AppDelegate+Iamport.m, AppDelegate+Iamport.h 만들어서 진행했는데 이경우엔 아예 결제도 되지않고 네트워크통신이 불안정합니다 Alert이 출력됩니다.

네트워크 연결이 불안정합니다.(1)
결제완료 후 결과를 확인하시기 바랍니다.
* code: 0
#ifndef AppDelegate_Iamport_h
#define AppDelegate_Iamport_h

#import "AppDelegate.h"

@interface AppDelegate (mobile)

@end


#endif /* AppDelegate_Iamport_h */
#import <Foundation/Foundation.h>
#import "AppDelegate+Iamport.h"
#import <React/RCTLinkingManager.h>

@implementation AppDelegate (mobile)

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
            options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
  return [RCTLinkingManager application:application openURL:url options:options];
}

@end

*AppDelegate.m 파일로 설정했을때는 결제까지는 완료되었었습니다.

yeonuk-hwang avatar Jan 29 '21 09:01 yeonuk-hwang

example 프로젝트 디바이스에 연결해서 테스트해본 결과 아마 모듈자체에 이슈가 있는것 같습니다.

이슈 내용은

앱 복귀시 콜백은 실행됨(imp_successe 값은 IOS의 경우 전달되지 않음, 안드로이드는 전달 되는것으로 보임)

callBack에 네비게이팅 시키는 로직이 들어가는 순간 실 결제가 안됨 -> imp_success에 false값이 안오기때문에 paymentResult로 네비게이팅되고 결제완료라는화면이 출력되지만, 실제 어드민에서 들어가서 확인해보면 미결제상태임

paymentResult로 네비게이팅 동작을 하지 않으면, "다음"버튼이 있는 결제결과페이지가 렌더링됨, 이 경우 실제 결제까지 원활하게 이루어짐 사파리등의 브라우저에서 결제완료 버튼을 눌러서 앱 복귀시 콜백이 실행되고, 그 뒤 결제완료 페이지에서 "다음" 버튼을 누를시 다시 콜백이 실행됨

동작결과로 추측해보면 앱 복귀 시 "다음" 버튼이 있는 결제완료 화면이 표출되지 않는 경우 결제가 완료되지 않는 것으로 추측됨

제가 작업하고 있는 프로젝트에서는 최초 앱 복귀시에도 콜백이 실행안되는 이슈도 있지만 일단 대략적인 원인은 위의 이슈와 비슷해보입니다.

예제프로젝트로 테스트를 진행했는데, 위와 같은 증상이 나왔고 혹 진행과정에서 제가 뭔가 잘못 건드렸을 경우가 있어서 레파지토리 링크 걸어두겠습니다. 모듈의 이슈인지 한번 확인부탁드립니다😀

yeonuk-hwang avatar Feb 01 '21 07:02 yeonuk-hwang

안녕하세요 아임포트 기술지원팀입니다.

우선, 상세하게 디버깅 해주시고 직접 레파지토리도 남겨주신 점 깊이 감사드리며 답변이 지연되어 대단히 죄송하다는 말씀 올립니다. 뱅크페이 앱 자체가 동작이 상당히 불안정하고 앞서 남겨주신 "네트워크 연결 불안정 이슈"와 같이 간헐적으로 발생하는 문제도 있어 어떤 점이 문제를 발생시키는지 정확히 포착하는데 어려움이 있었습니다.

iamport-react-native 모듈은 최초 배포된지 어연 3년이 된 만큼 해당 코드가 정상 동작함을 확인했고 기존에 고객님들께서도 확인해주신 부분이라 더욱 의문이 들었던 것 같습니다만 아무래도 이니시스가 이번에 UI/UX를 변경하면서 내부 로직도 함께 변경하지 않았나 싶습니다.

어느 부분이 변경되었는지는 전달 받은 바가 없었으나 디버깅을 하면서 의심되는 정황을 발견하여 feature/trans 브랜치에 반영해두었습니다. example 프로젝트에서는 정상 동작하는 것을 확인하였는데 혹시 모르니 고객님께서 feature/trans 브랜치를 설치하시어 정상 동작하시는지 테스트 가능하실까요? 확인되면 바로 버전업을 하여 배포하려고 합니다.

참고로 imp_success 파라미터는 기존에 안내된대로 이니시스 - 실시간 계좌이체시 전달되지 않으나 해당 값은 이미 deprecatd 되었기 때문에 참고용으로 사용해주시길 바랍니다.

또한 뱅크페이 앱에서 인증 완료 -> 사파리 브라우저에서 확인 버튼 클릭 -> 귀하의 앱으로 복귀 -> 곧바로 콜백 함수 호출이 정상적인 플로우이며 콜백 함수에서는 매뉴얼에 안내되어 있는 대로 다른 라우트로 리디렉션 하는 로직을 작성해주시길 바랍니다.

이용에 불편을 드려 대단히 죄송합니다. 감사합니다.

SoleeChoi avatar Feb 04 '21 09:02 SoleeChoi

친절한 답변 감사드립니다😀 feature/trans 브랜치로 이동해서 테스트했는데 동일하게 결제완료페이지는 넘어가지지만 실 결제는 이루어지지 않는 상태입니다😂 확인 부탁드립니다!

IMG_6020 2 스크린샷 2021-02-05 오후 4 36 21

yeonuk-hwang avatar Feb 05 '21 07:02 yeonuk-hwang

안녕하세요 아임포트 기술지원팀입니다.

말씀하신 이후에 테스트를 엄청나게 해 본 결과 저도 20번에 1번 꼴로 같은 상황이 발생하고 있어 보다 심도있게 디버깅을 해보았습니다.

사파리 앱으로 복귀함과 동시에 이니시스에서 최종 결제 승인을 위한 HTTP 리퀘스트를 날리는데 이 리퀘스트가 끝나고 나서 콜백 함수가 호출되어야 하지만 자바스크립트가 비동기로 동작하므로 이 순서가 보장되지 않아 간헐적으로 어떤 결제건은 미결제로 어떤 결제건은 결제 완료인 상태로 콜백 함수가 호출된 것으로 파악했습니다.

즉, 플로우로 보면 아래와 같이 동작해야 정상입니다.

  1. 사파리 앱에서 복귀(app_scheme://imp_uid=%26merchant_uid=%26m_redirect_url=)
  2. 최종 결제 승인을 위해 이니시스가 HTTP 리퀘스트 호출
  3. "다음" 버튼이 있는 최종 화면으로 이동
  4. "다음" 버튼을 클릭
  5. 1번과 마찬가지로 app_scheme://imp_uid=%26merchant_uid=%26m_redirect_url=로 HTTP 리퀘스트 호출
  6. 콜백 함수 호출

그런데 지금까지는 위와 같이 순서가 보장되어있지 않아 미결제로 남아있을때는 2번이 끝나기 전에 6번이 수행되었을때고 결제완료로 남아있을때는 2번은 끝났고 3번이 수행되기 전에 6번이 수행되었을때로 추정됩니다. 따라서 순서를 보장하기 위한 이니시스 - 실시간 계좌이체 - IOS 전용 플래그를 추가하여 feature/trans 브랜치에 다시 반영하였습니다. feature/trans 브랜치로 재설치/재빌드 해보신 후 다시 확인해주실 수 있으실까요?

번거롭게 해드려 정말 죄송합니다. 감사합니다.

SoleeChoi avatar Feb 05 '21 08:02 SoleeChoi

example 프로젝트에서 정상적으로 동작하는 것 확인했습니다! 버전업되어서 배포되면 적용중인 프로젝트에도 적용 후 확인해보겠습니다.

yeonuk-hwang avatar Feb 08 '21 04:02 yeonuk-hwang

안녕하세요 아임포트 기술지원팀입니다.

v1.6.2feature/trans 브랜치 로직을 반영하였습니다.

확인 후 안내 부탁드립니다. 감사합니다.

SoleeChoi avatar Feb 08 '21 05:02 SoleeChoi

먼저, 빠른 피드백 감사드립니다😀 다만 1.6.2 업데이트 되고 나서도 계속해서 결제완료페이지에서 "다음"버튼이 안눌리는 이슈가 프로젝트에서 지속되고 있었습니다. example에서는 정상적으로 버튼이 눌리고 동작하기에 제 프로젝트의 문제인가 싶어서 새롭게 react-native-init해서 react-navigation, iamport-react-native 만 설치하고 테스트해봤는데 동일한 증상입니다. 아마도 example의 package.json을 보니 라이브러리들의 버전이 옛날 버전이던데 혹시 여기서 발생하는 이슈인지 확인부탁드립니다. 참고용으로 레파지토리 링크 걸어두겠습니다. 설정문제인가 싶어서 *AppDelegate.m 파일로 설정한 브랜치(test/AppDelegate)와 아임포트측 example 프로젝트에서 설정한대로 한 AppDelegate_Iamport 파일 생성한 브랜치(master)둘다 올려두었습니다.(둘다 결제까지는 정상적으로 이루어지고 "다음"버튼만 안눌렸습니다.)

example 프로젝트의 디펜던시들

  "dependencies": {
    "iamport-react-native": "file:..",
    "native-base": "^2.12.1",
    "react": "^16.8.3",
    "react-native": "^0.59.9",
    "react-native-gesture-handler": "^1.3.0",
    "react-native-webview": "^10.8.3",
    "react-navigation": "^3.11.0"
  },

새롭게 init해서 테스트한 프로젝트의 디펜던시들

  "dependencies": {
    "@react-native-community/masked-view": "^0.1.10",
    "@react-navigation/material-top-tabs": "^5.3.13",
    "@react-navigation/native": "^5.9.2",
    "@react-navigation/stack": "^5.14.2",
    "iamport-react-native": "^1.6.2",
    "react": "16.13.1",
    "react-native": "0.63.4",
    "react-native-gesture-handler": "^1.9.0",
    "react-native-reanimated": "^1.13.2",
    "react-native-safe-area-context": "^3.1.9",
    "react-native-screens": "^2.17.1",
    "react-native-tab-view": "^2.15.2",
    "react-native-webview": "^11.2.1"
  },```

yeonuk-hwang avatar Feb 09 '21 02:02 yeonuk-hwang

안녕하세요 아임포트 기술지원팀입니다.

IOS 앱 빌드를 위해 .xcworkspace 파일을 열어보면 아래와 같이 AppDelegate+Iamport 파일이 없는 것을 확인해볼 수 있습니다.

image

실제로 finder에서 보면 있는데도 .xcworkspace 파일로 열어보면 없는 이유는 해당 파일을 XCode에서 만드신게 아니셔서 그런 것 같습니다. 혹시 해당 파일을 매뉴얼에 안내되어 있는 것 처럼 XCode에서 만드신 것이 아니시고 파일을 복붙하셨거나 텍스트 에디터에서 만드신거라면 XCode에서 만드신 후 다시 시도해보시길 바랍니다.

제가 직접 해당 파일을 지우고 XCode에서 다시 만든 다음 다시 시도해보니 정상적으로 결제 완료 및 콜백 함수 호출되는 것을 확인하였습니다.

감사합니다.

SoleeChoi avatar Feb 15 '21 06:02 SoleeChoi

알려주신 내용대로 조치하니까 해결됬습니다. 이 이슈는 모두 해결된 것 같습니다. 상세한 지원 감사드립니다😀

그런데 추가적으로, 이니시스 -> 뱅크페이를 이용한 실시간계좌이체 건에서만 발생하는 문제 같은데, 권장하신대로 아임포트측의 RESTAPI를 통해서 결제여부를 검증하고 있는데, 뱅크페이 앱에서 결제를 완료하고 다시 앱으로 복귀했을 때, RESTAPI를 호출하면은 status가 paid로 전환되는 시점이 불확실한(다른 결제에비해서 딜레이되는) 문제가 있습니다. 카드결제같은 경우에는 콜백실행시점에 결제검증을 위해서 api를 호출하면 정상적으로 paid로 처리된것으로 응답이 오는데 실시간 계좌이체의 경우에는 콜백실행시점에 결제검증을 위해서 api를 호출하면 아직 paid로 변하지 않아서 결제완료처리를 하기가 불가능한 이슈가 있습니다. 일단 일정회수 retry를 통해서 그 안에 paid로 변하면 결제성공처리를 했는데, 임시방편이고 paid로 변하는 시점이 확실하지 않다면 retry횟수 안에 paid로 변하지 않는다면 실 결제는 이루어졌는데, 클라이언트 상에서는 실 결제 여부를 캐치하기가 힘들다는 문제도 있고, 다른 결제는 바로 paid로 전환되는데 실시간계좌이체의 경우에만 시점이 불확실하고, 늦어지는 경우는 이슈가 될 수 있다고 생각해서 문의드립니다.

yeonuk-hwang avatar Feb 18 '21 00:02 yeonuk-hwang