通过AES加密网站的接口来传值,不需要手动加密字符串后复制过来传值。

 #coding:utf-8
import requests
import re
def get_aes_url(key, text):
url = 'http://www.ssleye.com/des/web_aes_encrypt'
header = {
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
}
payload = {
"text": text,
"encode_flag": "utf8",
"key": key,
"iv": "",
"mode": "ECB",
"padding": "pkcs5",
"out_mode": "base64"
}
r = requests.post(url=url, headers=header, data=payload)
result = r.text
aa = re.findall("<pre>(.+?)</pre>", result)
bb = str(aa[0])
return bb if __name__ == '__main__':
# key = 'WuMlCJRN8zO886dw'
# text = '<REQUEST_FPKJXX><FPKJXX_FPTXX><NSRSBH>330201999999868</NSRSBH><NSRMC>航信培训企业</NSRMC><DDLSH>3302019999998682223</DDLSH><DDH></DDH><DDDATE>2018-07-20</DDDATE><BMB_BBH>13.0</BMB_BBH><XHF_DZ><![CDATA[宁波研发园]]></XHF_DZ><XHF_DH><![CDATA[88776655]]></XHF_DH><XHF_YHZH><![CDATA[中国银行6228480310540239016]]></XHF_YHZH><GHFMC><![CDATA[Nobita]]></GHFMC><GHF_NSRSBH><![CDATA[330203999999018]]></GHF_NSRSBH><GHF_DZ><![CDATA[宁波研发园]]></GHF_DZ><GHF_GDDH><![CDATA[55667788]]></GHF_GDDH><GHF_SJ>13867866196</GHF_SJ><GHF_EMAIL><![CDATA[364942727@qq.com]]></GHF_EMAIL><GHF_YHZH><![CDATA[光大银行6228480310540239018]]></GHF_YHZH><KPLY>999</KPLY><KPY>Nobita</KPY><SKY>Nobita</SKY><FHR>Nobita</FHR><KPLX>1</KPLX><YFP_DM></YFP_DM><YFP_HM></YFP_HM><KPHJJE>0.1</KPHJJE><HJBHSJE>0.1</HJBHSJE><HJSE>0</HJSE><BZ><![CDATA[公共能耗费,面积]]></BZ><BB></BB><WB></WB><FPZL></FPZL><SGBZ></SGBZ></FPKJXX_FPTXX><FPKJXX_XMXXS><FPKJXX_XMXX><XMMC><![CDATA[1]]></XMMC><XMDW></XMDW><GGXH></GGXH><XMSL>0</XMSL><HSBZ>0</HSBZ><XMDJ>0</XMDJ><FPHXZ>0</FPHXZ><SPBM>20300000</SPBM><ZXBM></ZXBM><YHZCBS>0</YHZCBS><LSLBS>3</LSLBS><ZZSTSGL></ZZSTSGL><XMJE>0.1</XMJE><SL>0</SL><SE>0</SE><KCE></KCE><KCQHSJE></KCQHSJE></FPKJXX_XMXX></FPKJXX_XMXXS></REQUEST_FPKJXX>'
# aa = get_aes_url(key, text)
# print(aa)
# print(type(aa))
pass

api_DZFPKJ 代码如下:

 #coding:utf-8
from get_AES_url import get_aes_url
from get_urlencode import jm_urlencode
from get_Base64 import str_base64
from get_Sha1 import hash_hmac
from hashlib import sha1
import requests
import time
#定义参数
host = "http://test2.51fapiaonb.cn:4011/DZFP_Four"
data_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
nsrsbh = "" #这里填需要查询的纳税人识别号
DDLSH_str1 = ""
DDLSH_str2 = ""
DDLSH = DDLSH_str1 + DDLSH_str2
ddh = ""
date = "2018-07-20"
KPLX = "" #1 蓝票 2 红票
YFP_DM = ""
YFP_HM = ""
SGBZ = "" #传空
YHZCBS = "" #优惠标识
LSLBS = "" #0税率标志
ZZSTSGL = "" #内容
SPBM = "" #免税 4030000000000000000 不征收 6010000000000000000
#所有商品行数据
KPHJJE = "0.1"
HJBHSJE = "0.1"
HJSE = ""
#单个商品行数据
XMJE = "0.1"
SL = ""
SE = ""
#发票开具信息
mxs = "<FPKJXX_XMXX>" + \
"<XMMC><![CDATA[1]]></XMMC>" + \
"<XMDW></XMDW>" + \
"<GGXH></GGXH>" + \
"<XMSL>0</XMSL>" + \
"<HSBZ>0</HSBZ>" + \
"<XMDJ>0</XMDJ>" + \
"<FPHXZ>0</FPHXZ>" + \
"<SPBM>" + SPBM + "</SPBM>" + \
"<ZXBM></ZXBM>" + \
"<YHZCBS>" + YHZCBS + "</YHZCBS>" + \
"<LSLBS>" + LSLBS + "</LSLBS>" + \
"<ZZSTSGL>" + ZZSTSGL + "</ZZSTSGL>" + \
"<XMJE>" + XMJE + "</XMJE>" + \
"<SL>" + SL + "</SL>" + \
"<SE>" + SE + "</SE>" + \
"<KCE></KCE>" + \
"<KCQHSJE></KCQHSJE>" + \
"</FPKJXX_XMXX>" #电子发票外部API-DZFPKJ(电子发票开具)
original_content = "<REQUEST_FPKJXX>" + \
"<FPKJXX_FPTXX>" + \
"<NSRSBH>" + nsrsbh + "</NSRSBH>" + \
"<NSRMC>航信培训企业</NSRMC>" + \
"<DDLSH>" + DDLSH + "</DDLSH>" + \
"<DDH>" + ddh + "</DDH>" + \
"<DDDATE>" + date + "</DDDATE>" + \
"<BMB_BBH>13.0</BMB_BBH>" + \
"<XHF_DZ><![CDATA[宁波研发园]]></XHF_DZ>" + \
"<XHF_DH><![CDATA[88776655]]></XHF_DH>" + \
"<XHF_YHZH><![CDATA[中国银行6228480310540239016]]></XHF_YHZH>" + \
"<GHFMC><![CDATA[Nobita]]></GHFMC>" + \
"<GHF_NSRSBH><![CDATA[330203999999018]]></GHF_NSRSBH>" + \
"<GHF_DZ><![CDATA[宁波研发园]]></GHF_DZ>" + \
"<GHF_GDDH><![CDATA[55667788]]></GHF_GDDH>" + \
"<GHF_SJ>13867866196</GHF_SJ>" + \
"<GHF_EMAIL><![CDATA[364942727@qq.com]]></GHF_EMAIL>" + \
"<GHF_YHZH><![CDATA[光大银行6228480310540239018]]></GHF_YHZH>" + \
"<KPLY>999</KPLY>" + \
"<KPY>Nobita</KPY>" + \
"<SKY>Nobita</SKY>" + \
"<FHR>Nobita</FHR>" + \
"<KPLX>" + KPLX + "</KPLX>" + \
"<YFP_DM>" + YFP_DM + "</YFP_DM>" + \
"<YFP_HM>" + YFP_HM + "</YFP_HM>" + \
"<KPHJJE>" + KPHJJE + "</KPHJJE>" + \
"<HJBHSJE>" + HJBHSJE + "</HJBHSJE>" + \
"<HJSE>" + HJSE + "</HJSE>" + \
"<BZ><![CDATA[公共能耗费,面积]]></BZ>" + \
"<BB></BB>" + \
"<WB></WB>" + \
"<FPZL></FPZL>" + \
"<SGBZ>" + SGBZ + "</SGBZ>" + \
"</FPKJXX_FPTXX>" + \
"<FPKJXX_XMXXS>" + \
mxs + \
"</FPKJXX_XMXXS>" + \
"</REQUEST_FPKJXX>"
#AES密钥
key = 'WuMlCJRN8zO886dw'
# print(original_content)
''' AES加密算法的网站:http://www.ssleye.com/aes_cipher.html
AES加密(加解密算法/工作模式/填充方式:AES/ECB/PKCS5Padding;测试环境key值:WuMlCJRN8zO886dw
'''
#初始数据original_content进行AES和Base64加密后,得到original_content_Aes
original_content_Aes_Base64 = get_aes_url(key, original_content) #通用报文初始数据(DZFPCX发票查询)
original_data = '<?xml version=\"1.0\" encoding=\"utf-8\"?>' + \
"<interface>" + \
"<globalInfo>" + \
"<version>4.0</version>" + \
"<interfaceCode>DZFPKJ</interfaceCode>" + \
"<token>{}</token>".format(nsrsbh) + \
"<requestTime>{}</requestTime>".format(data_time) + \
"</globalInfo>" + \
"<Data>" + \
"<content>{}</content>".format(original_content_Aes_Base64) + \
"</Data>" + \
"</interface>" #通用报文原始数据original_data进行Base64加密后,得到RequestParam,再进行urlencode解码
RequestParam_Base64 = str_base64(original_data)
# print("通用报文进行Base64加密后:\n", RequestParam_Base64)
RequestParam_Base64_Urlencode = jm_urlencode(RequestParam_Base64)
# print("通用报文进行Base64和Urlencode加密后:\n", RequestParam_Base64_Urlencode) #RequestParam通过HMAC-SHA1加密,得到Signature
Signature = hash_hmac('I7GBo4w9E6dmGlLVJMaVtXrhbNqp4KBh', RequestParam_Base64, sha1)
# print("通用报文进行Base64和Hash_hmac加密后:\n", Signature) #请求体data构建
RequestParam = RequestParam_Base64_Urlencode
data = "RequestParam=" + RequestParam + "&Signature=" + Signature
result = requests.post(url=host, params=data)
# print(result.url)
print('订单流水号为:\n{}'.format(DDLSH))
print('发票查询返回报文为:\n{}'.format(result.text))

api_DZFPKJ_QDFP 代码如下:

 #coding:utf-8
from get_AES_url import get_aes_url
from get_urlencode import jm_urlencode
from get_Base64 import str_base64
from get_Sha1 import hash_hmac
from hashlib import sha1
import requests
import time
#定义参数
host = "http://test2.51fapiaonb.cn:4011/DZFP_Four"
data_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
nsrsbh = "" #这里填需要查询的纳税人识别号
DDLSH_str1 = ""
DDLSH_str2 = ""
DDLSH = DDLSH_str1 + DDLSH_str2
ddh = ""
date = "2018-07-20"
KPLX = "" #1 蓝票 2 红票
YFP_DM = ""
YFP_HM = ""
SGBZ = "" #传空
YHZCBS = "" #优惠标识
LSLBS = "" #0税率标志
ZZSTSGL = "" #内容
SPBM = "" #免税 4030000000000000000 不征收 6010000000000000000
#所有商品行数据
KPHJJE = "1.0"
HJBHSJE = "1.0"
HJSE = ""
#单个商品行数据
XMJE = "0.1"
SL = ""
SE = ""
#发票开具信息
mxs = "<FPKJXX_XMXX>" + \
"<XMMC><![CDATA[1]]></XMMC>" + \
"<XMDW></XMDW>" + \
"<GGXH></GGXH>" + \
"<XMSL>0</XMSL>" + \
"<HSBZ>0</HSBZ>" + \
"<XMDJ>0</XMDJ>" + \
"<FPHXZ>0</FPHXZ>" + \
"<SPBM>20300000</SPBM>" + \
"<ZXBM></ZXBM>" + \
"<YHZCBS>0</YHZCBS>" + \
"<LSLBS>3</LSLBS>" + \
"<ZZSTSGL></ZZSTSGL>" + \
"<XMJE>0.1</XMJE>" + \
"<SL>0</SL>" + \
"<SE>0</SE>" + \
"<KCE></KCE>" + \
"<KCQHSJE></KCQHSJE>" + \
"</FPKJXX_XMXX>" + \
"<FPKJXX_XMXX>" + \
"<XMMC><![CDATA[1]]></XMMC>" + \
"<XMDW></XMDW>" + \
"<GGXH></GGXH>" + \
"<XMSL>0</XMSL>" + \
"<HSBZ>0</HSBZ>" + \
"<XMDJ>0</XMDJ>" + \
"<FPHXZ>0</FPHXZ>" + \
"<SPBM>20300000</SPBM>" + \
"<ZXBM></ZXBM>" + \
"<YHZCBS>0</YHZCBS>" + \
"<LSLBS>3</LSLBS>" + \
"<ZZSTSGL></ZZSTSGL>" + \
"<XMJE>0.1</XMJE>" + \
"<SL>0</SL>" + \
"<SE>0</SE>" + \
"<KCE></KCE>" + \
"<KCQHSJE></KCQHSJE>" + \
"</FPKJXX_XMXX>" + \
"<FPKJXX_XMXX>" + \
"<XMMC><![CDATA[1]]></XMMC>" + \
"<XMDW></XMDW>" + \
"<GGXH></GGXH>" + \
"<XMSL>0</XMSL>" + \
"<HSBZ>0</HSBZ>" + \
"<XMDJ>0</XMDJ>" + \
"<FPHXZ>0</FPHXZ>" + \
"<SPBM>20300000</SPBM>" + \
"<ZXBM></ZXBM>" + \
"<YHZCBS>0</YHZCBS>" + \
"<LSLBS>3</LSLBS>" + \
"<ZZSTSGL></ZZSTSGL>" + \
"<XMJE>0.1</XMJE>" + \
"<SL>0</SL>" + \
"<SE>0</SE>" + \
"<KCE></KCE>" + \
"<KCQHSJE></KCQHSJE>" + \
"</FPKJXX_XMXX>" + \
"<FPKJXX_XMXX>" + \
"<XMMC><![CDATA[1]]></XMMC>" + \
"<XMDW></XMDW>" + \
"<GGXH></GGXH>" + \
"<XMSL>0</XMSL>" + \
"<HSBZ>0</HSBZ>" + \
"<XMDJ>0</XMDJ>" + \
"<FPHXZ>0</FPHXZ>" + \
"<SPBM>20300000</SPBM>" + \
"<ZXBM></ZXBM>" + \
"<YHZCBS>0</YHZCBS>" + \
"<LSLBS>3</LSLBS>" + \
"<ZZSTSGL></ZZSTSGL>" + \
"<XMJE>0.1</XMJE>" + \
"<SL>0</SL>" + \
"<SE>0</SE>" + \
"<KCE></KCE>" + \
"<KCQHSJE></KCQHSJE>" + \
"</FPKJXX_XMXX>" + \
"<FPKJXX_XMXX>" + \
"<XMMC><![CDATA[1]]></XMMC>" + \
"<XMDW></XMDW>" + \
"<GGXH></GGXH>" + \
"<XMSL>0</XMSL>" + \
"<HSBZ>0</HSBZ>" + \
"<XMDJ>0</XMDJ>" + \
"<FPHXZ>0</FPHXZ>" + \
"<SPBM>20300000</SPBM>" + \
"<ZXBM></ZXBM>" + \
"<YHZCBS>0</YHZCBS>" + \
"<LSLBS>3</LSLBS>" + \
"<ZZSTSGL></ZZSTSGL>" + \
"<XMJE>0.1</XMJE>" + \
"<SL>0</SL>" + \
"<SE>0</SE>" + \
"<KCE></KCE>" + \
"<KCQHSJE></KCQHSJE>" + \
"</FPKJXX_XMXX>" + \
"<FPKJXX_XMXX>" + \
"<XMMC><![CDATA[1]]></XMMC>" + \
"<XMDW></XMDW>" + \
"<GGXH></GGXH>" + \
"<XMSL>0</XMSL>" + \
"<HSBZ>0</HSBZ>" + \
"<XMDJ>0</XMDJ>" + \
"<FPHXZ>0</FPHXZ>" + \
"<SPBM>20300000</SPBM>" + \
"<ZXBM></ZXBM>" + \
"<YHZCBS>0</YHZCBS>" + \
"<LSLBS>3</LSLBS>" + \
"<ZZSTSGL></ZZSTSGL>" + \
"<XMJE>0.1</XMJE>" + \
"<SL>0</SL>" + \
"<SE>0</SE>" + \
"<KCE></KCE>" + \
"<KCQHSJE></KCQHSJE>" + \
"</FPKJXX_XMXX>" + \
"<FPKJXX_XMXX>" + \
"<XMMC><![CDATA[1]]></XMMC>" + \
"<XMDW></XMDW>" + \
"<GGXH></GGXH>" + \
"<XMSL>0</XMSL>" + \
"<HSBZ>0</HSBZ>" + \
"<XMDJ>0</XMDJ>" + \
"<FPHXZ>0</FPHXZ>" + \
"<SPBM>20300000</SPBM>" + \
"<ZXBM></ZXBM>" + \
"<YHZCBS>0</YHZCBS>" + \
"<LSLBS>3</LSLBS>" + \
"<ZZSTSGL></ZZSTSGL>" + \
"<XMJE>0.1</XMJE>" + \
"<SL>0</SL>" + \
"<SE>0</SE>" + \
"<KCE></KCE>" + \
"<KCQHSJE></KCQHSJE>" + \
"</FPKJXX_XMXX>" + \
"<FPKJXX_XMXX>" + \
"<XMMC><![CDATA[1]]></XMMC>" + \
"<XMDW></XMDW>" + \
"<GGXH></GGXH>" + \
"<XMSL>0</XMSL>" + \
"<HSBZ>0</HSBZ>" + \
"<XMDJ>0</XMDJ>" + \
"<FPHXZ>0</FPHXZ>" + \
"<SPBM>20300000</SPBM>" + \
"<ZXBM></ZXBM>" + \
"<YHZCBS>0</YHZCBS>" + \
"<LSLBS>3</LSLBS>" + \
"<ZZSTSGL></ZZSTSGL>" + \
"<XMJE>0.1</XMJE>" + \
"<SL>0</SL>" + \
"<SE>0</SE>" + \
"<KCE></KCE>" + \
"<KCQHSJE></KCQHSJE>" + \
"</FPKJXX_XMXX>" + \
"<FPKJXX_XMXX>" + \
"<XMMC><![CDATA[1]]></XMMC>" + \
"<XMDW></XMDW>" + \
"<GGXH></GGXH>" + \
"<XMSL>0</XMSL>" + \
"<HSBZ>0</HSBZ>" + \
"<XMDJ>0</XMDJ>" + \
"<FPHXZ>0</FPHXZ>" + \
"<SPBM>20300000</SPBM>" + \
"<ZXBM></ZXBM>" + \
"<YHZCBS>0</YHZCBS>" + \
"<LSLBS>3</LSLBS>" + \
"<ZZSTSGL></ZZSTSGL>" + \
"<XMJE>0.1</XMJE>" + \
"<SL>0</SL>" + \
"<SE>0</SE>" + \
"<KCE></KCE>" + \
"<KCQHSJE></KCQHSJE>" + \
"</FPKJXX_XMXX>" + \
"<FPKJXX_XMXX>" + \
"<XMMC><![CDATA[1]]></XMMC>" + \
"<XMDW></XMDW>" + \
"<GGXH></GGXH>" + \
"<XMSL>0</XMSL>" + \
"<HSBZ>0</HSBZ>" + \
"<XMDJ>0</XMDJ>" + \
"<FPHXZ>0</FPHXZ>" + \
"<SPBM>20300000</SPBM>" + \
"<ZXBM></ZXBM>" + \
"<YHZCBS>0</YHZCBS>" + \
"<LSLBS>3</LSLBS>" + \
"<ZZSTSGL></ZZSTSGL>" + \
"<XMJE>0.1</XMJE>" + \
"<SL>0</SL>" + \
"<SE>0</SE>" + \
"<KCE></KCE>" + \
"<KCQHSJE></KCQHSJE>" + \
"</FPKJXX_XMXX>" #电子发票外部API-DZFPKJ(电子发票开具)
original_content = "<REQUEST_FPKJXX>" + \
"<FPKJXX_FPTXX>" + \
"<NSRSBH>" + nsrsbh + "</NSRSBH>" + \
"<NSRMC>航信培训企业</NSRMC>" + \
"<DDLSH>" + DDLSH + "</DDLSH>" + \
"<DDH>" + ddh + "</DDH>" + \
"<DDDATE>" + date + "</DDDATE>" + \
"<BMB_BBH>13.0</BMB_BBH>" + \
"<XHF_DZ><![CDATA[222]]></XHF_DZ>" + \
"<XHF_DH><![CDATA[222]]></XHF_DH>" + \
"<XHF_YHZH><![CDATA[222]]></XHF_YHZH>" + \
"<GHFMC><![CDATA[22 2]]></GHFMC>" + \
"<GHF_NSRSBH><![CDATA[330203999999018]]></GHF_NSRSBH>" + \
"<GHF_DZ><![CDATA[地址]]></GHF_DZ>" + \
"<GHF_GDDH><![CDATA[电话]]></GHF_GDDH>" + \
"<GHF_SJ>17871838087</GHF_SJ>" + \
"<GHF_EMAIL><![CDATA[zxy@ms.whb.ac.cn]]></GHF_EMAIL>" + \
"<GHF_YHZH><![CDATA[yhzh]]></GHF_YHZH>" + \
"<KPLY>999</KPLY>" + \
"<KPY>综合服务公共能耗</KPY>" + \
"<SKY>日常维修综合服务</SKY>" + \
"<FHR>车位管理综合面积</FHR>" + \
"<KPLX>" + KPLX + "</KPLX>" + \
"<YFP_DM>" + YFP_DM + "</YFP_DM>" + \
"<YFP_HM>" + YFP_HM + "</YFP_HM>" + \
"<KPHJJE>" + KPHJJE + "</KPHJJE>" + \
"<HJBHSJE>" + HJBHSJE + "</HJBHSJE>" + \
"<HJSE>" + HJSE + "</HJSE>" + \
"<BZ><![CDATA[公共能耗费,面积]]></BZ>" + \
"<BB></BB>" + \
"<WB></WB>" + \
"<FPZL></FPZL>" + \
"<SGBZ>" + SGBZ + "</SGBZ>" + \
"</FPKJXX_FPTXX>" + \
"<FPKJXX_XMXXS>" + \
mxs + \
"</FPKJXX_XMXXS>" + \
"</REQUEST_FPKJXX>"
#AES密钥
key = 'WuMlCJRN8zO886dw'
# print(original_content)
''' AES加密算法的网站:http://www.ssleye.com/aes_cipher.html
AES加密(加解密算法/工作模式/填充方式:AES/ECB/PKCS5Padding;测试环境key值:WuMlCJRN8zO886dw
'''
#初始数据original_content进行AES和Base64加密后,得到original_content_Aes
original_content_Aes_Base64 = get_aes_url(key, original_content) #通用报文初始数据(DZFPCX发票查询)
original_data = '<?xml version=\"1.0\" encoding=\"utf-8\"?>' + \
"<interface>" + \
"<globalInfo>" + \
"<version>4.0</version>" + \
"<interfaceCode>DZFPKJ</interfaceCode>" + \
"<token>{}</token>".format(nsrsbh) + \
"<requestTime>{}</requestTime>".format(data_time) + \
"</globalInfo>" + \
"<Data>" + \
"<content>{}</content>".format(original_content_Aes_Base64) + \
"</Data>" + \
"</interface>" #通用报文原始数据original_data进行Base64加密后,得到RequestParam,再进行urlencode解码
RequestParam_Base64 = str_base64(original_data)
# print("通用报文进行Base64加密后:\n", RequestParam_Base64)
RequestParam_Base64_Urlencode = jm_urlencode(RequestParam_Base64)
# print("通用报文进行Base64和Urlencode加密后:\n", RequestParam_Base64_Urlencode) #RequestParam通过HMAC-SHA1加密,得到Signature
Signature = hash_hmac('I7GBo4w9E6dmGlLVJMaVtXrhbNqp4KBh', RequestParam_Base64, sha1)
# print("通用报文进行Base64和Hash_hmac加密后:\n", Signature) #请求体data构建
RequestParam = RequestParam_Base64_Urlencode
data = "RequestParam=" + RequestParam + "&Signature=" + Signature
result = requests.post(url=host, params=data)
# print(result.url)
print('发票查询ddlsh为:\n{}'.format(DDLSH))
print('发票查询返回报文为:\n{}'.format(result.text))

api_DZFPCX 代码如下:

 #coding:utf-8
from get_AES_url import get_aes_url
from get_urlencode import jm_urlencode
from get_Base64 import str_base64
from get_Sha1 import hash_hmac
from hashlib import sha1
import requests
import time
#定义参数
host = "http://test2.51fapiaonb.cn:4011/DZFP_Four"
data_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
nsrsbh = "" #这里填需要查询的纳税人识别号
# #电子发票外部API-DZFPCX(电子发票查询)
ddlsh = "" #这里填写发票对应的订单流水号
original_content = "<FPXX>" + \
"<NSRSBH>{}</NSRSBH>".format(nsrsbh) + \
"<DDLSH>{}</DDLSH>".format(ddlsh) + "</FPXX>" #AES密钥
key = 'WuMlCJRN8zO886dw'
#初始数据original_content进行AES和Base64加密后,得到original_content_Aes_Base64
original_content_Aes_Base64 = get_aes_url(key, original_content)
# print("content进行AES和Base64加密后:\n", original_content_Aes_Base64) # #通用报文初始数据(DZFPCX发票查询)
original_data = '<?xml version=\"1.0\" encoding=\"utf-8\"?>' + \
"<interface>" + \
"<globalInfo>" + \
"<version>4.1</version>" + \
"<interfaceCode>DZFPCX</interfaceCode>" + \
"<token>" + nsrsbh + "</token>" + \
"<requestTime>" + data_time + "</requestTime>" + \
"</globalInfo>" + \
"<Data>" + \
"<content>" + original_content_Aes_Base64 + "</content>" + \
"</Data>" + \
"</interface>" #通用报文原始数据original_data进行Base64加密后,得到RequestParam,再进行urlencode解码
RequestParam_Base64 = str_base64(original_data)
# print("通用报文进行Base64加密后:\n", RequestParam_Base64)
RequestParam_Base64_Urlencode = jm_urlencode(RequestParam_Base64)
# print("通用报文进行Base64和Urlencode加密后:\n", RequestParam_Base64_Urlencode) #RequestParam通过HMAC-SHA1加密,得到Signature
Signature = hash_hmac('I7GBo4w9E6dmGlLVJMaVtXrhbNqp4KBh', RequestParam_Base64, sha1)
# print("通用报文进行Base64和Hash_hmac加密后:\n", Signature) #请求体data构建
RequestParam = RequestParam_Base64_Urlencode
# url = host + "?RequestParam=" + RequestParam + "&Signature=" + Signature
data = "RequestParam=" + RequestParam + "&Signature=" + Signature
result = requests.post(url=host, params=data)
# print(result.url) #打印请求url
# print(RequestParam)
# print(Signature)
print('发票查询返回报文为:\n{}'.format(result.text))

最新文章

  1. TestNG Assert 详解
  2. 教你一招:解决u盘插入计算机时提示格式化,如何恢复u盘中的文件
  3. JqueryMobile入门基础附源码下载
  4. LINUX的两种后门总结(suid shell与inetd)
  5. 相册弹窗(基于zepto.js)
  6. Java编程思想(2)之一切皆对象
  7. 111_leetcode_Best Time to Buy and Sell Stock III
  8. linux指令备份
  9. Swift - 07 - 布尔类型
  10. Android:关于背景选择器Selector的item顺序
  11. dotweb——go语言的一个微型web框架(二)启动dotweb
  12. 软件工程(GZSD2015)第三次作业
  13. Spider_Man_2 の requests模块
  14. springMVC源码分析--HandlerMethod
  15. java数据类型大转换
  16. C程序第三次作业
  17. HP 集群软件 - 不能接收节点的设备查询信息:软件引起的连接失败
  18. 《Linux多线程编程手册》读书笔记
  19. head和tail命令详解
  20. winform 弹出窗体指定位置

热门文章

  1. Java基础语法(8)-数组中的常见排序算法
  2. Visdom 介绍 | 一
  3. 二维线段树 poj-2155
  4. 线段树(区间合并)HDU - 1540
  5. 403 Invalid CORS request 跨域问题
  6. python fabric 练习记录
  7. SVN同步代码问题集锦
  8. C/C++知识总结 五 复合数据类型 壹(数组、字符串与string、结构)
  9. SSM项目依赖,spring5.1.9
  10. 201771010108-韩腊梅 实验一 软件工程准备—&lt;对软件工程的初步了解&gt;