python 工行 api 查询

最近学习python 又在做接口 于是找了N多资料 终于实现了 下面是代码

#  -*- coding:gbk -*- 
import  httplib 
import  cookielib
import  urllib2
import  urllib

#  用chilkat拆分pfx得到key,cert的pem格式
key_file  =   ' chilkat_pkey.pem '
cert_file 
=   ' chilkat_cert.pem '

class  HTTPSClientAuthConnection(httplib.HTTPSConnection):
    
def   __init__ (self, host, timeout = None):
        httplib.HTTPSConnection.
__init__ (self, host, key_file = key_file,cert_file = cert_file)
        self.timeout 
=  timeout  #  Only valid in Python 2.6

class  HTTPSClientAuthHandler(urllib2.HTTPSHandler):
    
def  https_open(self, req):
        
return  self.do_open(HTTPSClientAuthConnection, req)

class  ICBCAPI(object):
    
def   __init__ (self):
        self._cookiejar 
=  cookielib.CookieJar()

    
def  get(self, url,  ** data):
        parameters 
=  urllib.urlencode(data)
        opener 
=  urllib2.build_opener(urllib2.HTTPHandler(), HTTPSClientAuthHandler(), urllib2.HTTPCookieProcessor(self._cookiejar))
        req 
=  urllib2.Request(url, parameters)
        server_response 
=  opener.open(req).read()
        
return  urllib2.unquote(server_response)

def  test():
    api 
=  ICBCAPI()
    apiUrl 
=   " https://corporbank3.dccnet.com.cn/servlet/ICBCINBSEBusinessServlet "
    merReqData  =   '''
    <?xml version="1.0" encoding="GBK\" standalone="no" ?>
    <ICBCAPI>
        <in>
            <orderNum>填你们自己的</orderNum>
            <tranDate>填你们自己的</tranDate>
            <ShopCode>填你们自己的</ShopCode>
            <ShopAccount>填你们自己的</ShopAccount>
        </in>
    </ICBCAPI>
'''
    
print  api.get(apiUrl,APIName = ' EAPI ' ,APIVersion = ' 001.001.002.001 ' ,MerReqData = merReqData)
    
if   __name__   ==   ' __main__ ' :

    test() 

希望对你们有帮助

转载于:https://www.cnblogs.com/Death/archive/2011/03/24/1994069.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
B2C流程说明: 1、客户在商户网站浏览商品信息,签订订单; 2、商户按照工行B2C订单数据规范形成提交数据,并使用工行提供API和商户证书对订单数据签名,形成form表单返回客户浏览器,表单action地址指向工行接收商户B2C订单信息的servlet; 3、客户确认使用工行支付后,提交此表单到工行; 4、工行网银系统接收此笔B2C订单,对订单信息和商户信息进行检查,通过检查则显示工行B2C支付页面; 5、客户在此页面可以查询客户在银行的预留信息;也可以输入支付卡号、支付密码、验证码进行B2C支付; 6、工行检查客户信息,通过检查后显示确认页面;客户确认提交后工行进行支付指令处理; 7、工行进行支付指令处理后,如果商户需要工行实时通知,则工行将处理结果使用http协议post方式将通知消息数据提交到商户网站(这个接收银行通知消息的商户端地址是随商户订单数据提交银行的merURL字段),商户返回取货地址或关闭这个银行与其建立的连接后,银行才显示交易结果页面给客户。(注意1、发送通知和显示结果页面是串行的,所以商户端接收银行通知处理时间太长可能导致客户等待超时,造成银行不能将交易结果页面显示给客户。2、此连接是银行服务器自动和商户进行的连接,商户返回也是直接返回给银行,商户端不能对银行的这个请求进行重定向。) 8、工行进行支付指令处理后,如果商户不需要工行实时通知,则工行直接显示交易结果给客户。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值