宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

#访问"支付宝开发平台"登录,可以访问开发者中心
https://open.alipay.com/platform/home.htm
#可以参考"电脑网站支付" 熟悉电脑支付整体流程
https://docs.open.alipay.com/270/105899/

支付宝开发网址

支付宝开放平台: https://open.alipay.com/platform/home.htm 
支付宝沙箱环境: https://openhome.alipay.com/platform/appDaily.htm?tab=info 
支付宝开发者文档:https://openhome.alipay.com/developmentDocument.htm 
电脑网站支付流程:https://docs.open.alipay.com/270 
生成签名:https://docs.open.alipay.com/291/106103/ 
python-alipay-adk : https://github.com/fzlee/alipay/blob/master/README.zh-hans.md

阿里官方没有提供python对接支付的sdk,但是python库中有非官方的sdk包可以使用
python-alipay-adk : https://github.com/fzlee/alipay/blob/master/README.zh-hans.md
使用起来非常简单,只要传入几个必要的参数就可以完成
由于支付对安全要求很高,所以要理解对接支付宝安全的流程: 公钥加密、私钥解密 这八个字

1.沙箱环境的创建及使用

1.1第一步:创建应用(这里使用沙箱环境测试)

沙箱环境说明

线上环境需要创建应用,因为我们不是企业,没有资质,所以只能申请沙箱环境
简单来讲沙箱环境就是给开发者使用的测试环境
沙箱环境地址https://openhome.alipay.com/platform/appDaily.htm?tab=info

02.支付宝沙箱环境注册及使用-编程部落

公钥加密、私钥解密

02.支付宝沙箱环境注册及使用-编程部落

1.2 按照官方要求生成秘钥

生成秘钥参考官网: https://docs.open.alipay.com/291/105971

需要下载工具(windows选上面这个 地球人都知道!)

02.支付宝沙箱环境注册及使用-编程部落

一定要存储两个东西

支付宝公钥:我发送信息给支付宝,使用支付宝公钥进行加密

app私钥(我自己生成的):支付宝给我发送的信息是用我刚刚上传的app公钥加密,只有我

自己的私钥可以解密

下载相应环境工具并安装后即可使用。

1.3把生成的app公钥粘贴到沙箱环境的app

沙箱环境地址: https://openhome.alipay.com/platform/appDaily.htm?tab=info
02.支付宝沙箱环境注册及使用-编程部落

1.4 查看沙箱环境账号和密码

沙箱账号地址:https://openhome.alipay.com/platform/appDaily.htm?tab=account

#商家信息
商家账号axxdws3230@sandbox.com
商户UID2088102181105490
登录密码111111


买家信息
买家账号uqdgdc2803@sandbox.com
登录密码111111
支付密码111111
用户名称uqdgdc2803
证件类型身份证(IDENTITY_CARD)
证件号码973608193303181861

2.测试支付宝获取支付宝扫码链接


2.1 app_private_key.pem app私钥

-----BEGIN RSA PRIVATE KEY-----
..................
-----END RSA PRIVATE KEY-----

2.2 alipay_public_key.pem 支付宝公钥

-----BEGIN PUBLIC KEY-----
.........
-----END PUBLIC KEY-----

02.支付宝沙箱环境注册及使用-编程部落

2.3测试生成支付链接

alipay_public_text.py

# -*- coding: utf-8 -*-
from alipay import AliPay

# 沙箱环境中 app 私钥
app_private_key_string = open('app_private_key.pem').read()  # app私钥
alipay_public_key_string = open('alipay_public_key.pem').read()  # 支付宝公钥


def get_alipay_url():
    # 实例化一个alipay对象
    alipay = AliPay(
        appid="2016102600762673",
        app_notify_url=None,  # 默认回调url
        app_private_key_string=app_private_key_string,  # 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥,
        alipay_public_key_string=alipay_public_key_string,
        sign_type="RSA2",  # RSA 或者 RSA2
        debug=True,  # 默认False,我们是沙箱,所以改成True(让访问沙箱环境支付宝地址)
        # config = AliPayConfig(timeout=15), # 可选, 请求超时时间
    )

    # 调用支付接口,生成支付链接
    # 电脑网站支付,需要跳转到https://openapi.alipay.com/gateway.do? + order_string
    order_string = alipay.api_alipay_trade_page_pay(
        out_trade_no="201612226",  # 订单id,应该从前端获取
        total_amount=str(0.01),  # 订单总金额
        subject="测试阿里云付款",  # 付款标题信息
        return_url=None,  # 付款成功回调地址(可以为空)
        notify_url=None  # 付款成功后异步通知地址(可以为空)
    )
    pay_url = "https://openapi.alipaydev.com/gateway.do?" + order_string
    print(pay_url)  # 将这个url复制到浏览器,就会打开支付宝支付页面


def query_pay():
    alipay = AliPay(
        appid="2016102600762673",  # 沙箱appid
        app_notify_url=None,  # 默认回调url
        app_private_key_string=app_private_key_string,
        # 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥
        alipay_public_key_string=alipay_public_key_string,
        sign_type="RSA2",  # RSA 或者 RSA2
        debug=True,  # 默认False,我们是沙箱,所以改成True(让访问沙箱环境支付宝地址)
    )
    trade_query = alipay.api_alipay_trade_query(
        out_trade_no=20161112,  # 上面生成支付码页面时传入的商品订单号
        trade_no=None
    )
    print(trade_query)


if __name__ == '__main__':
    get_alipay_url()
    # query_pay()


'''
{
    "code":"10000",	# code=10000代表支付成功
    "msg":"Success",
    "buyer_logon_id":"foq***@sandbox.com",
    "buyer_pay_amount":"0.00",
    "buyer_user_id":"2088102180228981",
    "buyer_user_type":"PRIVATE",
    "invoice_amount":"0.00",
    "out_trade_no":"20161112",
    "point_amount":"0.00",
    "receipt_amount":"0.00",
    "send_pay_date":"2020-02-20 21:20:48",
    "total_amount":"0.01",
    "trade_no":"2020022022001428981000087565",
    "trade_status":"TRADE_SUCCESS"
}
'''

生成链接如下

http://unitradeprod.alipaydev.com/appAssign.htm?alipay_exterface_invoke_assign_target=invoke_cb06f44f1829269133016bba74da9446&alipay_exterface_invoke_assign_sign=_ew_sx_r_w_u_v_b7h_nre%2Fd_ltm1_gddv_gs8_bxro_eif_f1awsc_q_c_fz_a6t_z_cb2iu_q%3D%3D

从小白到大神的蜕变~~