flask 웹 사이트에서 paypal 버튼으로 결제했을 때 그 회원이 무엇을 얼마 결제했다는 내역을 어떻게 데이터베이스에 넣을 수 있을까요?

조회수 611회

flask로 구현한 웹페이지에 미리 api인증 받은 paypal의 버튼을 추가해서 결제 시스템을 추가하려 합니다. 원하는 결제 정보를 입력해서 paypal에서 자동으로 HTML버튼 코드를 줍니다. 그래서 원하는 페이지에 HTML코드를 삽입하면 되는데 그 이후에 결제가 완료 되었는지 여부와 결제가 완료 되었다면 어떤 상품을 얼마 구매했는지에 대한 정보를 데이터베이스에 삽입해야합니다. 우선 제가 대강의 흐름을 말씀드릴게요.

1단계 ) :paypal 결제 버튼이 적용되어있는 pay.html을 reder_template하고 있는 flaks app 접속
@app.route('/pay')
def pay():
    print 'pay 화면'
    return render_template('pay.html')

2단계 ) : pay.html 오픈 후 pay.html에 있는 paypal 버튼 클릭 및 결제 진행
아래는 결제 버튼 코드입니다.
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="XXXXXXXXX">
<table style="display:none">
<tr><td><input type="hidden" name="on0" value="Price">Price</td></tr><tr><td><select name="os0">
<option value="Cash_1" id="Cash_1_paypal">Cash_1 $20.00 USD</option>
<option value="Cash_2" id="Cash_2_paypal">Cash_2 $30.00 USD</option>
<option value="Cash_3" id="Cash_3_paypal">Cash_3 $50.00 USD</option>
<option value="Cash_4" id="Cash_4_paypal">Cash_4 $99.00 USD</option>
<option value="Cash_5" id="Cash_5_paypal">Cash_5 $199.00 USD</option>
</select> </td></tr>
</table>
<input type="hidden" name="currency_code" value="USD">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/ko_KR/i/scr/pixel.gif" width="1" height="1">
</form>


3단계 ) : 결제 완료 후 '/MyPage'로 이동(paypal버튼 생성할 때 결제 성공하면 'host주소/mypage'로 이동하게끔 설정해두었습니다.) 및 해당 결제 내역 데이터베이스 저장
@app.route('/MyPage')
def pay():
    '''질문입니다'''
    ''' 이 부분에 방금 결제한 회원이 결제한 구매 정보를 수신받아야합니다. 상품 명, 상품 가격, 결제 성공 여부 등을 수        신 받아서 결제 성공여부가 정상적이면 해당 내역을 데이터베이스에 구매 내역 정보 컬럼에 저장해야합니다.
    예를들어 test@testemail.com이란 제 웹사이트 회원이 Cash_5를 $199주고 정상 결제했다면 User테이블 payment_history에 [{'time':구매일, 'items'Cash_5, 'pay':$199}, ...] 이런식으로 저장하는 게 목표입니다.'''
    return render_template('mypage.html')

위 총 3단계 중 마지막 단계에 감이 안 오네요....;; 우선 paypal에서 한국에서는 sandbox가 지원이 안 된다고 하더라구요 인터넷에 올라와있는 코드들 보면 paypalrestsdk인가?하는 라이브러리를 사용해서 paypal 환경설정에 클라이언트 id와 클라이언트 scret을 적어서 결제 기록(내역)을 확인할 수 있는 거 같은데 저같은 경우는 sandbox 테스트 계정만 있고 live모드로 설정할 수 있는 id 와 scret이 없네요.... only sandbox(no live)이렇게 적혀있습니다.

  • 지금 생각났는데 https://www.iamport.kr/ 서비스를 써보시는 건 어떨까요? 엽토군 2019.8.30 17:54
  • 혹시 제가 질문 드린 부분은 해결할 방법이 없을까요? 김재민 2019.9.2 09:22

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)