支付宝官方并没有提供python的官方文档,所以支付宝的支付使用的是封装的ALIPAY。github文档:https://github.com/fzlee/alipay
微信支付的官方文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1
具体的参数可以去相关网站获取,实在不会也可以百度,此处就不贴出来了。
一、setting.py文件设置主要参数(需要注意的是回调路径必须是能外网访问的路径)
#支付宝支付
ALIPAY_APPID = "你的appid"
SELLERMAIL = "邮件"
# ALIPAY_URL = "https://openapi.alipaydev.com/gateway.do" #沙箱环境
ALIPAY_URL = "https://openapi.alipay.com/gateway.do" #生产环境
# ALIPAY_DEBUG = True #沙箱环境
ALIPAY_DEBUG = False #生产环境
APP_PRIVATE_KEY_PATH = os.path.join(BASE_DIR, r'你的支付宝私钥路径').replace(r'\\', r'/')
ALIPAY_PUBLIC_KEY_PATH = os.path.join(BASE_DIR, r'你的支付宝公钥路径').replace(r'\\', r'/')
RETURN_URL = "支付通知路径"
#微信支付配置
# ========微信支付相关配置信息===========
_APP_ID = "***" # 公众账号appid
_MCH_ID = "***" # 商户号
_API_KEY = "***" # 微信商户平台(pay.weixin.qq.com) -->账户设置 -->API安全 -->密钥设置,设置完成后把密钥复制到这里
_UFDODER_URL = "***"; #url是微信下单api
_NOTIFY_URL = "***" # 微信支付结果回调接口,需要改为你的服务器上处理结果回调的方法路径
_CREATE_IP = '***' # 发起支付请求的ip
二、支付宝支付
from rest_framework import status
from rest_framework.response import Response
from rest_framework.views import APIView
from alipay import AliPay
class ZfbPaymentView(APIView):
def get(self, request):
order_id = request.GET.get("id")
#根据订单编号判断获取订单信息
try:
order_obj = OrderMaster.objects.filter(order_sn=order_id, order_status=0)[0]
except OrderMaster.DoesNotExist:
return Response(status.HTTP_400_BAD_REQUEST)
#创建支付宝对象
app_private_key_string = open(settings.APP_PRIVATE_KEY_PATH).read() # app的密匙
alipay_public_key_string = open(settings.ALIPAY_PUBLIC_KEY_PATH).read() # app的公匙
alipay = AliPay(
appid=settings.ALIPAY_APPID,
app_notify_url="", # 默认回调url
app_private_key_string=app_private_key_string,
# sellermai