최근에 회사에서 운영하는 플랫폼 앱이 안드로이드 최신 기종에서 다운로드 되지 않는 문제가 발생했었다.
그래서 targetSdkVersion을 31로 업데이트해서 다시 배포한 적이 있었다.
그 때부터일까,, 앱에서 카드 결제가 되지 않는다는 문의가 속출했다.
카드 결제를 시도하면 카드사 앱으로 넘어 갔다가 설치가 되어 있는데도 불구하고 카드사 앱이 열리지 않아 결제를 완료하지 못하는 문제가
계속 발생하고 있었다.
개발자이지만 안일하게도 앱을 업데이트 하지 않았거나 단순 기종 문제일 것이라고 판단했던 나는 며칠을 두고 보고 있었다,,
그러나 문의가 계속 빈번하게 들어오는걸 보고 뭔가 잘못 되었다는 것을 인지했다.
그래서 잘 알지도 못하는 안드로이드 프로젝트를 또 뒤져보고 구글링하기 시작했다.
나이스페이먼츠 개발자 페이지도 들어가보고,.
이것저것 찾아보다가 또, 역시나, 결국 희망을 찾았다.
찾아보니 API 30 이상(안드로이드 11)을 타겟할 때 외부 앱을 실행할 때는 Manifest에 queries에
외부 앱 패키지를 직업 추가 해주어야 한다고 한다.
여기서 말하는 외부 앱 패키지란?
구글 플레이스토어에서 원하는 앱을 검색한 후 url에서 id파라미터 값을 의미한다.
국민카드 앱을 검색했을 때 나오는 id 값인
com.kbcard.cxh.appcard
이 값이 KB Pay 앱의 패키지 명 이다.
아래와 같이 이런식으로 써주면 되는 것이였다.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="내패키지명"
...
<!-- SDKVersion 30 이상은 외부앱 실행 시 권한 추가 필요-->
<queries>
<package android:name="com.kbcard.cxh.appcard" />
</queries>
...
<application
...
>
...
</application>
아래는 나이스페이먼츠 개발자 문서에서 제공한 내용이다.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="sample.nicepay.co.kr.nicepayappsample">
<queries>
<!--신용카드-->
<package android:name="kr.co.samsungcard.mpocket" /> <!--삼성 앱카드, 삼성 앱카드 공동인증서-->
<package android:name="com.shcard.smartpay" /> <!--신한 페이판-->
<package android:name="com.shinhancard.smartshinhan" /> <!--신한(ARS/일반결제/Smart결제), 신한 공동인증서-->
<package android:name="com.kbcard.cxh.appcard" /> <!--KBPay-->
<package android:name="com.kbstar.liivbank" /> <!--LiiV(국민은행)-->
<package android:name="com.kbstar.reboot" /> <!--new liib-->
<package android:name="kvp.jjy.MispAndroid320" /> <!--페이북/ISP-->
<package android:name="com.hanaskcard.paycla" /> <!--하나카드 원큐페이-->
<package android:name="kr.co.hanamembers.hmscustomer" /> <!--하나멤버스-->
<package android:name="com.lcacApp" /> <!--롯데 앱카드-->
<package android:name="nh.smart.nhallonepay" /> <!--NH 올원페이, NH 올원페이 공동인증서-->
<package android:name="com.wooricard.smartapp" /> <!--우리 WON 카드-->
<package android:name="com.hyundaicard.appcard" /> <!--현대 앱카드-->
<package android:name="kr.co.citibank.citimobile" /> <!--씨티카드-->
<!--공인인증-->
<package android:name="com.hanaskcard.rocomo.potal" /> <!--하나카드-->
<package android:name="com.lumensoft.touchenappfree" /> <!--공동인증서-->
<!--백신-->
<package android:name="com.TouchEn.mVaccine.webs" /> <!--TouchEn mVaccine(신한)-->
<package android:name="com.ahnlab.v3mobileplus" /> <!--V3(NH, 현대)-->
<package android:name="kr.co.shiftworks.vguardweb" /> <!--V-Guard(삼성)-->
<!--간편결제-->
<package android:name="com.samsung.android.spay" /> <!--삼성페이(삼성, 농협, KB)-->
<package android:name="com.samsung.android.spaylite" /> <!--삼성페이 미니(삼성, KB)-->
<package android:name="com.kakao.talk" /> <!--카카오페이-->
<package android:name="com.nhn.android.search" /> <!--네이버페이-->
<package android:name="com.ssg.serviceapp.android.egiftcertificate" /> <!--SSGPay(현대)-->
<package android:name="com.nhnent.payapp" /> <!--페이코(삼성, 농협, KB)-->
<package android:name="com.lge.lgpay" /> <!--엘지페이(삼성, KB)-->
<package android:name="com.lottemembers.android" /> <!--LPay-->
<package android:name="com.tencent.mm" /> <!-- 위챗페이-->
<package android:name="viva.republica.toss" /> <!-- 토스-->
<!--계좌이체-->
<package android:name="com.kftc.bankpay.android" /> <!--금결원-->
<!--본인인증-->
<package android:name="com.sktelecom.tauth" /> <!--SKT-->
<package android:name="com.kt.ktauth" /> <!--KT-->
<package android:name="com.lguplus.smartotp" /> <!--LGT-->
</queries>
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true">
<activity android:name=".MainActivity"
android:configChanges="orientation"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".WebViewActivity"
android:label="NicePay Smart"
android:configChanges="orientation"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
</intent-filter>
</activity>
</application>
</manifest>
queries에 패키지가 다 들어가 있는 코드를 이미 제공하고 있었다. 아무래도 우리 앱이.., 오래..된 것까지는 아니여도,,. 허ㅠㅠ
어렵다 정말.
그래도 희망을 찾았고, 다시 한번 업데이트 배포를 했고. 검토 완료를 기다리고 있는 상황으로 검토 승인 이후에 최신 기종에서 결제가 제대로 되는지 확인 후 후기를 아래에 남기도록 하겠다.
[ 출처 : https://developers.nicepay.co.kr/manual-app.php ]
[ 출처 : https://to2.kr/eyD ] url이 길어서 줄였습니다.
'IT 유용한 정보' 카테고리의 다른 글
[react native] 생성된 프로젝트의 파일 설명 (0) | 2023.06.05 |
---|---|
[react native] 프로젝트 만드는 방법 (0) | 2023.06.05 |
협업툴 Slack으로 즐겁게 일하는 방법 :) Slack 상태 편집 하는 방법 (0) | 2023.05.17 |
Slack 유용한 단축키 모음 (0) | 2023.05.17 |
구글 플레이 콘솔에서 이전 앱 버전으로 롤백을 할 수 있는가? (2) | 2023.05.12 |