支付宝简单使用

支付宝

一 支付宝支付流程

二 准备支付测试步骤

# 1、在沙箱环境下实名认证:https://openhome.alipay.com/platform/appDaily.htm?tab=info

# 2、电脑网站支付API:https://docs.open.alipay.com/270/105898/

# 3、完成RSA密钥生成:https://docs.open.alipay.com/291/105971

# 4、在开发中心的沙箱应用下设置应用公钥:填入生成的公钥文件中的内容

# 5、Python支付宝开源框架:https://github.com/fzlee/alipay
# >: pip install python-alipay-sdk --upgrade

# 7、公钥私钥设置
"""
# alipay_public_key.pem
-----BEGIN PUBLIC KEY-----
支付宝公钥
-----END PUBLIC KEY-----

# app_private_key.pem
-----BEGIN RSA PRIVATE KEY-----
用户私钥
-----END RSA PRIVATE KEY-----
"""

# 8、支付宝链接
"""
开发:https://openapi.alipay.com/gateway.do
沙箱:https://openapi.alipaydev.com/gateway.do
"""

三 aliapy二次封装包

1 依赖

>: pip install python-alipay-sdk --upgrade

2 结构

libs
    ├── iPay  							# aliapy二次封装包
    │   ├── __init__.py 				# 包文件
    │   ├── keys						# 密钥文件夹
    │   │   ├── alipay_public_key.pem  	# 支付宝公钥
    │   │   └── app_private_key.pem  	# 应用私钥
    └── └── settings.py  				# 应用配置  

3 setting.py

import os
# 支付宝应用id
APP_ID = '2016101500689915'
# 默认异步回调的地址,通常设置None就行,在配置支付链接参数时再规定同步异步回调接口
APP_NOTIFY_URL = None
# 签名方式
SIGN_TYPE = 'RSA2'
# 是否是测试环境
DEBUG = True
# 上线后必须换成官网地址
# 同步回调的接口(get),前后台分离时一般设置前台页面url
RETURN_URL = 'http://127.0.0.1:8080/pay/success'
# 异步回调的接口(post),一定设置为后台服务器接口
NOTIFY_URL = 'http://127.0.0.1:8000/order/success/'
# 读取应用私钥字符串
app_private_key_string = open(os.path.join(os.path.dirname(__file__), 'keys', 'app_private_key.pem')).read()
# 读取支付宝公钥字符串
alipay_public_key_string = open(os.path.join(os.path.dirname(__file__), 'keys', 'alipay_public_key.pem')).read()

4 init.py

from alipay import AliPay
from .settings import *

# 对外提供
from .settings import RETURN_URL, NOTIFY_URL
# 对外提供支付对象
alipay = AliPay(
    appid=APP_ID, # app id
    app_notify_url=APP_NOTIFY_URL, # 异步请求接口
    app_private_key_string=app_private_key_string, # 应用私钥字符串
    alipay_public_key_string=alipay_public_key_string, # 支付宝公钥字符串
    sign_type=SIGN_TYPE, # 加密类型
    debug=DEBUG # debug=True 默认会测dev的请求连接
)

5 alipay_public_key.pem

-----BEGIN PUBLIC KEY-----
支付宝公钥
-----END PUBLIC KEY-----

6 app_private_key.pem

-----BEGIN RSA PRIVATE KEY-----
应用私钥
-----END RSA PRIVATE KEY-----

7 补充:dev.py

# 上线后必须换成官网地址
# 同步回调的接口(get),前后台分离时一般设置前台页面url
RETURN_URL = 'http://127.0.0.1:8080/pay/success'
# 异步回调的接口(post),一定设置为后台服务器接口
NOTIFY_URL = 'http://127.0.0.1:8000/order/success/'

8 测试

ps:对于二次封装包的测试,测得是沙箱环境,会有模拟的账号,密码来作为用户测试。

scripts/t_aipay.py

from libs.my_pay import alipay, RETURN_URL, NOTIFY_URL

order_string = alipay.api_alipay_trade_page_pay(
    subject='小飞机', # 商品名
    out_trade_no='12345678', #订单号
    total_amount='6.66', # 商品价格 
    return_url=RETURN_URL, # 同步前端调用接口 ,前端支付完了之后支付宝会控制你的浏览器调用该接口(也就是你的前端接口)
    notify_url=NOTIFY_URL # 异步后端调用接口,支付宝后台会自己请求你的后端接口向你发送数据。
)
pay_url = '%s?%s' % (alipay._gateway, order_string)
print(pay_url)
posted @ 2019-12-20 13:26  张明岩  阅读(411)  评论(0编辑  收藏  举报