Jay
Jay3y ago

플러터 안드로이드 삼성카드 - 일반결제 v-guard 이슈

플러터를 통해 개발중에 있습니다. 웹뷰를 통하여 토스페이먼츠 연동하였는데 삼성페이 - 일반결제 시도 시, 백신이 설치된 상태에서 '백신 실행'버튼을 누르면 '라이선스 키를 찾을 수 없어, V-GUARD인스턴스 생성에 실패하였습니다. 앱을 종료합니다'라는 메시지가 뜨며 진행이 불가하네요. 안드로이드 매니페스트에 <package android:name="kr.co.shiftworks.vguardweb" /> 패키지 추가된 상태입니다.
23 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
Kimoon Lee
Kimoon Lee3y ago
techsupport@ tosspayments.com 으로 플러터 샘플 요청 메일 보내주시면 회신 드리드록 하겠습니다.
이실장
이실장3y ago
플러터에서 urlLauch할때 Uri.parse로 진행하시나요? >> intent 주소를 Uri.parse로 감싸서, launchUrl(주소)에 집어넣는지 확인한번 요청드려요
Jay
JayOP3y ago
네 Uri.parse로 런치하고있습니다
이실장
이실장3y ago
플러터 Uri.parse가 대문자를 다 소문자로 바꿔버립니다.. 그런데 vGuard는 라이센스 키를 대소문자 구분을 하기때문에 발생하는 현상입니다. intent변환하신 후에 lauchUrlString으로 열어주시면 괜찮을 것 같아요 intent 변환은 Method Channel 통해서 android native에서 진행하시나요?
Jay
JayOP3y ago
네 MethodChannel을 통해 진행하고있습니다 우선 launchUrlString으로 테스트 후 회신드리겠습니다
이실장
이실장3y ago
네네
Jay
JayOP3y ago
정상작동 확인했습니다 감사합니다 그렇다면 vguard 관련 매니페스트 스킴은 제거해도 되는건가요?
이실장
이실장3y ago
method channel통해서 개발하셨으면 매니페스트 스킴은 필요없는 것으로 알고 있습니다.
Jay
JayOP3y ago
넵 바쁜 와중에 도움 감사합니다
이실장
이실장3y ago
try{
await launchUrlString(finalUrl); // URL 실행 (dart Uri.parse가 대문자>소문자로 변환시켜, launchUrl 대신 launchUrlString 사용)
}catch(e){ // URL 실행 불가 시, 앱 미설치로 판단하여 마켓 URL 실행
finalUrl= await _convertIntentToMarketUrl(request.url); //앱이 설치되어 있지 않을 경우, playstore로 이동
launchUrlString(finalUrl);
}
try{
await launchUrlString(finalUrl); // URL 실행 (dart Uri.parse가 대문자>소문자로 변환시켜, launchUrl 대신 launchUrlString 사용)
}catch(e){ // URL 실행 불가 시, 앱 미설치로 판단하여 마켓 URL 실행
finalUrl= await _convertIntentToMarketUrl(request.url); //앱이 설치되어 있지 않을 경우, playstore로 이동
launchUrlString(finalUrl);
}
// Intent Url을 playStore Market Url로 변환
call.method.equals("getMarketUrl") -> {
try {
val url: String = call.argument("url")!!
val packageName = Intent.parseUri(url, URI_INTENT_SCHEME).getPackage()
val marketUrl = Intent(
Intent.ACTION_VIEW,
Uri.parse("market://details?id=$packageName")
)
result.success(marketUrl.dataString)
} catch (e: URISyntaxException) {
result.notImplemented()
} catch (e: ActivityNotFoundException) {
result.notImplemented()
}
}
// Intent Url을 playStore Market Url로 변환
call.method.equals("getMarketUrl") -> {
try {
val url: String = call.argument("url")!!
val packageName = Intent.parseUri(url, URI_INTENT_SCHEME).getPackage()
val marketUrl = Intent(
Intent.ACTION_VIEW,
Uri.parse("market://details?id=$packageName")
)
result.success(marketUrl.dataString)
} catch (e: URISyntaxException) {
result.notImplemented()
} catch (e: ActivityNotFoundException) {
result.notImplemented()
}
}
안드로이드의 경우 위와 같이 앱 미설치 되었을 때 마켓으로 이동도 가능하니 필요하실 경우 참고해주세요 위가 dart코드 아래가 methodchannel로 받은 Kotlin코드입니다.
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
Jay
JayOP3y ago
안드로이드 기기에서 농협카드 - 일반결제 -> 백신설치 혹은 결제진행하기 탭 시, market://details?id=com.ahnlab.v3mobileplus 로 이동하게 되는데 스토어쪽에서 문제 발생이라고 뜨고 더 이상 진행이 불가한데 확인한번 부탁드릴수 있을까요?
이실장
이실장3y ago
백신은 설치 안되어있는 상황인거죠?
Jay
JayOP3y ago
백신은 설치되어있습니다
이실장
이실장3y ago
v3mobileplusweb://%7B"CD":"18603043c18d1eb06d4ecd7d4c6c5f24","TK":"50FUPKKE86_hEv08PGSIonIR8ifuJjxl_xQx4k5j6EQ=","LK":"-5323837063486616722138055110936449768418566547772998050704318622719835903009107794884255235492187171874894016978920342916474317193124956374281441214094395","DT":"2022-12-05-20:30","TM":"15","CH":"ansimclick.hyundaicard.com","CU":"https://ansimclick.hyundaicard.com/mobile3/MBITFX110.jsp;jsessionid=IhiXy0w0QWplYtZROqnurUHzqTeCz9cNrAgi0aLIbduzayDPbU05D1zHbH3bn32j.dpacap12_servlet_re-xacs22","SA":"https://mpl.ahnlab.com","CV":"1","UA":"Mozilla/5.0 (Linux; Android 12; SM-F711N Build/SP2A.220305.013; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/108.0.5359.61 Mobile Safari/537.36"%7D/
v3mobileplusweb://%7B"CD":"18603043c18d1eb06d4ecd7d4c6c5f24","TK":"50FUPKKE86_hEv08PGSIonIR8ifuJjxl_xQx4k5j6EQ=","LK":"-5323837063486616722138055110936449768418566547772998050704318622719835903009107794884255235492187171874894016978920342916474317193124956374281441214094395","DT":"2022-12-05-20:30","TM":"15","CH":"ansimclick.hyundaicard.com","CU":"https://ansimclick.hyundaicard.com/mobile3/MBITFX110.jsp;jsessionid=IhiXy0w0QWplYtZROqnurUHzqTeCz9cNrAgi0aLIbduzayDPbU05D1zHbH3bn32j.dpacap12_servlet_re-xacs22","SA":"https://mpl.ahnlab.com","CV":"1","UA":"Mozilla/5.0 (Linux; Android 12; SM-F711N Build/SP2A.220305.013; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/108.0.5359.61 Mobile Safari/537.36"%7D/
v3같은 경우 원천사/백신앱중 유일하게 " 따음표가 포함되어있는데 lauchUrlString에서 못 읽는게 아닌가 싶네요.....
Jay
JayOP3y ago
launchUrl에서도 같은 이슈가 발생하는데 같은 이유일까요?
이실장
이실장3y ago
try{
await launchUrlString(finalUrl);
}catch(e){
await launchUrl(Uri.parse(finalUrl));

}
try{
await launchUrlString(finalUrl);
}catch(e){
await launchUrl(Uri.parse(finalUrl));

}
안그래도 위에코드로 테스트 시도중입니다.
Jay
JayOP3y ago
I/flutter (12215): FormatException: Invalid port (at character 18) I/flutter (12215): intent://%7B"CD":"b04bf1ade1c651c7304cd448ab39b3fc","TK":"48i2gfaTBtN9MsVhg.. launchUrl로 시도 시, 큰따음표 부분에서 에러가 잡히는 것 보니 못읽는게 맞는 것 같습니다
이실장
이실장3y ago
네 이부분은 당장 해결방법에 대해 안내해드리기 어려울 것 같습니다.
Jay
JayOP3y ago
네 그러면 혹시 심사에서 농협카드 결제가 빠져도 상관이 없을까요?
이실장
이실장3y ago
농협 일반결제만 안되는 부분이라 그대로 사용하셔도 크게 문제는 없을 것으로 보입니다. 해결방법은 찾으면 될 것같고요 (앱카드결제는 가능)
Jay
JayOP3y ago
넵 도움주셔서 감사합니다

Did you find this page helpful?