C#中国建设银行接口使用详细说明.docx
《C#中国建设银行接口使用详细说明.docx》由会员分享,可在线阅读,更多相关《C#中国建设银行接口使用详细说明.docx(22页珍藏版)》请在三一办公上搜索。
1、中国建设银行接口使用详细说明 Posted on 2010-07-22 18:59 苏飞 阅读(2782) 评论(17) 编辑 收藏 接口介绍 建行的接口相对于支付宝,Q业务充值和移动,联通,电信,缴费接口要复杂一些,接口分为两块,一块是商户到银行,另外一块是银行到商户商户到银行 交易流程如下:网上支付业务流程步骤说明: 1)客户登录商户网站,选择商户网站商品。2)客户将选好的商品放入购物车,并下订单。商户提供商户代码、订单号、合计金额等信息;3)客户选择代理付款的银行建行,确认后,商户代码、订单信息、合计金额通过浏览器URL传到建行网上银行站点;网上银行自动显示支付页面,客户首先选择是否使用
2、建行证书,然后输入龙卡号和密码,选择“确定”。支付信息经加密后传送到网银中心;4)网银中心接收客户支付信息,转发到银行后台业务处理系统;5)银行后台业务系统处理后,返回处理结果给网银;6)网银通知客户支付(扣帐)是否成功。如果扣帐成功,提示客户注意接收商户返回的送货信息;对于不需要立即响应的商户,跳过步骤7、8;7)对于需要立即响应的商户,如果支付成功,网银将成功结果反馈给商户。若支付失败,不返回给商户信息8)对于需要立即响应的商户,收到银行扣帐成功的通知后,发给客户送货信息。如客户收到银行支付(扣帐)成功通知(步骤6),但未收到商户送货信息,则需向商户查询。日终时,商户与开设结算帐户的建设银
3、行(网银成员行)进行流水核对,对已支付但未得到商户确认的交易进行退款处理。商户到银行 其实这一步是把自己卡里的钱转到商户的帐上,就是转账,代码实现其实很简单,我们先来分析一上要传的参考吧个人客户在商户网站选择商品后,商户网站生成以下信息,传送到建行网站:域名名称类型备注MERCHANTID商户代码CHAR(9)由建行统一分配POSID商户柜台代码CHAR(9)由建行统一分配,缺省为000000000BRANCHID分行代码CHAR(9)由建行统一指定ORDERID定单号CHAR(30)由商户提供,最长30位,按实际长度给出PAYMENT付款金额NUMBER(16,2)由商户提供,按实际金额给出
4、CURCODE币种CHAR(2)缺省为01人民币REMARK1备注1CHAR(30)网银不处理,直接传到城综网REMARK2备注2CHAR(30)网银不处理,直接传到城综网TXCODE交易码CHAR(6)由建行统一分配为520100MACMAC校验域CHAR(32)采用标准MD5算法,由商户实现注:商户要保证定单号的唯一性。为了加快站点间接口开发,站点间接口的参数传送采用普通的URL方式,商户将以上信息包含在FORM中,在SUBMIT后将生成URL,如下所示:&TXCODE=520100&REMARK1=&REMARK2=&MAC=qwertyuioplkjhgfdsazxcvbnm90123
5、4参与MAC运算的字符及其顺序如下:MERCHANTID=123456789&POSID=000000000&BRANCHID=110000000&ORDERID=19991101234&PAYMENT=500.00&CURCODE=01&TXCODE=520100&REMARK1=&REMARK2=注:字符串中变量名必须是大写字母。 这是建行文档说的说明,很明显这是使用Http的方式来实现的下面我们动手来实现 一下吧,我是把所有的参数生成了一个实体类这样方便,而且规范化,来看看这个Model吧代码 usingSystem;usingSystem.Collections.Generic;usi
6、ngSystem.Linq;usingSystem.Text;namespaceClientSystem.AliPay/建行传入参数/publicclassCBBTextModelprivatestring_MERCHANTID=;/商户代码由建行统一分配/publicstringMERCHANTIDgetreturn_MERCHANTID;set_MERCHANTID=value;privatestring_POSID=;/商户柜台代码由建行统一分配,缺省为000000000/publicstringPOSIDgetreturn_POSID;set_POSID=value;privatest
7、ring_BRANCHID=;/分行代码由建行统一指定/publicstringBRANCHIDgetreturn_BRANCHID;set_BRANCHID=value;privatestring_ORDERID=;/定单号由商户提供,最长30位,按实际长度给出/publicstringORDERIDgetreturn_ORDERID;set_ORDERID=value;privatedecimal_PAYMENT=0m;/付款金额由商户提供,按实际金额给出/publicdecimalPAYMENTgetreturn_PAYMENT;set_PAYMENT=value;privatestri
8、ng_CURCODE=;/币种缺省为01人民币/publicstringCURCODEgetreturn_CURCODE;set_CURCODE=value;privatestringREMARK1=;/备注1网银不处理,直接传到城综网/publicstringREMARK11getreturnREMARK1;setREMARK1=value;privatestringREMARK2=;/备注2网银不处理,直接传到城综网/publicstringREMARK21getreturnREMARK2;setREMARK2=value;privatestring_TXCODE=;/交易码由建行统一分配
9、为520100/publicstringTXCODEgetreturn_TXCODE;set_TXCODE=value;privatestring_MAC=;/MAC校验域采用标准MD5算法,由商户实现/publicstringMACgetreturn_MAC;set_MAC=value;privatestring_url=;/URL/publicstringUrlgetreturn_url;set_url=value;我们来准备两个方法吧,一个是Http连接来使用的一个是Md5加密,因为在文档里写到要使用Md5加密哦代码 #region/预定义方法或是变量/请求指定URL资源,并获取响应结果
10、/需要请求的URL资源/响应结果;/出现任意异常,均返回字串RuntimeError/privatestringRequestContent(stringurl)stringcontent=string.Empty;tryHttpWebRequestrequest=(HttpWebRequest)WebRequest.Create(url);request.KeepAlive=false;HttpWebResponseresponse=(HttpWebResponse)request.GetResponse();StreamReaderreader=newStreamReader(respon
11、se.GetResponseStream(),Encoding.Default);content=reader.ReadToEnd();reader.Close();catch(Exception)content=RuntimeError;returncontent;/传入明文,返回用MD%加密后的字符串/要加密的字符串/用MD5加密后的字符串publicstaticstringToMD5(stringstr)returnSystem.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str,md5);#en
12、dregion 看一下充值按钮下面实现吧代码 if(textBox1.Text.Trim()=|textBox1.Text.Trim()=null)MessageBoxFormobjm=newMessageBoxForm(您输入的金额不能为空!,提示信息);objm.ShowDialog();return;stringorid=OfficeInfo.ofId.ToString().Trim()+_+DateTime.Now.Ticks.ToString();Alipayobjalipay=newAlipay();objalipay.APID=orid;objalipay.addTime=Dat
13、eTime.Now;objalipay.total_fee=Convert.ToDecimal(textBox1.Text.ToString().Trim();objalipay.trade_status=客户端提交;objalipay.Text1=DateTime.Now.ToString();objalipay.Text2=建行接口;objalipay.Text3=;objalipay.Text4=;objalipay.Text5=;decimalmoney=Convert.ToDecimal(user.GetListBy(OfficeInfo.ofPara1,13).ToString()
14、.Trim();if(moneyConvert.ToDecimal(textBox1.Text.Trim()MessageBoxFormobjm=newMessageBoxForm(你输入的最小金额不能低于+money+元!,提示信息);objm.ShowDialog();return;if(user.AddAlipay(OfficeInfo.ofPara1,objalipay)CBBTextModelobjcbbText=newCBBTextModel();/商户代码由建行统一分配objcbbText.MERCHANTID=00000000000000;/商户柜台代码由建行统一分配,缺省为0
15、00000000objcbbText.POSID=00000000000000;/分行代码由建行统一指定objcbbText.BRANCHID=00000000000000;/定单号由商户提供,最长30位,按实际长度给出objcbbText.ORDERID=orid.Trim();/付款金额由商户提供,按实际金额给出objcbbText.PAYMENT=Convert.ToDecimal(textBox1.Text.Trim();/币种缺省为01人民币objcbbText.CURCODE=01;/备注1网银不处理,直接传到城综网objcbbText.REMARK11=;/备注2网银不处理,直接
16、传到城综网objcbbText.REMARK21=;/交易码由建行统一分配为520100objcbbText.TXCODE=520100;/MAC校验域采用标准MD5算法,由商户实现objcbbText.MAC=qwertyuioplkjhgfdsazxcvbnm901234;/URLobjcbbText.Url=/要加密的串stringcanshu=MERCHANTID=+objcbbText.MERCHANTID.Trim()+&POSID=+objcbbText.POSID.Trim()+&BRANCHID=+objcbbText.BRANCHID.Trim()+&ORDERID=+ob
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 中国建设银行 接口 使用 详细 说明

链接地址:https://www.31ppt.com/p-5209816.html