python 微信支付代码
时间: 2023-10-13 21:19:34 浏览: 87
以下是一个简单的 Python 示例代码,用于微信支付:
```python
import requests
import time
import hashlib
# 微信支付的相关信息
appid = 'your_appid'
mch_id = 'your_mch_id'
key = 'your_key'
# 生成随机字符串
def get_nonce_str():
return str(int(time.time()))
# 生成签名
def get_sign(params):
stringA = '&'.join(["{0}={1}".format(k, params[k]) for k in sorted(params)])
stringSignTemp = "{0}&key={1}".format(stringA, key)
sign = hashlib.md5(stringSignTemp.encode('utf-8')).hexdigest().upper()
return sign
# 统一下单接口
def unified_order(out_trade_no, total_fee, body):
url = 'https://api.mch.weixin.qq.com/pay/unifiedorder'
nonce_str = get_nonce_str()
params = {
'appid': appid,
'mch_id': mch_id,
'nonce_str': nonce_str,
'body': body,
'out_trade_no': out_trade_no,
'total_fee': total_fee,
'spbill_create_ip': '127.0.0.1',
'notify_url': 'http://www.example.com/notify',
'trade_type': 'JSAPI',
'openid': 'your_openid'
}
sign = get_sign(params)
params['sign'] = sign
xml = '<xml>'
for k in params.keys():
xml += '<{0}>{1}</{0}>'.format(k, params[k])
xml += '</xml>'
response = requests.post(url, data=xml.encode('utf-8'))
data = response.text
return data
# 调用统一下单接口
result = unified_order('201907010001', 100, 'test')
print(result)
```
上面的代码实现了使用 Python 发起微信支付统一下单接口的请求,并返回响应结果。其中,需要替换 `your_appid`、`your_mch_id`、`your_key` 和 `your_openid` 为自己的实际值。此外,还需要根据实际情况进行修改请求参数。
阅读全文