支付宝支付功能

支付宝支付功能

用于网上支付,借助三方平台完成支付功能。

支付宝开发平台地址

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

①支付宝扫码登录

在这里插入图片描述

②确定入驻身份

在这里插入图片描述

③开发者中心

在这里插入图片描述

④ 选择开发方向

在这里插入图片描述

⑤ 填写应用的细节

在这里插入图片描述

⑥在开发的时候可以先使用沙箱环境

在这里插入图片描述

⑦沙箱信息配置

在这里插入图片描述

⑧沙箱服务账号

在这里插入图片描述

⑨ 下载支付宝沙箱app

在这里插入图片描述

⑩查看开发手册,进行开发https://docs.open.alipay.com/

在这里插入图片描述

⑪ 工具下载

在这里插入图片描述

⑫ 下载完成,生成秘钥

在这里插入图片描述

⑬同时在生成工具的目录下RSA秘钥目录下也有文件版本

在这里插入图片描述

⑭ 然后将公钥设置到服务端

在这里插入图片描述

⑮ 集成并配置SDK

在这里插入图片描述

所以作为开发,步骤如下

​ 1、接收订单

​ 2、跳转请求支付宝

​ 3、接收,并将支付页面发给买家

​ 4、买家完成付款

支付宝的sdk已经集成为一个python模块,只需要安装模块进行开发。

⑯ 在django环境里下载模块

pip install pycryptodome

在这里插入图片描述

pip install python-alipay-sdk --upgrade

在这里插入图片描述

⑰ 安装完成,编写脚本测试支付功能

from alipay import AliPay

# 公钥
alipay_public_key_string = """-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiGw0AQEFAAOCAQ8AMIIBCgKCAQEAsT2a5eY/3xnxh8AlC7jxcgE/FUHPfw6gnzohK000LPzp3slpdvDLrl+EJnG5SuZbsM3BY41K8F5CdthxQiJGvg+a+UAcQdGw190eVjogtHOtXZCseLV66B47BfYCSOb3gLn31EB7h5zUG2DQEtpMKmjbIgQTJfv+CKxjyaiTXXpKgpb06/WTsMPIuwXOlWG1ei3mOJt6ZnF914q/NJWIjiEq/ubMsRTrWpK4OoQ636ZlEsJTUxSJ06mBE5uXBCDJSd952/b7NEEtyOz7UpW9RZC5BDGK3M+/pmPsoBMUDK8Mh6KVnY3a13u2/f9q8MsQcydfJAcpr/UwIDAQAB
-----END PUBLIC KEY-----"""

# 私钥
app_private_key_string = """-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAsT2a5eY3xnxh8AlC7jxcgE/FUHPfw6gnzohK000LPzp3slpdvDLrl+EJnG5SuZbsM3BYg41K8F5kCdthxQiJGvg++a+UAcQdGzw190eVjogtHOtXZcCseLV66B47oBfYOb3gLn31EB7h5zUG2DQEtpMKmjbIgQTJfv+CKxjyaiTXXpKgpb06/WTsMPIuwXOlWG1Uei3mOJt6ZnF94q/kNJWIjiEq/ubMsRTrWK4OoQ636ZlEsJTUxSJm0mBE5uXBCDJSd952/b7NEEtyOYz7UpW9RZC5BDGK3M+/pmPsoBMUDK8Mh6VnY3a13u2/f98MscydfJAcpr/UwIDAQABAIBAEsQeEXd2jc22aBQtF/emANcm8b49FQvcb998wZP0EUtaC8+xjfli53ym6GGusXDDpM3m/q0BZ+axjWlVUBvn/2PoJsq39jlC0LPz/6VIDm+0DQ9Tq6Qa+E/mOzNX/JYPJ5QIjYNnkc5ogh3H3fjlp3xjcF2sY/jztFJ4Kv49B7i18AkXDXf2mwFyzOOvppBMT4WNj+ZXYZEhIykXOfA2FFXJ6sgayyhxAYKt5uVkcTvETo9UWadfGQyjGrti+35VCjpFjhiaMbmRVFFI3dTtnntFf8078OrTP5Tjd4q5KEgs7l1GwKZlqhrifLrdGG3+SDQxDVelrVOECgYEA6vm/QR2j8GAyME80BSmuF/37kAHJUxqHlJ6nZnLNHVoETIM00sbLOYfEFDrz6wcvljKjR8uHZU1Zi9SDjsC5SRvf0ZWjw5fQ83ThNZxm3ZHSR9e9iznM22qh02usxC28V5ITbnHxeKwIuUctznKidO+3qw6otfPP3LD8CgYEwRln2YQ0NGgXe/fVha5NFUoHzefCAPbGZXSQYkqjijzQBbcPpiPhvL2yWCh+HDMx1LcccDvRhXfG19XIGMzE7rG1SVxsRrafCP1sxq1UCdsf0aMUaesM5ITczRmddPMkellgqZNvNHdrVEIajoZeXPnDmpefQqhat+0CgYBPpym2IHbadHX7l8No7KAfcfF8954PlcawETgdhKzls30Ap1BWU6HT4xEjEljsjhNS7pN6AyBofTb2koqfmOwrYMmm5c1aUWALin0JYLScZpNMcleoTuXnphbKOKCkNWYCwjhocfwWVLtFpMuwQvi8Kw/3I+vXCLkYNPYZkcQKBgQCRbd7m1UkiERByxYs0jey21GkWDbVKaqLzEwi9+KB4ivvik1hK+GgxOqIHxHJQgFmRD4kYgbhRXzikl77sIxf2hZHz6rNJnSTIdHoola3zKjVzspyRxnuJjRRLOLD/1zgs0xnUVl2aS4HUqYJ428SorGUvMXnsN6lKfgwf/6QKBgGapswT/Ml/4pPwjyA3ECoCji1b6uxTVDr9fEabmebtQf4hDtPQO4+tf4U/Ou9vdTTtcJ19BQuWmg0PzrwpO5agCYyqS
-----END RSA PRIVATE KEY-----"""

# 实例化支付请求
alipay = AliPay(
    appid = "2016101000565243",
    app_notify_url = None,
    app_private_key_string = app_private_key_string,
    alipay_public_key_string = alipay_public_key_string,
    sign_type = "RSA2"
)

# 发起支付请求
order_string = alipay.api_alipay_trade_page_pay(
    out_trade_no = '10001', #订单号
    total_amount= str(10000), #支付金额
    subject = '生鲜交易', # 交易主题
    return_url= None,
    notify_url=None
)
print("https://openapi.alipaydev.com/gateway.do?"+order_string)


⑱基于上述代码将代码封装为视图函数,并且用get请求发送了订单id和订单金额

def pay_order(request):
# 公钥
	alipay_public_key_string = """-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiGw0AQEFAAOCAQ8AMIIBCgKCAQEAsT2a5eY/3xnxh8AlC7jxcgE/FUHPfw6gnzohK000LPzp3slpdvDLrl+EJnG5SuZbsM3BY41K8F5CdthxQiJGvg+a+UAcQdGw190eVjogtHOtXZCseLV66B47BfYCSOb3gLn31EB7h5zUG2DQEtpMKmjbIgQTJfv+CKxjyaiTXXpKgpb06/WTsMPIuwXOlWG1ei3mOJt6ZnF914q/NJWIjiEq/ubMsRTrWpK4OoQ636ZlEsJTUxSJ06mBE5uXBCDJSd952/b7NEEtyOz7UpW9RZC5BDGK3M+/pmPsoBMUDK8Mh6KVnY3a13u2/f9q8MsQcydfJAcpr/UwIDAQAB
-----END PUBLIC KEY-----"""

# 私钥
	app_private_key_string = """-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAsT2a5eY3xnxh8AlC7jxcgE/FUHPfw6gnzohK000LPzp3slpdvDLrl+EJnG5SuZbsM3BYg41K8F5kCdthxQiJGvg++a+UAcQdGzw190eVjogtHOtXZcCseLV66B47oBfYOb3gLn31EB7h5zUG2DQEtpMKmjbIgQTJfv+CKxjyaiTXXpKgpb06/WTsMPIuwXOlWG1Uei3mOJt6ZnF94q/kNJWIjiEq/ubMsRTrWK4OoQ636ZlEsJTUxSJm0mBE5uXBCDJSd952/b7NEEtyOYz7UpW9RZC5BDGK3M+/pmPsoBMUDK8Mh6VnY3a13u2/f98MscydfJAcpr/UwIDAQABAIBAEsQeEXd2jc22aBQtF/emANcm8b49FQvcb998wZP0EUtaC8+xjfli53ym6GGusXDDpM3m/q0BZ+axjWlVUBvn/2PoJsq39jlC0LPz/6VIDm+0DQ9Tq6Qa+E/mOzNX/JYPJ5QIjYNnkc5ogh3H3fjlp3xjcF2sY/jztFJ4Kv49B7i18AkXDXf2mwFyzOOvppBMT4WNj+ZXYZEhIykXOfA2FFXJ6sgayyhxAYKt5uVkcTvETo9UWadfGQyjGrti+35VCjpFjhiaMbmRVFFI3dTtnntFf8078OrTP5Tjd4q5KEgs7l1GwKZlqhrifLrdGG3+SDQxDVelrVOECgYEA6vm/QR2j8GAyME80BSmuF/37kAHJUxqHlJ6nZnLNHVoETIM00sbLOYfEFDrz6wcvljKjR8uHZU1Zi9SDjsC5SRvf0ZWjw5fQ83ThNZxm3ZHSR9e9iznM22qh02usxC28V5ITbnHxeKwIuUctznKidO+3qw6otfPP3LD8CgYEwRln2YQ0NGgXe/fVha5NFUoHzefCAPbGZXSQYkqjijzQBbcPpiPhvL2yWCh+HDMx1LcccDvRhXfG19XIGMzE7rG1SVxsRrafCP1sxq1UCdsf0aMUaesM5ITczRmddPMkellgqZNvNHdrVEIajoZeXPnDmpefQqhat+0CgYBPpym2IHbadHX7l8No7KAfcfF8954PlcawETgdhKzls30Ap1BWU6HT4xEjEljsjhNS7pN6AyBofTb2koqfmOwrYMmm5c1aUWALin0JYLScZpNMcleoTuXnphbKOKCkNWYCwjhocfwWVLtFpMuwQvi8Kw/3I+vXCLkYNPYZkcQKBgQCRbd7m1UkiERByxYs0jey21GkWDbVKaqLzEwi9+KB4ivvik1hK+GgxOqIHxHJQgFmRD4kYgbhRXzikl77sIxf2hZHz6rNJnSTIdHoola3zKjVzspyRxnuJjRRLOLD/1zgs0xnUVl2aS4HUqYJ428SorGUvMXnsN6lKfgwf/6QKBgGapswT/Ml/4pPwjyA3ECoCji1b6uxTVDr9fEabmebtQf4hDtPQO4+tf4U/Ou9vdTTtcJ19BQuWmg0PzrwpO5agCYyqS
-----END RSA PRIVATE KEY-----"""

    # 实例化支付请求
    alipay = AliPay(
        appid="2016101000652534",
        app_notify_url=None,
        app_private_key_string=app_private_key_string,
        alipay_public_key_string=alipay_public_key_string,
        sign_type="RSA2"
    )

    # 发起支付请求
    order_string = alipay.api_alipay_trade_page_pay(
        out_trade_no='10002',  # 订单号
        total_amount=str(10000),  # 支付金额
        subject='生鲜交易',  # 交易主题
        return_url="http://127.0.0.1:8000/buyer/pr/",
        notify_url="http://127.0.0.1:8000/buyer/pr/"
    )
    return HttpResponseRedirect("https://openapi.alipaydev.com/gateway.do?" + order_string)

⑲编写接收支付结果的函数

def pay_result(request):
    '''
    支付宝支付成功自动用get请求返回的参数
    #编码
    charset=utf-8
    #订单号
    out_trade_no=10002
    #订单类型
    method=alipay.trade.page.pay.return
    #订单金额
    total_amount=1000.00
    #校验值
    sign=enBOqQsaL641Ssf%2FcIpVMycJTiDaKdE8bx8tH6shBDagaNxNfKvv5iD737ElbRICu1Ox9OuwjR5J92k0x8Xr3mSFYVJG1DiQk3DBOlzIbRG1jpVbAEavrgePBJ2UfQuIlyvAY1fu%2FmdKnCaPtqJLsCFQOWGbPcPRuez4FW0lavIN3UEoNGhL%2BHsBGH5mGFBY7DYllS2kOO5FQvE3XjkD26z1pzWoeZIbz6ZgLtyjz3HRszo%2BQFQmHMX%2BM4EWmyfQD1ZFtZVdDEXhT%2Fy63OZN0%2FoZtYHIpSUF2W0FUi7qDrzfM3y%2B%2BpunFIlNvl49eVjwsiqKF51GJBhMWVXPymjM%2Fg%3D%3D&trade_no=2019072622001422161000050134&auth_app_id=2016093000628355&version=1.0&app_id=2016093000628355
    #订单号
    trade_no=2019072622001422161000050134
    #用户的应用id
    auth_app_id=2016093000628355
    #版本
    version=1.0
    #商家的应用id
    app_id=2016093000628355
    #加密方式
    sign_type=RSA2
    #商家id
    seller_id=2088102177891440
    #时间
    timestamp=2019-07-2
    '''

    return render(request,'buyerapp/pay_result.html')

⑳前端修改样式

{% extends 'buyerapp/base.html' %}
{% block title %}
    支付成功
{% endblock %}
{% block style %}

{% endblock %}

{% block content %}
    <div style="font-size: 44px">
        <h1 style="color: #00cc66">支付成功!</h1>
    </div>
    <div style="font-size: 24px">
        <p>支付订单:{{ request.GET.out_trade_no }}</p>
        <p>支付金额:{{ request.GET.total_amount }}</p>
        <p>支付时间:{{ request.GET.timestamp }}</p>
    </div>
{% endblock %}

{% block script %}

{% endblock %}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值