Django와 Razozpay 통합

9658 단어 djangorazorpaypython
애플리케이션에서 razorpay를 사용하기 위해 이 razorpay Python 패키지를 사용할 것입니다. 먼저 설치해야 합니다.

pip install razorpay


가입이 완료되면 라이브 모드가 아닌 테스트 모드인지 확인하십시오. Razorpay 대시보드를 방문하여 새 API 키를 생성하십시오.

API 키는 한 번만 표시되므로 반드시 저장하십시오. 좋습니다. 이미 설정 파일에 넣었습니다. 좋습니다. 안좋다 !!! 비밀은 비밀로 유지되어야 합니다. 환경 변수로 저장하거나 Github에 푸시하지 않을 json 파일에 저장해야 합니다.
방문 시 버튼이 제공되어야 하는 URL을 생성해 보겠습니다. 버튼을 클릭하면 지불 게이트웨이 화면이 제공되어야 합니다.
하지만 이를 위해 먼저 뷰를 생성해 보겠습니다.

import os
import razorpay

from django.shortcuts import render
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt


def payment(request):
    amount = 100 #100 here means 1 dollar,1 rupree if currency INR
    client = razorpay.Client(auth=(os.getenv('razorpaykey'), os.getenv('razorpaysecret')))
    response = client.order.create({'amount':amount,'currency':'USD','payment_capture':1})
    print(response)
    context = {'response':response}
    return render(request,"payments/payment.html",context)


@csrf_exempt
def payment_success(request):
    if request.method =="POST":
        print(request.POST)
        return HttpResponse("Done payment hurrey!")


이것은 우리의 HTML 파일이 될 것이며 클릭할 때 지불 양식을 생성할 razozpay 버튼을 가져오는 역할을 할 것입니다.


{% if response %}
<form action="/success/" method="POST">
    <script
        src="https://checkout.razorpay.com/v1/checkout.js"
        data-key="your_test_api_key"
        data-amount={{response.amount}}
        data-currency={{response.currency}}
        data-order_id={{response.id}}
        data-buttontext="Pay with Razorpay"
        data-name="ILoveDjango3000"
        data-description=""
        data-image=""
        data-prefill.name={{request.user.username}}
        data-prefill.email={{request.user.email}}
        data-theme.color="#F37254"
    ></script>
    <input type="hidden" custom="Hidden Element" name="hidden">
    </form>
{% endif %}


선택한 URL로 보기, 즉 지불 및 지불_성공을 연결하고 성공 URL로 HTML 파일 양식 작업을 업데이트해야 합니다. 한 가지 더, 결제가 성공하면 Razorpay는 성공 URL에서 애플리케이션에 POST 요청을 보냅니다. 양식에 csrf_token이 없기 때문에 csrf_token을 면제할 수 있습니다. 웹후크를 사용한 다음 csrf_token을 면제해야 합니다.

이것은 예를 들어 내 urls.py 파일:

from django.urls import path

from apps.payments.views import payment,payment_success

urlpatterns = [
    path('payment/',payment,name="payment"),
    path('success/',payment_success,name="payment-success"),
]



이것은 Razorpay가 django와 함께 작동하도록 하는 최소한의 구성입니다. 개선하거나 통합해야 할 사항이 여전히 있습니다. 구독, 송장, 환불, 경로 및 가장 중요한 보안 및 서명 확인 등

더 많은 결제 옵션을 업데이트할 계획입니다. 페이팔 및 인스타모조:
https://www.ilovedjango3000.com/blog/payment-in-django/

좋은 웹페이지 즐겨찾기