支付宝支付原理


1.支付宝支付流程

在这里插入图片描述
在这里插入图片描述

2.新建支付宝应用

# 访问"支付宝开发平台"登录,可以访问开发者中心
https://open.alipay.com/platform/home.htm

# 可以参考"电脑网站支付" 熟悉电脑支付整体流程
https://docs.open.alipay.com/270/105899/
2.1 第一步:创建应用(这里使用沙箱环境测试)
  • 沙箱环境说明
    • 线上环境需要创建应用,因为我们不是企业,没有资质,所以只能申请沙箱环境
    • 简单来讲沙箱环境就是给开发者使用的测试环境
    • 沙箱环境地址: https://openhome.alipay.com/platform/appDaily.htm?tab=info
      在这里插入图片描述
2.2 按照官方要求生成秘钥

生成秘钥参考官网: https://docs.open.alipay.com/291/105971
在这里插入图片描述

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

沙箱环境地址: https://openhome.alipay.com/platform/appDaily.htm?tab=info
在这里插入图片描述

2.4查看沙箱环境账号和密码
# 买家信息
买家账号foqhub3270@sandbox.com
登录密码111111
支付密码111111

# 商家账号uqqgmd6602@sandbox.com
商户UID2088102180143385
登录密码111111

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

3.1支付宝开发网址
支付宝开放平台: 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
3.2 说明
  • 阿里官方没有提供python对接支付的sdk,但是python库中有非官方的sdk包可以使用
  • python-alipay-adk : https://github.com/fzlee/alipay/blob/master/README.zh-hans.md
  • 使用起来非常简单,只要传入几个必要的参数就可以完成
  • 由于支付对安全要求很高,所以要理解对接支付宝安全的流程: 公钥加密、私钥解密 这八个字
app_private_key.pem app私钥(文件是文本类型)
-----BEGIN RSA PRIVATE KEY-----
	app私钥放这里 
-----END RSA PRIVATE KEY-----

3.4 alipay_public_key.pem 支付宝公钥
-----BEGIN PUBLIC KEY-----
	支付宝公钥
-----END PUBLIC KEY-----

说明:公钥和私钥必须用 例:-----BEGIN PUBLIC KEY----- 包着,相当于声名,且不能有任何其余信息,包括 -- coding: utf-8 --

3.5 测试生成支付链接
from alipay import AliPay
# 这是电脑端支付

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

# 获取支付链接
def get_alipay_url():
    alipay = AliPay(
    appid="2016102600762854", # 沙箱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(让访问沙箱环境支付宝地址)
    )
# 调用支付接口
    # 电脑网站支付,需要跳转到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="2016102600762854", # 沙箱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=201612226, # 上面生成支付码页面时传入的商品订单号  订单id
    trade_no=None
    )
    print(trade_query)

# if __name__ == '__main__':
#     get_alipay_url()
    # #query_pay()
  • 生成链接:
https://excashier.alipaydev.com/standard/auth.htm?
payOrderId=79d3a024f4904f58af434843b945132f.00
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值