支付宝支付原理
-
支付宝支付流程


-
新建支付宝应用
'''
沙箱环境说明
线上环境需要创建应用,因为我们不是企业,没有资质,所以只能申请沙箱环境
简单来讲沙箱环境就是给开发者使用的测试环境
沙箱环境地址: https://openhome.alipay.com/platform/appDaily.htm?tab=info
生成秘钥参考官网: https://docs.open.alipay.com/291/105971
'''



-
说明
'''
阿里官方没有提供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----- MIIEpAIBAAKCAQEAxXRdL+ALzW4AW6ndW5/ZD44ppPsfm9If/oc3pc1gmqjT7z73swlUhotEPZnLsk8hq dEoR9fg/+0XijuJQqnU+CU3pptdXgkIcyq/fyvpRgkX2OA9G7CHEveZ97leaOG2RI1i2JvgUiM+O2LiDA AbTWtk8Chx+j2Z+R5s22zgI/y+45bcMht/YDxAbmgDFkBq32PyHlu3gTjoB7SqBZ8ecU8AKBxSjUPB3t5 ls4T2P3Xy/ER2/PFcnh0vZGQsZRbHQ6wS1Jsql/3Wu1+tvHvIiKKXPGUcZe7czfqfwcIwVPrntEdPYC2J USzC94vFwcMNAlai/aiWDCc4jDt1W7oetwIDAQABAoIBAQDBNBESjUk/I0laZ6Vex9PeMp5w/f95umrv5 GMA6yqBanyldplsJ877Lz4AgIId4Ovxe+TMF2HjSZxk98hg4Eiw3cnMTe1X28LW3Zcu2kqQ6sjYvuFMPL iOSJPxHwJP4bs07Jsxk6Q0+qMj/KduUpRkdpb3nruXvbrxVWHyel//FM6jqCvxxFWBhCikDjNPZEgPJa+ at1viN/u1eOoEO5/SBkVYePF6O3Nx8rR20nG2KfvvLkfWfBvVnIWdmkUmqMX2EIXF+af66FlcgWTszvkx pIS3KnHGK5rHe2+uTuJp57MY0WnJq5v6vKwhOADvNiwLg2dwLDSq9SRJzWnsm+RBAoGBAP0wA92l9Ilag gLD8WCFeVICiNWGlA2jSYfindMXX9rf6xo8hSr/YWfyxu6guBqvo7b/onG7DwyrDOvlq7X/kQNbtxkis/ oYBeWssF6ab10CtFuF1wUP5jXoaAMUIy2xrXcmO5bJsvTE6O9VZophlSo0uvXxBJRSgqfEo0wEET6HAoG BAMel3KitQQArxiD8SHDE6q1hb5elIDTyYiJI65EagWO41xcBMduu0tjZyoTbL6MWKHCxxXuOsWpQjtuF 8FVesDMBBpC9VLO4IvnQDZb7lKXWgEnMc4gckL+KNzgkIzYNs1jW6IYfcY82iP22AoH3xbnaYI56sH2lA RUZcUNe/3pRAoGBAPWvYSD1SEz8yco7L4A1JRwCn5tsA0EUoWa97d6IARkYTkBgV+z4ciH3gTjQNraWl2 wdthlcpmbpmRlT/gMWozY6CnvWpATcyOQtZdv3SndcB34EazlbS04mXsAWC2js0GIddJeG1CQW695K5b0 EokWZc47yuTngsy5vbvJ1w/IDAoGAW5jpaCo1DFMJD9Evmy19ThbKEBUedaxPAdPa4DP88Te410EhEt1e t0cU92dor7ZWz32AUXPiShizslv9K+3JgV0TGg0Dc4Ej6uFdmsvKI1wKd9FpoCUa9AYB16wcy4v1oOjYv dBnVYF70ItVEzQOb3qVmkkH+F1f5cJKiNJo/EECgYA1OZn4LqvFsK/WG23FFcW6wvGOKjHgAfwENILiHB jHNESYBtwnRaV0Vgikz3tfC5qehmuJT+N+bjsqsqaM3ZR50/xqWx6qGenA5KbGyMkWMu4LFAuqGKz1ocH 2kjM+jc0eNRzABj7A9ATx+1nfiKD0ehc6lrXIp71rItEuKxyO8w== -----END RSA PRIVATE KEY-----
# alipay_public_key.pem 支付宝公钥
-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIgHnOn7LLILlKETd6BFRJ0GqgS2Y3mn1wMQmyh9zEy Wlz5p1zrahRahbXAfCfSqshSNfqOmAQzSHRVjCqjsAw1jyqrXaPdKBmr90DIpIxmIyKXv4GGAkPyJ/6FT FY99uhpiq0qadD/uSzQsefWo0aTvP/65zi3eof7TcZ32oWpwIDAQAB -----END PUBLIC KEY-----
-
测试生成支付连接
from alipy 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='2016101800716047', # 沙箱appid
app_notify_url=None, # 默认回调url
app_private_key_string=app_private_key_string,
# 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥,
alipay_public_key_string=alipay_public_key_string,
sign_type='RSA', # 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='2016101800716047', # 沙箱appid
app_notify_url=None, # 默认回调url
app_private_key_string=app_private_key_string,
# 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥,
alipay_public_key_string=alipay_public_key_string,
sign_type='RSA', # RSA 或者 RSA2
debug=True, # 默认False,我们是沙箱,所以改成True(让访问沙箱环境支付宝地址)
)
trade_query = alipay.api_alipay_trade_query(
out_trade_no=20161112, # 上面生成支付码页面时传入的商品订单号
trade_no=None
)
print(trade_query)
)

浙公网安备 33010602011771号