一、SDK与API
1、SDK(software development kit),中文可译为“软件开发工具包”。
一般都是一些被软件工程师用于为特定的软件包、软件架构、硬件平台、操作系统等建立应用软件的开发工具的集合。
通俗点是指由第三方服务商提供的实现软件产品某项功能的工具包。在编辑器里敲代码的时候它会自动补全代码、自动检查错误
提供用户编程时的接口,是一些预先定义的
函数。
目的是提供
应用程序与开发人员基于某
软件或硬件得以访问一组
例程的能力,而又无需访问源码,或理解内部工作
机制的细节。
讲个小故事:
研发人员A开发了软件A,研发人员B正在研发软件B。
有一天,研发人员B想要调用软件A的部分功能来用,但是他又不想从头看一遍软件A的源码和功能实现过程,怎么办呢?
研发人员A想了一个好主意: 我把软件A里你需要的功能打包好,写成一个函数。你按照我说的流程,把这个函数放在软件B里,就能直接用我的功能了!
其中,API就是研发人员A说的那个函数。
二、alipay支付
1、在scripts文件夹中 新建t_alipay文件
2、文件内 按照sdk写代码
先写配置代码

生成密钥
下载安装
打开,生成密钥
有应用公钥去支付宝开放平台生成 支付宝公钥
最终代码
# 根据sdk文档写 from alipay import AliPay # 应用私钥 # 固定写法,固定三行。非对称加密:拿私钥签发加密,拿公钥解密,因为公钥是由私钥产生的 app_private_key_string = """-----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAkzbXH6DincqSPTvwf1yvvqJ9B7dKzpZ6rfrxaNgxfQ4k8g5y9oWeHDnvbG1L6tjGRhLJRAqdGzZSWF4y8bM8ZQqvl93L+O62qILIEthLbFRy1TJypHso4E0ar4qDUAMjfqKk34KcVlkTklevzO1j8UxupjVgRSsSLTwm7e8xFn/JyI+Aj37Ysh5daxYDhmf8AwsF4ZhjonAFSPfmhS3laZ8KOg1qtzddDVb9LsL8qL6DQBkAPvRtjArcxDAgkpBvoMVNHXyxlXNSnU1ottgQx1fqCafrBHiuu4BgYnlEgj73kFvF0PTQ163i4vLqYTRXTd7cmSo8bVr6Mm4ferXn9QIDAQABAoIBABxMcHH+BVH7vLzUpth0wrvMlGhFTbYEqzSChqF23ZyCeYumR2coLEqUwHeBUxSj8wlJVzMjLywp9w5RnU1k/PkXYsW4txr1GFuwODGXLnh2i1R8TBleK29iovyXjcJ1t/8B2Nu2ScM3gFGjVYH5KDscTDDbFdR2ARp886bNUgxW3Zb6/JJrPn/Evt/h+uH3O0ke0QAzRRoVmOXxrfDwzSa5yHxeIAS8F9Xh+XJI3rDWiRbwtUKucuWC6k4tZcIyDk+AM19Jyz7FDBkbDCc3ENZqmytQczqbmHESPNTNG6yW2en+PPf9cNeYMwAhedsBAZEQsJ/EgpH3v5EFenQTSskCgYEAxc/PfxyNJCX41q0UzFeBqyk45F0z0riTDoGiAwQWj9sST3wBujRdThLbzdhWfdoXSWaGQSwpzigYZ8W2a+aLGrQhV5z4H+VgEzDpjmndcVj/CBHxBFXJdvvmWEl4OoeRo+5tncBFeE4ScXPY5d9hMkbvFEWjagoOngbjw5q2tJ8CgYEAvoTJ2ZeGbxyFJHVm4nzY9cQykghPKYj1vDlIPEsF5a5FirOB03xjNig/Swy8DSOmaiR6uSb0nR2E+Q5pscEJQ3+Mc1aNYJ9Iy6IN1HvQUGTjmaCrGqQkPlwEOsGgV+99cOCOOSupmTexlJ9qHz1JMjvtg07UcKK7pUStHjDBpusCgYEAngrXhH5CQhRYiORGTrDHeAH6Y3IXuo8fZyKpV3GHuS3Vpk20b5nwxjUJCqCDEhASNOHF+AIZ8I1WWmq7wd+zWgV68i4GjC1OImcc41yvwSTSthbnkogb64V81yLz/QddlDUlvTjmCCWQVLazH43mcS39TBwLYOhiH13v0dMlkI8CgYBSvXykIShjLPGtycbq6emXoqOLxEwM78w4+G+kr7hZ7XuKJzdkz4qOxJ/oShmJY0gspLcfnglyCpXrTBUe+4S4abZniNlRcxu8RB7ZfwQTRh2KZLqqkUqkQnYbxmeKiRnjYcKilZHMVuGqeCkwc/9L77bQ5fVhDWuM9OxyRh50DQKBgHg7cRaq3PGGjoCKh01mWiATWyOUadlgevi+0Ju4vK/Bjl5eitDTyvJ6b6NWEQZXhT4UZs/Wcq+bG2RF+G/Sx3Y1zwnlqw6Dmd/mDPVN1mOHQyRqOtf5yjqVKxHG4fpw2OnPOkvst1UvNGRQQITVHTzFw7BPnNqKpEvq92oNcQw/ -----END RSA PRIVATE KEY-----""" # 支付宝公钥 alipay_public_key_string = """-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0af0AzpsISfe6McmOKV4vRbebWcdWQhaHtDg/o/9lliB30W/p5UzZoXcEYEjaSLviAjfEZrbXb+gxq9opRsF0c5nNmsNAwfnYDSX0arDipXidl0EkR5Ud6N0huETRQBOejrj6s1sjtWXLutmXSKcwFqw0XijV5ONdlIfRHpEOIMDU2qgt9dsfZ5OOXLxyaVfSygS4u24cMvLji8flHIlbMzGhzxZ7Wvd0csPItg8p/zFuq0yhdwwmH6CzLX67PNaP89AF7uiFf8H0osMcy0FaNM3S8OpMQ1GCJ3FVoJYn6H8XznnVYSxOdL43dPt9iPBT5raqtOvwTZ8Wj5pJvS46wIDAQAB -----END PUBLIC KEY-----""" # 支付对象 alipay = AliPay( appid="2016101900721602", # 沙箱应用中的 app_notify_url=None, # the default notify path app_private_key_string=app_private_key_string, # alipay public key, do not use your own public key! alipay_public_key_string=alipay_public_key_string, sign_type="RSA2", # RSA or RSA2 # 加密方式 debug=False # False by default # 是否是线下线上环境 ) # 测试网关 gateway = 'https://openapi.alipaydev.com/gateway.do' #支付链接 : https://openapi.alipay.com/gateway.do? + order_string import time order_string = alipay.api_alipay_trade_page_pay ( out_trade_no="%s" % time.time(), total_amount=50000, subject='航母', return_url="http://localhost:8080", # 前台回调接口:支付成功后会跳转到前台的首页 notify_url="https://example.com/notify" # 后台回调接口。上线后,要换成公网的 ) # 支付链接 pay_url=gateway + '?' + order_string print(pay_url)
生成的支付链接
两种支付方式
支付成功
结果
三、alipay支付 二次封装
测试文件