File size: 3,882 Bytes
ac8e3c3
 
d9a9bca
9e93a27
 
 
 
 
ac8e3c3
9e93a27
 
 
 
 
 
ac8e3c3
 
 
 
9e93a27
 
ac8e3c3
 
9e93a27
 
 
ac8e3c3
 
9e93a27
 
f905452
 
9e93a27
 
 
 
ac8e3c3
9e93a27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2121d78
9e93a27
 
 
 
 
 
 
 
 
d9a9bca
ac8e3c3
9e93a27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import gradio as gr
import requests

def card_authorization(onfftid, tot_amt, com_tax_amt, com_free_amt, com_vat_amt, card_no, install_period,
                       user_nm, user_phone2, product_nm, expire_date, cert_type, card_user_type, 
                       auth_value, password, card_nm, order_no, pay_type):
    url = "https://store.onoffkorea.co.kr/payment/index.php"
    data = {
        "onfftid": onfftid,
        "tot_amt": tot_amt,
        "com_tax_amt": com_tax_amt,
        "com_free_amt": com_free_amt,
        "com_vat_amt": com_vat_amt,
        "card_no": card_no,
        "install_period": install_period,
        "user_nm": user_nm,
        "user_phone2": user_phone2,
        "product_nm": product_nm,
        "expire_date": expire_date,
        "cert_type": cert_type,
        "card_user_type": card_user_type,
        "auth_value": auth_value,
        "password": password,
        "card_nm": card_nm,
        "order_no": order_no,
        "pay_type": pay_type
    }
    
    response = requests.post(url, data=data)
    if response.status_code == 200:
        try:
            return response.json()
        except ValueError:
            return {"error": "Non-JSON response", "details": response.text}
    else:
        return {"error": "Request failed", "status_code": response.status_code}

with gr.Blocks() as app:
    with gr.Tab("์นด๋“œ ๊ฒฐ์ œ ์Šน์ธ ์š”์ฒญ"):
        with gr.Row():
            with gr.Column(scale=1):
                onfftid = gr.Textbox(label="์˜จ์˜คํ”„์ฝ”๋ฆฌ์•„ TID", value="OFPT000000011017", readonly=True)
                tot_amt = gr.Number(label="๊ฒฐ์ œ๊ธˆ์•ก", placeholder="๊ธˆ์•ก์„ ์ž…๋ ฅํ•˜์„ธ์š”")
                com_tax_amt = gr.Number(label="๊ณผ์„ธ์Šน์ธ๊ธˆ์•ก", optional=True)
                com_free_amt = gr.Number(label="๋น„๊ณผ์„ธ์Šน์ธ๊ธˆ์•ก", optional=True)
                com_vat_amt = gr.Number(label="๋ถ€๊ฐ€์„ธ", optional=True)
                card_no = gr.Textbox(label="์นด๋“œ๋ฒˆํ˜ธ", placeholder="์นด๋“œ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”")
                install_period = gr.Dropdown([str(i).zfill(2) for i in range(13)], label="ํ• ๋ถ€๊ธฐ๊ฐ„ ์„ ํƒ")
                user_nm = gr.Textbox(label="๊ฒฐ์ œ์ž๋ช…", placeholder="๊ฒฐ์ œ์ž์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”")
                user_phone2 = gr.Textbox(label="๊ฒฐ์ œ์ž ์—ฐ๋ฝ์ฒ˜", placeholder="์—ฐ๋ฝ์ฒ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”")
                product_nm = gr.Textbox(label="์ƒํ’ˆ๋ช…", placeholder="์ƒํ’ˆ๋ช…์„ ์ž…๋ ฅํ•˜์„ธ์š”")
                expire_date = gr.Textbox(label="์œ ํšจ๊ธฐ๊ฐ„(YYMM)", placeholder="์˜ˆ: 2306")
                cert_type = gr.Radio(choices=["0 - ์ธ์ฆ", "1 - ๋น„์ธ์ฆ"], label="์ธ์ฆ์—ฌ๋ถ€ ์„ ํƒ")
                card_user_type = gr.Radio(choices=["0 - ๊ฐœ์ธ์นด๋“œ", "1 - ๋ฒ•์ธ์นด๋“œ"], label="์นด๋“œ์œ ํ˜• ์„ ํƒ")
                auth_value = gr.Textbox(label="์ธ์ฆ๋ฒˆํ˜ธ", placeholder="๊ฐœ์ธ์€ ์ฃผ๋ฏผ๋ฒˆํ˜ธ ์•ž 6์ž๋ฆฌ, ๋ฒ•์ธ์€ ์‚ฌ์—…์ž๋“ฑ๋ก๋ฒˆํ˜ธ")
                password = gr.Textbox(label="์นด๋“œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์•ž 2์ž๋ฆฌ", placeholder="๋น„๋ฐ€๋ฒˆํ˜ธ ์•ž 2์ž๋ฆฌ")
                card_nm = gr.Textbox(label="์นด๋“œ์‚ฌ๋ช…", optional=True, placeholder="์นด๋“œ์‚ฌ๋ช…์„ ์ž…๋ ฅํ•˜์„ธ์š”")
                order_no = gr.Textbox(label="์ฃผ๋ฌธ๋ฒˆํ˜ธ", optional=True, placeholder="์ฃผ๋ฌธ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”")
                pay_type = gr.Textbox(label="๊ฒฐ์ œํƒ€์ž…", value="card", readonly=True)

                submit_button = gr.Button("๊ฒฐ์ œ ์Šน์ธ ์š”์ฒญ")
                result_area = gr.JSON(label="๊ฒฐ๊ณผ")

        submit_button.click(
            fn=card_authorization,
            inputs=[onfftid, tot_amt, com_tax_amt, com_free_amt, com_vat_amt, card_no, install_period,
                    user_nm, user_phone2, product_nm, expire_date, cert_type, card_user_type,
                    auth_value, password, card_nm, order_no, pay_type],
            outputs=result_area
        )

app.launch()