import time

import random

from Cryptodome.PublicKey import RSA

from Cryptodome.Signature import pkcs1_15

from Cryptodome.Hash import SHA256

from base64 import b64encode

mchid = '商户ID'

serial_no = '商户API证书序列号'

private_key = "-----BEGIN PRIVATE KEY-----\n" \

"NIIEvgIBADANBgkqhkiG9w0B3QEFAA5CBKgwggSkAgEAAoIBAQC2l/hfX5g6qjo7" \

"BcqTa+LldQpd7m4ZZEKT2BxUpYPNJ/YoZO1c3qB/+CfQQlKJYPseOsTnUeuAZ2AG" \

"z2LWuh/36gmiFX2Nw1pI0AkVwec8pB1+IqLGHzRsAaDJ++2J88TcWOuM5lOcBr6I" \

"VJOyl1ghYB4Dnuk2uid46rAZwWL3L2FZ+ktfdtePt4zOQrpILRuDNzR6TOcd1JER" \

"ylt8iDyoVTr69ALnQdhoNnofnrBK3R4sY5ON1BR01DpZM8yX8mmb6yOLjp1VoP+5" \

"n8pCPVAqZJEbwfDH90naeMZLYfoCvdaJhxHLblviZN7v4VW6Fx/W43O9sRTNPukU" \

"W5pLBP57AgMBAAECggEBAI9U6iZLzx62A7HTUPq6ZMkEQB2OEyUhe9W8fjjAGJ9R" \

"8DwzRdRx+gGaVf54IXwvwdAwB+MhfkE0ZL/Tyd2PC4s7j0ZJol5G7Ddd/tOye4cx" \

"uOkL3USyuB7UhFgpx4RT88OYlYbsQtOmw6gW5D376bWBUu46rw1Dwbp8V7JQCRTJ" \

"K+vbMj1ytgP10fg/hTQNe7RWmd+KC+OGZbBH6MxybLoR+BOwQQpwGEgoEoY9Rmlm" \

"E/8poPvdY/PLIaS2ca/rsgJ/ZhiSx6BL0DAqVkKtM9U9T0LRoZmJcCp6YgLKGA0X" \

"BrnbMXczFHFVfjmK1jw4UqWbPICsrbhF4dtIuSqZbDECgYEA4M8J4T/grNaNhQTc" \

"x6q/ylFZB3I8Qoih2YeLx7/JOBEL66jNJhHVrgyF8JChlL0J8RGMg8KdxzZ0OTEw" \

"Q5ZK4mo93cxwqFh87X4KUNaicNveCsxuEL80Bbhst7NmJKi5T2VQMR9kFd+eTwx8" \

"c5aOHX5W4RIogKyNHqvCdEqHohMCgYEAz+1/NfRtqI2F68olrtdlbReaHtlCZxRJ" \

"3XhaIT5OGjXE/0upRRx6EgDh4f+wvqpFdlutPHFTSz4H/5rBGyZ7NJ5D44WO3Z7K" \

"SdY3YJ+5J6Nu+2OX6FGZWmqyW9kgYRthzClqNduBWbgu0gRC8R8wLg1W7xe9HN5e" \

"bc0HnhnBfvkCgYBSNMNbH/2rlkVn1/BX/yNk+zxAEdDhT49HuV4u6/3Lx8gBI9fo" \

"zOrDW4b7AhhkCICDK7SjVd5WQ55ab5dDj8jQZK384Q5tMPZ17fodt27tMClQ75Js" \

"A08lrFvtDOg6DbK9ysF5RQ5XRU9hfqJfrjVHqbRhVz+CVhbAmXRhDAPvC5KBgQCX" \

"kXuCvCvXi1qNF+1CN3eS/3p0dFEITOzPSXUB+KX8SyfQJbo9S9XcG9KM6NNRGVPL" \

"RGbSwZVDKvOvqoKLpRB4ucmpJ+mNubuh+Uqi36ubrnIvRFkum5TbKR3dADivMMOo" \

"jKQEoH75BN70bvDRTbfUShsN8ZAA5EQXbDbaU9IOGQKBgEr+xQMksLCif8GrwlfJ" \

"Vrf3uyXTyY1QVRAGy9UIiM0RnsWDaGcRgNaz1K9YV3gqm7qHe2y8fzB0PLLw2TzY" \

"GUwxIttKpnEVlX1M59nmGFmQq08YNC+JRHZrvmmB0MyEBSA9lg0ugASdQQC5PGYa" \

"Rnn7p8VlUEauVmFpF6BTVZLQ\n" \

"-----END PRIVATE KEY-----"

timestamp = str(int(time.time()))

nonce_str = str(random.randint(100000, 10000000))

def sign_str(method, url_path, request_body):

"""生成欲签名字符串"""

sign_list = [

method,

url_path,

timestamp,

nonce_str,

request_body

]

return '\n'.join(sign_list) + '\n'

def sign(sign_str):

"""生成签名"""

rsa_key = RSA.importKey(private_key)

signer = pkcs1_15.new(rsa_key)

digest = SHA256.new(sign_str.encode('utf8'))

sign = b64encode(signer.sign(digest)).decode('utf8')

return sign

def authorization(method, url_path, request_body):

"""生成Authorization"""

signstr = sign_str(method, url_path, request_body)

s = sign(signstr)

authorization = 'WECHATPAY2-SHA256-RSA2048 ' \

'mchid="{mchid}",' \

'nonce_str="{nonce_str}",' \

'signature="{sign}",' \

'timestamp="{timestamp}",' \

'serial_no="{serial_no}"'.\

format(mchid=mchid,

nonce_str=nonce_str,

sign=s,

timestamp=timestamp,

serial_no=serial_no

)

return authorization

if __name__ == '__main__':

print(authorization('POST', '/v3/marketing/favor/users/openid/coupons', '{"stock_id":"123","stock_creator_mchid":"1302430101","out_request_no":"20190522_001","appid":"your appid"}'))

# Authorization WECHATPAY2-SHA256-RSA2048 mchid="1312030806",nonce_str="f0wwnSIuQN8yDr0U4bYKNmUgALcMUCLM",signature="dcFTPfaAewd+UXuXv+VA+KeGW1coUG68PtklWtsMiFGal5GxiljGUVGV60gBnIo2La1R3cxf7mOb62q7xoab9mP1SZ5dP8L+amQ9vyl+ZYTaJOg31vtkDwMU0ILNqy96SuKy+5/Q2NSCQU0fBLMWU11vbSoA2ycEsCjDEknc8Hiw+vyKkV6iGyUNBMizfwZhJWdRcWDWeyxAy0rsaZKVOpeEyJ2xPQnLX8uB+gqCIO5+vE8KYjseXPGun+Zr6i5gl7i0O/BdBfY4BDRAZsrF5v7LikptEbRwJ8+1IevIT5LaUc5J5BnGM009BuzsZzK8cphhKvepVmA8Gy0gWvfDeA==",timestamp="1592375315",serial_no="14DFFAAAA79AF4BD56CC1O55E06246E95D3PAAS0"

python微信支付接口_Python微信支付APIv3签名相关推荐

  1. asp php微信支付,Asp微信支付接口代码 微信中生成订单后可以直接调出微信钱包直接付款_随便下源码网...

    Asp微信支付接口代码 微信中生成订单后,可以直接调出微信钱包直接付款 软件介绍: 众所周到,目前微信支付已经十分普及,无论是商场.超市.网站上,微信支付的发展十分迅速,而ASP版微信支付在微信公众平 ...

  2. jsp页面微信支付接口_微信支付 JSAPI 开发中的问题

    前言:这篇文章讲的是利用微信官方提供的JSPAI接口,实现微信网页支付.希望在看之前,要确认一下几件事情,否则会让您在解决问题是很费解. ① 接口文档版本号是V3.3(在官方提供的PHP DEMO中的 ...

  3. 服务端给手机APP写支付接口(微信)

    本文主要介绍怎么在服务端给手机APP写支付接口:以POST的方式. 需要引用第三方. using Senparc.Weixin.MP.TenPayLibV3; 整体来说就是写一个方法罢了. /// & ...

  4. 如何申请游戏支付接口(三方支付)

    如何申请游戏支付接口(三方支付) 随着科技的发展,各类游戏产品层出不穷,而游戏都离不开充值,充值就需要有相应的游戏支付接口,那么我们如何申请游戏支付接口呢? 一.如何申请游戏支付接口 1.第三方支付接 ...

  5. 第三方支付接口 个人第三方支付接口 第三方支付接口费率

    第三方支付接口 个人第三方支付接口 第三方支付接口费率 支付扫码是现在很多人日常都会有的一个行为,不管是去超市.饭店还是其他地方消费的话都会打开微信扫描商家提供的收款码.不过有很多商家和消费者就发现微 ...

  6. PrestaShop支付接口-网银在线支付,在线支付收款,外贸收款

    2019独角兽企业重金招聘Python工程师标准>>> 国内第一家支持prestashop中文支付接口网银在线-chinapay 需要请联系QQ:1285872439 PrestaS ...

  7. 支付宝支付接口调用实现支付功能

    支付宝支付接口调用实现支付功能 支付宝支付 (沙箱版) 1.进入支付宝开发者平台(https://open.alipay.com/platform/home.htm) 2.进入沙箱研发服用应用 3.设 ...

  8. 个人微信api接口调用-微信群管理

    个人微信api接口调用-微信群管理 /*** 微信群聊管理* @author wechatno:tangjinjinwx* @blog http://www.wlkankan.cn*/@Asyncpu ...

  9. 微信API接口、微信二次开发API调用

    微信API接口.微信二次开发API调用 微信协议接口调用-加微信好友及通过好友请求 加微信好友 /**       * 微信自动添加好友      * @author wechatno:tangjin ...

最新文章

  1. JNDI数据源配置注意事项
  2. AB1601烧程序时注意事项
  3. mysql 不排序_第08期:有关 MySQL 字符集的注意事项
  4. 用ANSYS画矩形_钢轨打磨用复合砂轮磨削温度场的研究
  5. 调查谋杀案以换取Obra Dinn
  6. 教机器写代码:增强拓扑进化网络(NEAT)
  7. PHP:header()函数
  8. 实部和虚部高斯变量瑞利衰落matlab,瑞利信道仿真
  9. python 模型 欺诈概率_手把手教你使用Python实战反欺诈模型|原理+代码
  10. DCDC Bootstrap自举电路
  11. 4.1 android 头像,微商抠图软件换头像app
  12. verilog行为级建模(1)
  13. 【Word】关闭段落/表格等首字母大写功能
  14. Ubuntu下安装XAMPP
  15. 浏览器Goole Chrome调试工具
  16. unity 太阳自发光_unity shader基础之——unity中实现环境光、自发光
  17. ubuntu18美化(完整版)
  18. 【RabbitMQ】消息队列需要解决的几个问题
  19. ELTEK电源维修SMPS5000SIL易达整流模块维修概述
  20. 怎么在线对视频进行压缩?

热门文章

  1. 什么是 WhatsApp云控 WhatsApp群发,WhatsApp协议,他们有什么区别?
  2. 经济周期的各个阶段——Business Cycle Phases
  3. 地图产品:地图APP是怎么实现实时路况的
  4. [CCLS] 《封印者》璀璨巨星时装
  5. python中1%7是多多少_再传捷报!原子同学优秀学员Python成绩位列全国前1%!
  6. Oracle中的同义词synonym
  7. 让eWebEditor编辑器支持IE6.IE7.IE8傲游的办法
  8. 【实战】RobotFramework接口自动化-全局变量解决保持登录问题
  9. Android icon适配mipmap
  10. 基于AutoJs7实现的薅羊毛App专业版源码大分享