Chronology

새글쓰기

Json파일로 관리 시작 / Bootstrap 5.1적용
데이터 베이스로 Json파일을 활용, Bootstrap5.1적용 https://www.tanz.co.kr/KGinicisMobile/thankyouForMobilePay.asp?pageFrom=mx_rnext https://www.tanz.co.kr/KGinicisMobile/thankyouForMobilePay.asp?pageFrom=mx_rnext https://www.tanz.co.kr/KGinicisMobile/mx_startweb.asp?bank=creditCard&P_MOBILE=&P_NOTI=14611_:경기도%20부천시%20부흥로272번길%207%20&P_EMAIL=Tanzkorea@gmail.com&P_AMT=59000&P_GOODS=__Foot%20Massager%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20/%20&P_UNAME=이병일

gabia에 DB호스팅 추가 - tanzseason4 하고 vnyartdb DB호스팅을 tanzseason4로 복제 하고 완료됨
cn.tanz.co.kr에 사용중인 vnyartdb의 전 테이블을 tanzseason4로 옮긴다. 이후 vnyartdb는 vny homepage에서 사용하도록 데이터를 옮기도록 한다.

javascript 입문 수업 생활코딩 Youtube동영상
큰 도움이 되는 동영상으로 추천

https://www.youtube.com/watch?v=mCfvxOgPOts / Ford F-160
전기픽업트럭

ms1201.gabiadb.com의 nopcommerce 전체 테이블을 ms1901.gabiadb.com의 vnyartdb로 복원
ms1201.gabiadb.com의 nopcommerce 전체 테이블을 ms1901.gabiadb.com의 vnyartdb로 복원함. vnyart homepage에서 썡뚱맞게 nopcommerce디비를 사용했었는데 이제 vnyartdb로 옮겼으니 됐다. 대신 nopcommerce에는 vnyart의 데이터베이스가 남아 있는 셈이다.

DB호스팅관리
tanzservicedb -> tanzseason4로 복제 : tanzservicedb는 다른 사용이 가능한 상황 tanzseason3 : 현재 탄쯔홈페이지 데이터베이스 사용중 nopcommerce : vnyart homepage에 사용중이던 것을 vnyartdb로 복제 : nopcommerce는 다른 사용이 가능한 상황 tanzseason3 : 현재 탄쯔홈페이지 tanzservicedb : 빔 (tanzseason4와 동일) nopcommerce : 빔 (vnyartdb와 동일) tanzseason4 : 개발중인 탄쯔 홈페이지 vnyartdb :vnyart homepage

temp.tanz.co.kr을 프로젝트화 하다. / how to generate .csproj file for the old project.
프로젝트나 솔루션이 아니었던 탄쯔 홈페이지를 프로젝트 혹은 솔루션으로 사용할 수 있는 방법이 열렸다. 출처 : https://stackoverflow.com/questions/56130824/how-to-use-c-sharp-6-0-or-7-0-in-an-old-asp-net-website-not-website-project So the problem become: how to generate .csproj file for the old project. Just create a new project, and copy the code from old project inside Visual Studio. And then copy the new .csproj to the old project. And then your old asp.net project refreshed.:) 내 경우 새로 프로젝트로 만들고 그 쪽으로 올드 폴더를 다 옮기는 식으로 하고 IIS에서 세팅을 잡아줌으로써 해결 - 카피한 파일 중에 iiuser read가 필요한 것은 추가하였다.

Paypal 메뉴 생성
Understand Paypal payment method

Dependency Injection & Inversion of Control - https://www.youtube.com/watch?v=xQpdr-nsZok
https://www.youtube.com/watch?v=xQpdr-nsZok

48.49 DNS, IIS 서버에서 non www 삭제 / 탄쯔 홈페이지 / Redirecting Non-www URLs to www in iis
tanz.co.kr이 www.tanz.co.kr로 가게 하려고 그렇게 했으나 현재 되지 않고 있다. https://weblogs.asp.net/owscott/iis-url-rewrite-rewriting-non-www-to-www IIS URL Rewrite – rewriting non-www to www WRITE TWO RULES ON IIE URL REWRITE <rewrite> <rules> <rule name="Redirect HTTP to HTTPS (Sales)" stopProcessing="true"> <match url="(.*sales*)"/> <conditions> <add input="{HTTPS}" pattern="^OFF$"/> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther"/> </rule> <rule name="Redirect HTTP to HTTPS (RegistrationSucces)" stopProcessing="true"> <match url="(.*registrationsuccess*)"/> <conditions> <add input="{HTTPS}" pattern="^OFF$"/> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther"/> </rule> </rules> </rewrite> NON-WWW to WWW <rewrite> <rules> <rule name="Redirect domain.com to www" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions> <add input="{HTTP_HOST}" pattern="domain.com" /> </conditions> <action type="Redirect" url="http://www.domain.com/{R:0}" /> </rule> </rules> </rewrite>

kakaoPay 결제 승인 , IIS Rewrite 적용 https와 non www to www로 적용 tanz / vnyart / tanzmac / peterlee 등 -굉장하다 apple 사이트 처럼, asp.net core 코트롤러에서 view생성
토스와 카카오페이는 연동방법이 다르다. 토스를 참고하여 개발노트에 있는 각각의 curl을 해석하여 진행중이다. 이 둘을 진행하며 서로 보완할 여지를 발견했다. 카카오페이는 partner_order_id, partner_user_id, pg_token과 같은 변수가 토스와 다르다. 토스는 payToken과 orderNo 두가지를 저장했다. orderform2 table에 연동하면서 저장해야 할 값이 다르다. 이것을 불러서 사용해야 하는게 kakaoPay apporve redirect 에서 실행하고 진행해주어야 한다. apple site의 경우 now www, http 모두 https://www.apple.com으로 안내한다. 그게 답이다. asp.net core는 DI를 기본으로 사용한다. 이에 대한 동영상을 참고하고 이해했다. 어느 정도 까지. 한 가지 의문은 publish다 기본 publish는 bin폴더에 한다고 하는데 폴더를 내 경우 생성하고 거기에 했더니 거기에 web.config가 생성되어 있다. 앞으로 더 이해가 필요한 상황.

48,49서버에 curl설치

Gibia SMS RESTAPI 연동 방법 / access token 얻기 - 연동방법출처 https://sms.gabia.com/admin/api/
사용자 인증 단계 curl --location --request POST "https://sms.gabia.com/oauth/token" \ --header "Content-Type: application/x-www-form-urlencoded" \ --header "Authorization: Basic base64encode(SMS_ID:API_KEY) \ --data "grant_type=client_credentials" 실행후 Access Token을 얻는다. 요기서 base64encode(SMS_ID:API_KEY) 는 bGJhbGxldDI6ODFiYmVhMGUxMGQ0MzJjNjk1MTViYzJlNTQ1YjY0OTI= 에 해당한다. ()를 뺀 SMS_ID:API_KEY 를 base64encode한 값이다. {"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvc21zLmdhYmlhLmNvbVwvIiwiYXVkIjoiXC9vYXV0aFwvdG9rZW4iLCJleHAiOjE2MzUyMjY5ODcsImNyZWF0ZWRfYXQiOjE2MzUyMjMzODcsInVzZXJfaWQiOiJsYmFsbGV0MiIsImNsaWVudF9pcCI6IjIxOC4yMzIuMTExLjQ5In0.EKnOZDTGhx5P8X5IDbnQ4kozVkqEsPDqKzjFH6-TpeKZxyZBRvAwco3FM4YJ_WPKiQQoVPKlz1bXtq2PHqnJtQcTi0SWYJAwz_3htHoSr36hLP-mpo9GNl3QwfZgx8G8ehMrN6YleIDDUz40mUEZNhtVaqkxQW2vNz96E7EU97ZKRF3UWavaV6U0ChWeoRNV_99v2e3wLGzNjHAoFYEkFMbeDkj5sDyYJcWZ1yPzJkqNPjTVhLEl5kcrp7yDXkMJOeb-jA8udrxrr2OXd7OgZZ7zTJIcpbgUM511uvXgbpjLlDdUwq7RkOgDgcxr8VTh2lvk03TzLwmIrphNCybjzQ","refresh_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvc21zLmdhYmlhLmNvbVwvIiwiYXVkIjoiXC9vYXV0aFwvdG9rZW4iLCJleHAiOjE2MzUyNDQ5ODcsImNyZWF0ZWRfYXQiOjE2MzUyMjMzODcsImlzX3JlZnJlc2giOnRydWUsInVzZXJfaWQiOiJsYmFsbGV0MiIsImNsaWVudF9pcCI6IjIxOC4yMzIuMTExLjQ5IiwiZGF0YSI6W119.sko8Og9yc_2IS2EIJTCMJFOU25toGcUpvV2UzIwjipRcE0fdIyOPwU3alJnqWLHlNdxXBYHbtmC7mrCh2qWJ4ecRaWVhe5yMaZuaL3sLCdY9--2ldSU4-LWe0J67rZt15tWCq65IyK9hX-DSoowpD_nMYHZ6k27zn2Iq7ckTvKWpwE9gor6io6X99O7bdGCsfY22EXbLvhvrA4Bl_C3iLPMKxPOEu0iTAzicZxDjJVgh7_7YYXT61mARFdvm8FaWiDLGP2dsrOMDDOwIR3IK3ja_McGvJC169Nnz1GA1fca3zQAJ6oQMPwD39Q-umjCOzrrIEBmKN_GebkUfJuF07Q","expires_in":3600,"scope":"basic","create_on":"2021-10-26 13:43:07","is_expires":"N","token_type":"basic","code":"basic"} 단문 발송 curl --location --request POST "https://sms.gabia.com/api/send/sms" \ --header "Content-Type: application/x-www-form-urlencoded" \ --header "Authorization: Basic DckviEksLs6ZXlKMGVYQWlPaUpLVhiR2NpT2lKU1V6STFOaUo5LmV5SnBjM01pT2lKb2RIUndjenBjTDF3dmMyMXpMbWRoWW1saExtTnZiVnd2SWl3aVlYVmtJam9pWEM5dllYVjBhRnd2ZEc5clpXNGlMQ0pshWFhnT2pBNG5uVkVuLWtnVEJoRGpPeWc=" \ --data "phone=01000000000&callback=15444370&message=SMS%20TEST%20MESSAGE&refkey=[[RESTAPITEST1549847130]]" var url = "https://sms.gabia.com/api/send/sms"; var httpRequest = (HttpWebRequest)WebRequest.Create(url); httpRequest.Method = "POST"; httpRequest.ContentType = "application/x-www-form-urlencoded"; httpRequest.Headers["Authorization"] = "Basic DckviEksLs6ZXlKMGVYQWlPaUpLVhiR2NpT2lKU1V6STFOaUo5LmV5SnBjM01pT2lKb2RIUndjenBjTDF3dmMyMXpMbWRoWW1saExtTnZiVnd2SWl3aVlYVmtJam9pWEM5dllYVjBhRnd2ZEc5clpXNGlMQ0pshWFhnT2pBNG5uVkVuLWtnVEJoRGpPeWc="; var data = "phone=01000000000&callback=15444370&message=SMS%20TEST%20MESSAGE&refkey=[[RESTAPITEST1549847130]]"; using (var streamWriter = new StreamWriter(httpRequest.GetRequestStream())) { streamWriter.Write(data); } var httpResponse = (HttpWebResponse)httpRequest.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var result = streamReader.ReadToEnd(); } Console.WriteLine(httpResponse.StatusCode); access token eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvc21zLmdhYmlhLmNvbVwvIiwiYXVkIjoiXC9vYXV0aFwvdG9rZW4iLCJleHAiOjE2MzUyMzA2MjQsImNyZWF0ZWRfYXQiOjE2MzUyMjcwMjQsInVzZXJfaWQiOiJsYmFsbGV0MiIsImNsaWVudF9pcCI6IjIxOC4yMzIuMTExLjQ5In0.R2__Xk4ndW-RWmmdjTzjtzNy_0nB64GYWXJZYD3c3yTklQ1K3UChM5MQLfycgzMYC8KJHDmhGtEgLFhydcDwM5_m9_DQpdjonjTqMOnY0lbjLwfGzqU_4nrOOyMR3FziHq-DpZKgSgAUMvmf0NlAijCrzIxeeuxc_dGoPyhhi_ivWLsrslzYkcorgFCco8K2oHoo5hnL1XAgZPyduYO-ZGKsP0zIN0Y46YaiNCtNfTPhR7Gi3yfXFHOx0zYDGVV8A6YfaUrgrKf-9LOit6_FhzdRRSUlHtro0PsK9VlUCoYJmwCy7M-JNP4aoD9ndUN-Zy8TyPGYUNqrj9m8JCV0BQ 변수 phone, callback, message, refkey는 각각 어떤 역할? phone 01000000000 callback 15444370 message SMS TEST MESSAGE refkey RESTAPITEST1549847130 Any unique string to find your result of send after lballet2:eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvc21zLmdhYmlhLmNvbVwvIiwiYXVkIjoiXC9vYXV0aFwvdG9rZW4iLCJleHAiOjE2MzUyMzA2MjQsImNyZWF0ZWRfYXQiOjE2MzUyMjcwMjQsInVzZXJfaWQiOiJsYmFsbGV0MiIsImNsaWVudF9pcCI6IjIxOC4yMzIuMTExLjQ5In0.R2__Xk4ndW-RWmmdjTzjtzNy_0nB64GYWXJZYD3c3yTklQ1K3UChM5MQLfycgzMYC8KJHDmhGtEgLFhydcDwM5_m9_DQpdjonjTqMOnY0lbjLwfGzqU_4nrOOyMR3FziHq-DpZKgSgAUMvmf0NlAijCrzIxeeuxc_dGoPyhhi_ivWLsrslzYkcorgFCco8K2oHoo5hnL1XAgZPyduYO-ZGKsP0zIN0Y46YaiNCtNfTPhR7Gi3yfXFHOx0zYDGVV8A6YfaUrgrKf-9LOit6_FhzdRRSUlHtro0PsK9VlUCoYJmwCy7M-JNP4aoD9ndUN-Zy8TyPGYUNqrj9m8JCV0BQ ->base64encode bGJhbGxldDI6ZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKU1V6STFOaUo5LmV5SnBjM01pT2lKb2RIUndjenBjTDF3dmMyMXpMbWRoWW1saExtTnZiVnd2SWl3aVlYVmtJam9pWEM5dllYVjBhRnd2ZEc5clpXNGlMQ0psZUhBaU9qRTJNelV5TXpBMk1qUXNJbU55WldGMFpXUmZZWFFpT2pFMk16VXlNamN3TWpRc0luVnpaWEpmYVdRaU9pSnNZbUZzYkdWME1pSXNJbU5zYVdWdWRGOXBjQ0k2SWpJeE9DNHlNekl1TVRFeExqUTVJbjAuUjJfX1hrNG5kVy1SV21tZGpUemp0ek55XzBuQjY0R1lXWEpaWUQzYzN5VGtsUTFLM1VDaE01TVFMZnljZ3pNWUM4S0pIRG1oR3RFZ0xGaHlkY0R3TTVfbTlfRFFwZGpvbmpUcU1PblkwbGJqTHdmR3pxVV80bnJPT3lNUjNGemlIcS1EcFpLZ1NnQVVNdm1mME5sQWlqQ3J6SXhlZXV4Y19kR29QeWhoaV9pdldMc3JzbHpZa2NvcmdGQ2NvOEsyb0hvbzVobkwxWEFnWlB5ZHVZTy1aR0tzUDB6SU4wWTQ2WWFpTkN0TmZUUGhSN0dpM3lmWEZIT3gwellER1ZWOEE2WWZhVXJncktmLTlMT2l0Nl9GaHpkUlJTVWxIdHJvMFBzSzlWbFVDb1lKbXdDeTdNLUpOUDRhb0Q5bmRVTi1aeThUeVBHWVVOcXJqOW04SkNWMEJR [sample] curl --location --request POST "https://sms.gabia.com/api/send/sms" \ --header "Content-Type: application/x-www-form-urlencoded" \ --header "Authorization: Basic bGJhbGxldDI6ZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKU1V6STFOaUo5LmV5SnBjM01pT2lKb2RIUndjenBjTDF3dmMyMXpMbWRoWW1saExtTnZiVnd2SWl3aVlYVmtJam9pWEM5dllYVjBhRnd2ZEc5clpXNGlMQ0psZUhBaU9qRTJNelV5TXpBMk1qUXNJbU55WldGMFpXUmZZWFFpT2pFMk16VXlNamN3TWpRc0luVnpaWEpmYVdRaU9pSnNZbUZzYkdWME1pSXNJbU5zYVdWdWRGOXBjQ0k2SWpJeE9DNHlNekl1TVRFeExqUTVJbjAuUjJfX1hrNG5kVy1SV21tZGpUemp0ek55XzBuQjY0R1lXWEpaWUQzYzN5VGtsUTFLM1VDaE01TVFMZnljZ3pNWUM4S0pIRG1oR3RFZ0xGaHlkY0R3TTVfbTlfRFFwZGpvbmpUcU1PblkwbGJqTHdmR3pxVV80bnJPT3lNUjNGemlIcS1EcFpLZ1NnQVVNdm1mME5sQWlqQ3J6SXhlZXV4Y19kR29QeWhoaV9pdldMc3JzbHpZa2NvcmdGQ2NvOEsyb0hvbzVobkwxWEFnWlB5ZHVZTy1aR0tzUDB6SU4wWTQ2WWFpTkN0TmZUUGhSN0dpM3lmWEZIT3gwellER1ZWOEE2WWZhVXJncktmLTlMT2l0Nl9GaHpkUlJTVWxIdHJvMFBzSzlWbFVDb1lKbXdDeTdNLUpOUDRhb0Q5bmRVTi1aeThUeVBHWVVOcXJqOW04SkNWMEJR" \ --data "phone=01036608471&callback=15444370&message=SMS%20TEST%20MESSAGE&refkey=[[RESTAPITEST1549847130]]" https://www.tanz.co.kr/testjsonsms.aspx?phone=01036608471&callback=15441544&message=helloworld%ED%97%AC%EB%A1%9C%EC%9B%94%EB%93%9C&refkey=ukey

PayPal Sandbox Account Eid: tanzkorea-buyer@gmail.com PW: Aa1~2!, ID: C5WYJR253XGCS
curl -v https://api-m.sandbox.paypal.com/v1/oauth2/token -H "Accept: application/json" -H "Accept-Language: en_US" -u "C5WYJR253XGCS:Aa1352612!" -d "grant_type=client_credentials"

web.postman.co/onboarding/user, Team Name : Tanz Team URL : barrinabag.postman.co , https://app.getpostman.com/join-team?invite_code=9d801d286d37a9c07a582da4906812a6
https://app.getpostman.com/join-team?invite_code=9d801d286d37a9c07a582da4906812a6 미지의 세계, 포스트맨에 오다. https://barreinabag.postman.co/home sandbox로 Postman에서 Get an Access Token { "scope": "https://api.paypal.com/v1/payments/.* https://uri.paypal.com/services/reporting/search/read https://uri.paypal.com/services/disputes/update-seller openid https://uri.paypal.com/services/disputes/read-seller https://uri.paypal.com/services/applications/webhooks", "access_token": "A21AALNw7ZzslxUxitbGtxJ9uwdlTh_KvPt80Bz5hDboVc-0JSmtUGAYR7W0svxhx0YHHZ8X46F8qJ2Xx4hmxvRQm9De0DAMQ", "token_type": "Bearer", "app_id": "APP-80W284485P519543T", "expires_in": 32400, "nonce": "2021-10-26T12:41:00ZCBOOVbNAZkuQhWC7cMoKLkHFxYKAdrL8kIzDESLHr2I" } cURL로 도전 curl -v https://api-m.sandbox.paypal.com/v1/oauth2/token \ -H "Accept: application/json" \ -H "Accept-Language: en_US" \ -u "ASycJpdxaz_QTxD1ciddeWciMpaOf5Oq2kf6-XDXGBolvT6wbgwn_ePqLwRGPd3nOA_oJ26lD686NU7C:EGG7YVldgHlNb5diMthw2JCzTHsQNErSSlX6WQHp_YSThk6FHTqcY_tSYbvKDXhmeXC3FS3pz52I-zAV" \ -d "grant_type=client_credentials" { "scope":"https://api.paypal.com/v1/payments/.* https://uri.paypal.com/services/reporting/search/read https://uri.paypal.com/services/disputes/update-seller openid https://uri.paypal.com/services/disputes/read-seller https://uri.paypal.com/services/applications/webhooks", "access_token":"A21AALNw7ZzslxUxitbGtxJ9uwdlTh_KvPt80Bz5hDboVc-0JSmtUGAYR7W0svxhx0YHHZ8X46F8qJ2Xx4hmxvRQm9De0DAMQ", "token_type":"Bearer", "app_id":"APP-80W284485P519543T", "expires_in":31837, "nonce":"2021-10-26T12:41:00ZCBOOVbNAZkuQhWC7cMoKLkHFxYKAdrL8kIzDESLHr2I" } 성공 그 다음 call curl -v -X GET https://api-m.sandbox.paypal.com/v2/invoicing/invoices?total_required=true \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <Access-Token>" curl -v -X POST https://api-m.sandbox.paypal.com/v2/checkout/orders \ -H "Content-Type: application/json" \ -H "Authorization: Bearer A21AALNw7ZzslxUxitbGtxJ9uwdlTh_KvPt80Bz5hDboVc-0JSmtUGAYR7W0svxhx0YHHZ8X46F8qJ2Xx4hmxvRQm9De0DAMQ" \ -d '{ "intent": "CAPTURE", "purchase_units": [ { "amount": { "currency_code": "USD", "value": "100.00" } } ] }' 그 다음 response {"id":"6PH58201K4441854N","status":"CREATED","links":[{"href":"https://api.sandbox.paypal.com/v2/checkout/orders/6PH58201K4441854N","rel":"self","method":"GET"},{"href":"https://www.sandbox.paypal.com/checkoutnow?token=6PH58201K4441854N","rel":"approve","method":"GET"},{"href":"https://api.sandbox.paypal.com/v2/checkout/orders/6PH58201K4441854N","rel":"update","method":"PATCH"},{"href":"https://api.sandbox.paypal.com/v2/checkout/orders/6PH58201K4441854N/capture","rel":"capture","method":"POST"}]}

www.tanz.co.kr 신용카드 모바일결제 주문번호 P_OID추가로 에러 해결
cn.tanz.co.kr을 작업하면서 KG이니시스가 모바일에서 결제가 진행되는 파일의 순서를 알게 되고 중간에 카드 결제를 취소했을 때 가는 페이지를 설정하지 않은 문제를 발견하였다. mx_startweb.asp에서 mx_rnext.asp로 가게 되는데 모바일의 경우 P_OID가 필수여서 tanz.co.kr pageStep40.aspx.cs에 redirect 문구에 P_OID를 추가하였다. P_OID의 생성은 날짜를 기준으로 생성하는 식으로 만들었다. cn.tanz.co.kr의 경우 결제 완료창에 P_OID를 shippingdetailid를 대응케 하여 기본적으로 모바일에 대한 문제가 없었다. 그런데 이렇게 전해지기만 하면 되고 이 가맹점 쪽에서는 필요없는 경우라고 생각된다. 약속일 뿐 가맹점으로서는 에러의 원인이 되었을 뿐이다. 데스크탑 결제의 경우 P_OID 에 관한 문제가 없었다. 지금 보니 반드시 Unique값으로 oid를 생성하도록 되어 있다. 데스크탑의 경우. 현재 결제가 문제 없이 되고 있는데 한 번 살펴보아야겠다. 보니까 oid는 timestamp로 생성하도록 되어 있었다. 이미 코드에 반영이 되어 있다. 역시 가맹점에는 꼭 없어도 코드 진행에 문제가 없음을 확인했다. 이후에 결제가 중단하거나 실패했을 때 가는 페이지에 대한 배려가 없음으로 인해 그 페이지는 P_STATUS="00"의 밸류 확인으로 페이지를 별도로 만들어 거래 성사와 거래중단 혹은 실패에 대한 분기를 mx_rnext.asp 마지막 라인에 추가하였다. 이제 할 일은 mx_rnoti.asp 즉 가상계좌 무통장 입금에 관한 것이다. mx_rnoti.asp가 어떻게 작동하는지 확인이 필요하다.