说明

此DEMO依赖第三方库,如果报依赖错误,请先执行

pip install pycrypto

DEMO

import base64

import json

import urllib.parse

import urllib.request

from Crypto.Hash import SHA

from Crypto.PublicKey import RSA

from Crypto.Signature import PKCS1_v1_5

root_url = 'https://hzgd-openapi-test.51fubei.com/gateway' # 服务器地址

# 初始化参数

data = {

'app\_id': '20170523111533399',

'method': 'fshows.liquidation.alipay.trade.query',

'version': '1.0',

'content': {

    'trade\_no': '20178888888888'

}

}

# 将content中的内容转为JSON格式字符串

data['content'] = json.dumps(data['content'])

# 准备签名,先生成准备签名字符串

keys = sorted(data.keys())

string = ''

for key in keys:

string += key

string += '='

string += data\[key\]

string += '&'

string = string[0:-1]

# RSA加签

with open('rsa_private_key.pem') as f:

key = f.read\(\)

rsakey = RSA.importKey\(key\)

signer = PKCS1\_v1\_5.new\(rsakey\)

digest = SHA.new\(\)

digest.update\(string.encode\('utf-8'\)\)

sign = signer.sign\(digest\)

sign = base64.b64encode\(sign\)

sign = sign.decode\(\)

# 将签名加到data中

data['sign'] = sign

# urlencode数据

post_data = urllib.parse.urlencode(data).encode('utf-8')

# 请求服务器

request = urllib.request.Request(root_url, post_data, method='POST')

response = urllib.request.urlopen(request).read().decode('utf-8')

# 获取返回值

print(response)

results matching ""

    No results matching ""