300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 支付宝第三方支付保证数据的安全性

支付宝第三方支付保证数据的安全性

时间:2021-04-08 11:17:28

相关推荐

支付宝第三方支付保证数据的安全性

目录:

支付宝介绍支付宝是如何保证数据安全的(数据传输如何保证安全)

一. 支付宝介绍

1、支付宝开发网址

支付宝开放平台: /platform/home.htm

支付宝沙箱环境: /platform/appDaily.htm?tab=info

支付宝开发者文档:/developmentDocument.htm

电脑网站支付流程:https://docs./270

生成签名:https://docs./291/106103/

python-alipay-adk : /fzlee/alipay/blob/master/README.zh-hans.md

2.使用python对接支付宝

直接使用第三方SDK(python-alipay-sdk): /fzlee/alipay/blob/master/README.zh-hans.md

1、登录开发者中心,熟悉"电脑网站支付"整体流程

# 访问"支付宝开发平台"登录,可以访问开发者中心/platform/home.htm# 可以参考"电脑网站支付" 熟悉电脑支付整体流程https://docs./270/105899/

2、第一步:创建应用(这里使用沙箱环境测试)

1)沙箱环境说明

线上环境需要创建应用,因为我们不是企业,没有资质,所以只能申请沙箱环境简单来讲沙箱环境就是给开发者使用的测试环境沙箱环境地址:/platform/appDaily.htm?tab=info

2、按照官方要求生成秘钥

生成秘钥参考官网:https://docs./291/105971

3、把生成的app公钥粘贴到沙箱环境的app中

沙箱环境地址:/platform/appDaily.htm?tab=info 1)粘贴app公钥到沙箱环境中2)支付宝公钥一会再程序中要使用 4.使用 python-alipay-sdk 支付&查询支付结果

1、说明

阿里官方没有提供python对接支付的sdk,但是python库中有非官方的sdk包可以使用python-alipay-adk : /fzlee/alipay/blob/master/README.zh-hans.md使用起来非常简单,只要传入几个必要的参数就可以完成由于支付对安全要求很高,所以要理解对接支付宝安全的流程:公钥加密、私钥解密 这八个字

2、代码如何实现

第一:生成支付的url 在电脑本地生成公钥、私钥(app公钥、app私钥)APP的公钥要上传到沙箱环境,然后我们要下载支付宝公钥提供(实例化Alipay对象):appid、支付宝公钥、app私钥提供(拼接付款的url):订单id、金额、标题、return_url(付款成功的回调接口)、notify_url(付款成功后的异步通知) 第二:主动查询支付结果 提供(实例化Alipay对象):appid、支付宝公钥、app私钥提供一个 订单id就可以查询当前订单支付结果

3、代码

from alipay 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="101800716047", # 沙箱appidapp_notify_url=None, # 默认回调urlapp_private_key_string=app_private_key_string,# 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥,alipay_public_key_string=alipay_public_key_string,sign_type="RSA", # RSA 或者 RSA2debug=True, # 默认False,我们是沙箱,所以改成True(让访问沙箱环境支付宝地址))# 调用支付接口# 电脑网站支付,需要跳转到/gateway.do? + order_stringorder_string = alipay.api_alipay_trade_page_pay(out_trade_no="11124", # 订单id,应该从前端获取total_amount=str(0.01), # 订单总金额subject="测试阿里云付款", # 付款标题信息return_url=None, # 付款成功回调地址(可以为空)notify_url=None # 付款成功后异步通知地址(可以为空))pay_url = "/gateway.do?" + order_stringprint(pay_url) # 将这个url复制到浏览器,就会打开支付宝支付页面def query_pay():alipay = AliPay(appid="101800716047", # 沙箱appidapp_notify_url=None, # 默认回调urlapp_private_key_string=app_private_key_string,# 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥alipay_public_key_string=alipay_public_key_string,sign_type="RSA", # RSA 或者 RSA2debug=True, # 默认False,我们是沙箱,所以改成True(让访问沙箱环境支付宝地址))trade_query = alipay.api_alipay_trade_query(out_trade_no=1112, # 上面生成支付码页面时传入的商品订单号trade_no=None)print(trade_query)if __name__ == '__main__':get_alipay_url()query_pay()'''trade_query 查询用户付款信息返回信息详情请看官方:https://docs./api_1/alipay.trade.query{"code": "10000", # code=10000代表支付成功"msg": "Success","buyer_logon_id": "foq***@","buyer_pay_amount": "0.00","buyer_user_id": "2088102180228981","buyer_user_type": "PRIVATE","invoice_amount": "0.00","out_trade_no": "1112","point_amount": "0.00","receipt_amount": "0.00","send_pay_date": "-02-20 21:20:48","total_amount": "0.01","trade_no": "02001428981000087565","trade_status": "TRADE_SUCCESS" }'''

-----BEGIN PUBLIC KEY-----

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIgHnOn7LLILlKETd6BFRJ0GqgS2Y3mn1wMQmyh9zEyWlz5p1zrahRahbXAfCfSqshSNfqOmAQzSHRVjCqjsAw1jyqrXaPdKBmr90DIpIxmIyKXv4GGAkPyJ/6FTFY99uhpiq0qadD/uSzQsefWo0aTvP/65zi3eof7TcZ32oWpwIDAQAB

-----END PUBLIC KEY-----

-----BEGIN RSA PRIVATE KEY-----

MIICXAIBAAKBgQCqHFHARYve67Nt/xADRjFsRVTuwOaUiE6GBoQD6JnDOeD07TF1L7cqL4c4zxqEWlcb5p7ZO5Czyw7mpQ7W1jtI9smBxEPEC0ZvlsOuh8zAiVng4gj54eDHarLhfkMk+/pzq44AT/B1CQgtUJRGZrppTO/4SEQZYMO5RcesnPO32QIDAQABAoGAZXlbMuzJkQLdGAKM1McseD+reHjNk1D0NnLwkTxRbOm7zZ8oX5VFF/8eFL9GPCl/yP77Ru6HVRkOHHvdrD5DQjkJ4VipmDQ8xfZlpMmdc2HLtezqR9GG3xso/cAdpCCRjR+vHfr/BTltEiZD3OJapGojyURo/QG5qe7r5lPGBJkCQQD0iZy2+xTfgS58vlD8wtYOXVYkQ4aGtejKx0wgvyws3ahLmv5t9lBB6YfKCVuOHv1ZvwAngWpTsoh4vxeLT8sbAkEAshWaaRyER9SJaeMIBuRf24Bmlyk6piDLTpOOE4lduvjR6j+IgJjY5/N4QTwy9G1vMVwWVzOX/wyinrY48wSkGwJBALcncudiO4oDuYvZB9OpIqZzphdXNCUljoyCpTRJu46HHowyNKqruAUGIpxiUd6qu1tCwZzVQ4wYxjqZ9cp0I00CQEJJ7ldQCSFfyOLEYrmGCvR/ADEmZLFwJZ2TKWC2UlCFzEWg7qPHwX3d0BagXOtFTQ2XlK1TBDIpNuNTOzGiuZ8CQAY/vcaxPm3VyjfevHpFmmwqHuNmRTyKdc3bd8NXTj/MJk7en/gK86PUHdixvudojGTbQOdSSWM/QQoVu8d+DFk=

-----END RSA PRIVATE KEY-----

二. 支付宝是如何保证数据安全的(数据传输如何保证安全)

1.非对称加密算法:

非对称加密: 非对称加密算法需要两个密钥:公钥(publickey)和私钥(privatekey)

公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

2.非对称加密算法实现机密信息交换的基本过程是:

甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。

优点:安全 缺点:速度较慢

常见的非对称加密算法有:

RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)

3.非对称加密保证数据安全的原理:

django APP端:Alipay公钥,app公钥,app私钥

支付宝的server端:Alipay公钥,Alipay私钥

Django端向阿里端发数据:django端用Alipay的公钥加密向支付宝server端发送数据(其中包括app的公钥,用来确认身份),然后支付宝用Alipay私钥解密。

支付宝向Django端发数据:用app公钥加密向Django端发消息,Django端用自己的私钥进行解密

django加密过得数据连django自己都解密不了必须要阿里云的私钥进行解密 相反也是一样的

总结就八个字:公钥加密,私钥解密

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。