02.支付宝沙箱环境注册及使用
#访问"支付宝开发平台"登录,可以访问开发者中心
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
公钥加密、私钥解密
1.2 按照官方要求生成秘钥#
生成秘钥参考官网: https://docs.open.alipay.com/291/105971
- 需要下载工具(windows选上面这个 地球人都知道!)
-
一定要存储两个东西
-
支付宝公钥:我发送信息给支付宝,使用支付宝公钥进行加密
-
app私钥(我自己生成的):支付宝给我发送的信息是用我刚刚上传的app公钥加密,只有我
自己的私钥可以解密
-
-
下载相应环境工具并安装后即可使用。
1.3把生成的app公钥粘贴到沙箱环境的app中#
沙箱环境地址: https://openhome.alipay.com/platform/appDaily.htm?tab=info
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-----
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
作者:就学45分钟
出处:https://www.cnblogs.com/tjw-bk/p/13823408.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了