一、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支付 二次封裝
測試文件