Django支付(支付宝支付)使用python完成支付

文章目录

  • 一、django 支付
    • 1. 微信
      • ① 请求地址
      • ② 申请条件
    • 2. 支付宝
      • ① 支付宝支付流程
      • ② 支付url
      • ③ 注册流程
      • ④ 开发测试 使用沙箱环境
      • ⑤ 支付宝接口文档地址
      • ⑥ 支付宝接口文档找到rsa生成密钥文档,下载对应工具
      • ⑦ 下载工具后生成密钥
      • ⑧ 配置公钥 私钥
  • 二、使用python完成支付
    • 1.安装sdk
    • 2.创建文件,测试demo

一、django 支付


1. 微信


① 请求地址

https://pay.weixin.qq.com/static/applyment_guide/applyment_index.shtml

Django支付(支付宝支付)使用python完成支付_第1张图片

② 申请条件

Django支付(支付宝支付)使用python完成支付_第2张图片
因为申请条件较苛刻,所以一般用支付宝较多


2. 支付宝


① 支付宝支付流程

  • 买家发出购买请求,服务生成订单
    Django支付(支付宝支付)使用python完成支付_第3张图片
  • 提交订单,卖家将支付请求发到支付宝
  • 支付宝返回支付页面
  • 买家在支付页面完成付款
  • 支付处理付款请求
  • 支付宝返回处理结果(支付完成,支付失败,支付进行中)
    Django支付(支付宝支付)使用python完成支付_第4张图片
    Django支付(支付宝支付)使用python完成支付_第5张图片

② 支付url

https://open.alipay.com/platform/home.htm

③ 注册流程

Django支付(支付宝支付)使用python完成支付_第6张图片
Django支付(支付宝支付)使用python完成支付_第7张图片
Django支付(支付宝支付)使用python完成支付_第8张图片
Django支付(支付宝支付)使用python完成支付_第9张图片

④ 开发测试 使用沙箱环境

Django支付(支付宝支付)使用python完成支付_第10张图片
Django支付(支付宝支付)使用python完成支付_第11张图片
Django支付(支付宝支付)使用python完成支付_第12张图片
Django支付(支付宝支付)使用python完成支付_第13张图片
下载安卓端
Django支付(支付宝支付)使用python完成支付_第14张图片
账号信息
Django支付(支付宝支付)使用python完成支付_第15张图片

⑤ 支付宝接口文档地址

https://docs.open.alipay.com/

⑥ 支付宝接口文档找到rsa生成密钥文档,下载对应工具

Django支付(支付宝支付)使用python完成支付_第16张图片
Django支付(支付宝支付)使用python完成支付_第17张图片
Django支付(支付宝支付)使用python完成支付_第18张图片
在这里插入图片描述

Django支付(支付宝支付)使用python完成支付_第19张图片
Django支付(支付宝支付)使用python完成支付_第20张图片
Django支付(支付宝支付)使用python完成支付_第21张图片
下载到指定文件夹,然后双击打开下面的文件
Django支付(支付宝支付)使用python完成支付_第22张图片

⑦ 下载工具后生成密钥

Django支付(支付宝支付)使用python完成支付_第23张图片
Django支付(支付宝支付)使用python完成支付_第24张图片

⑧ 配置公钥 私钥

Django支付(支付宝支付)使用python完成支付_第25张图片
Django支付(支付宝支付)使用python完成支付_第26张图片


二、使用python完成支付


以卖家的身份进行收款,

支付宝已经写好的sdk,可以使用模块的方式使用,

使用需要安装


1.安装sdk


pip install pycryptodome    ## 阿里sdk的依赖包
pip install python-alipay-sdk --upgrade

2.创建文件,测试demo


from alipay import AliPay
## 公钥
alipay_public_key_string = """-----BEGIN PUBLIC KEY-----
## 放公钥
-----END PUBLIC KEY-----"""
## 私钥
alipay_private_key_string="""-----BEGIN RSA PRIVATE KEY-----
## 放私钥
-----END RSA PRIVATE KEY-----"""
## 实例化支付对象
alipay = AliPay(
    appid='2016101300673550',
    app_notify_url = None,
    app_private_key_string=alipay_private_key_string,
    alipay_public_key_string=alipay_public_key_string,
    sign_type="RSA2",
)
## 实例化订单
order_string = alipay.api_alipay_trade_page_pay(
    subject = '牛羊生鲜',   ## 交易主题
    out_trade_no = '10000000002',    ## 订单号
    total_amount = '100',     ## 交易总金额
    return_url=None,         ##  请求支付,之后及时回调的一个接口
    notify_url=None          ##  通知地址,
)
##   发送支付请求
## 请求地址  支付网关 + 实例化订单
result = "https://openapi.alipaydev.com/gateway.do?"+order_string
print(result)

视图:

接收请求,处理,获取支付页面,并完成跳转支付页面


def AlipayViews(request):
    order_id = request.GET.get("order_id")    ## 订单id
    payorder = PayOrder.objects.get(id=order_id)
    ## 实例化支付对象
    alipay = AliPay(
        appid='2016101300673550',
        app_notify_url=None,
        app_private_key_string=alipay_private_key_string,
        alipay_public_key_string=alipay_public_key_string,
        sign_type="RSA2",
    )
    ## 实例化订单
    order_string = alipay.api_alipay_trade_page_pay(
        subject='天天生鲜',  ## 交易主题
        out_trade_no=payorder.order_number,  ## 订单号
        total_amount=str(payorder.order_total),  ## 交易总金额
        return_url="http://127.0.0.1:8000/Buyer/payresult/",  ##  请求支付,之后及时回调的一个接口
        notify_url="http://127.0.0.1:8000/Buyer/payresult/"  ##  通知地址,
    )
    ##   发送支付请求
    ## 请求地址  支付网关 + 实例化订单
    result = "https://openapi.alipaydev.com/gateway.do?" + order_string
    print(result)

    return HttpResponseRedirect(result)

视图: 支付提交之后,跳转的我们的结果页面

def payresult(request):
    return render(request,"buyer/payresult.html")

视图: 服务端,收到支付结果,然后修改订单状态
Django支付(支付宝支付)使用python完成支付_第27张图片
打印支付宝请求传的参数
Django支付(支付宝支付)使用python完成支付_第28张图片
修改订单状态
Django支付(支付宝支付)使用python完成支付_第29张图片
修改页面显示样式
Django支付(支付宝支付)使用python完成支付_第30张图片


你可能感兴趣的:(#,python,web开发)