直接上代码

if options.umpay_private_key is not None and len(options.umpay_private_key) > 0:
    try:
        with open(options.umpay_private_key) as keyfile:
            keydata = keyfile.read()
        rsakey = RSA.importKey(keydata)
        _umpay_signer = PKCS1_v1_5.new(rsakey)
        #测试代码
        #digest = SHA.new()
        #sign_data ="amount=1&amt_type=RMB&charset=UTF-8&expire_time=30&goods_inf=充值支付房租&mer_date=20131009&mer_id=6379&notify_url=http://wap.zufangbao.cn/netpay/ldpaycallback.htm&order_id=111784&ret_url=http://wap.zufangbao.cn/netpay/ldpayreceive.htm&service=pay_req&version=4.0"
        #digest.update(sign_data.encode("gbk"))
        #sign = _umpay_signer.sign(digest)
        #ret = base64.b64encode(sign)
        #print ret
    except:
        log.fatal("load umpay private key failed. %s" % str(sys.exc_info()))

_umpay_verifier = None #联动优势验证器
if options.umpay_public_key is not None and len(options.umpay_public_key) > 0:
    try:
        with open(options.umpay_public_key) as keyfile:
            keydata = keyfile.read()
        from Crypto.Util.asn1 import DerSequence
        cert = DerSequence()
        cert.decode(keydata)
        tbsCertificate = DerSequence()
        tbsCertificate.decode(cert[0])
        subjectPublicKeyInfo = tbsCertificate[6]
        # Initialize RSA key
        rsakey = RSA.importKey(subjectPublicKeyInfo)
        _umpay_verifier = PKCS1_v1_5.new(rsakey)
        #测试代码
        #digest = SHA.new()
        #sign = "nyTGvSfe8AaBj2WHs4vYhr32bBvMS1UdXuSjWwmvqy4GYgpfNuKlkiadsOhxSGv6SzLfPNp+uYHQnWIvcRe8cofzPiaYHgXQn8r/hxljeCq3/L9VHAASMJOjRvHoVDNh1QbuJbWoB1wx+e+2NC4ub1RbEaJbutvHfokUIZxaEzg="
        #sign_decode = base64.b64decode(sign)
        #verify_data = "mer_date=20131009&mer_id=6379&order_id=111790&ret_code=0000&ret_msg=交易成功&token=125880604943823&trade_no=1310091656145373&trade_state=WAIT_BUYER_PAY&version=4.0"
        #digest.update(verify_data.encode("gbk"))
        #ret = _umpay_verifier.verify(digest, sign_decode)
        #print ret
    except:
        print str(sys.exc_info())
        log.fatal("load umpay public key failed. %s" % str(sys.exc_info()))

python 使用联动优势支付接口的sign与verify的更多相关文章

  1. python调用支付宝支付接口

    python调用支付宝支付接口详细示例—附带Django demo代码   项目演示: 一.输入金额 二.跳转到支付宝付款 三.支付成功 四.跳转回自己网站 在使用支付宝接口的前期准备: 1.支付宝公 ...

  2. python调用支付宝支付接口详细示例—附带Django demo代码

    项目演示: 一.输入金额 二.跳转到支付宝付款 三.支付成功 四.跳转回自己网站 在使用支付宝接口的前期准备: 1.支付宝公钥 2.应用公钥 3.应用私钥 4.APPID 5.Django 1.11. ...

  3. Python支付接口汇总大全(包含微信、支付宝等)

    微信接口 wzhifuSDK- 由微信支付SDK 官方PHP Demo移植而来,v3.37下载地址 weixin_pay- 是一个简单的微信支付的接口 weixin_pay- 微信支付接口(V3.3. ...

  4. 第四百零三节,python网站在线支付,支付宝接口集成与远程调试,

    第四百零三节,python网站在线支付,支付宝接口集成与远程调试, windows系统安装Python虚拟环境 首先保证你的系统已经安装好了Python 安装virtualenv C:\WINDOWS ...

  5. 玩蛇记之用python实现易宝快速支付接口

    玩蛇记之用python实现易宝快速支付接口 现在很多这种快速支付的通道,易宝支持的通道算是很全面的,正好最近需要集成易宝的支付通道到平台中,所以写一贴来记录一下,顺便鄙视一下国内的支付平台,api的支 ...

  6. Python支付宝在线支付API

    一.蚂蚁金服开发平台申请测试账号 a. 登陆蚂蚁金服开放平台https://open.alipay.com/platform/manageHome.htm,在“开发中心”—“研发服务”下拉处选择沙箱作 ...

  7. python开发微信支付学习记录(转)

    前言 微信支付是由微信及财付通联合推出的移动支付创新产品.如今,随着微信支付的全面开放,相关需求也越来越多,很多开发人员进行微信支付开发及商家申请微信支付时,面临着诸多疑惑. 要想开发顺利进行,首先要 ...

  8. python语言(六)mock接口开发、发邮件、写日志、新Excel操作

    一.urllib模块 urllib模块是一个标准模块,直接import urllib即可,在python3里面只有urllib模块,在python2里面有urllib模块和urllib2模块. url ...

  9. Python实现微信支付(三种方式)

    Python实现微信支付(三种方式) 关注公众号"轻松学编程"了解更多. 如果需要python SDk源码,可以加我微信[1257309054] 在文末有二维码. 一.准备环境 1 ...

随机推荐

  1. Android——Gallery 图片拖动效果

    1.XML文件 <?xml version="1.0" encoding="utf-8"?><Gallery xmlns:android=&q ...

  2. apk重新签名

    re-sign.jar中后自动去除签名这个方法,经试验不可用! 1.去除准备重新签名SinaVoice.apk软件本身的签名 将apk文件后缀改为.zip,然后从winrar中删除META-INF文件 ...

  3. Unity3d - RPG项目学习笔记(一)

    通过NGUI和工程素材,学习泰课项目——黑暗之光. 现阶段心得整理: 一.开始界面 开始界面显示顺序为:①白幕渐隐:②镜头拉近:③标题渐显:④按键响应. 1.1 白幕渐隐 NGUI是一个非常强大的插件 ...

  4. php 5.6.14手动安装 php -v 显示没有安装

    奇怪了,今天利用源码手动php,安装成功后,利用php -v提示没有安装,which php也是有问题,php文件也没有办法执行 搞了半天,发现是没有添加环境变量,╮(╯▽╰)╭ 方法: 修改/etc ...

  5. Entity Framework Lambda 实现多列Group by,并汇总求和

    var result = DataSummaryRepository.FindBy(x => x.UserID == argMemberNo && x.SummaryDate & ...

  6. Linux下软件安装,卸载,管理

    一. 软件安装包的类型 通常Linux应用软件的安装有五种: 1) tar+ gz包,如software-1.2.3-1.tar.gz.     他是使用UNIX系统的打包工具tar打包的. 2) r ...

  7. Excel 代码

    package com.chinabase.common.util; import java.io.FileInputStream; import java.io.FileOutputStream; ...

  8. Linux下的”锁“事儿

    原由 之所以写这篇文章当然还是在面试中涉及了对本文标题的相关问题-互斥锁和自旋锁的区别.听到这个问题的时候,我是比较忐忑的.互斥锁我还能简单说一些,但是对于自旋锁的了解几乎为零.为此,将总结Linux ...

  9. ASP.NET的SEO:基础知识

    本系列目录 首先谈一点我自己的体会,我还是希望能和大家分享: 当你读到一定数量的SEO资料后,你会发现,对同一个问题,众说纷纭,莫衷一是.这其实主要是因为以下一些原因造成的:1. 很多SEO技巧,是& ...

  10. thinkphp验证码点击更换js实现

    <img src="__CONTROLLER__/verify" alt="" onclick=this.src="__CONTROLLER__ ...