2704519590手机wap支付设计文档v160116(wap网页接口).doc
-
资源ID:2398570
资源大小:1.23MB
全文页数:13页
- 资源格式: DOC
下载积分:8金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
2704519590手机wap支付设计文档v160116(wap网页接口).doc
手机银行手机WAP支付设计方案手机银行项目组2012年7月修改记录编号日期描述 版本作者审核发布日期2012/5/4补充了商户信息返回开关,增加测试商户号1.4梁绍东2012/7/5修改测试地址1.5阳云2013/1/162.2修改了新增了支付流程具体描述3.1修改了例子数据的准确行3.2修改了验证程序中的通知商户验证程序.zip内容新增章节5,技术支持联系人1.6阳云本文档中所包含的信息属于机密信息,如无中国建设银行的书面许可,任何人都无权复制或利用。®Copy Right 2006 by China Construction Bank 目 录1引言- 2 -2手机WAP支付设计方案- 3 -2.1整体技术架构- 3 -2.2手机支付流程- 4 -2.3手机银行返回信息- 5 -2.4商户结算和对账- 5 -2.5商户向客户退款- 6 -3支付接口部分- 6 -3.1商户支付接口- 6 -3.2手机银行通知商户接口- 8 -4附录1:数字签名算法说明- 9 -1 引言为促进我行电子银行业务快速发展,拓展手机银行服务的行业应用,电子银行部提出了针对移动用户手机上网购买商品的支付需求。同时,以ECTIP牵头的B2C商户的统一管理和网上支付一点接入方案的实施,以及移动运营商能提供客户手机号码,为手机银行实现手机支付网关提供了技术基础。为此,手机银行项目组提出了实现手机银行支付网关的技术方案。2 手机WAP支付设计方案2.1 整体技术架构设计原则:n 基本商户信息以ECTIP为准,ECTIP的后台管理向各渠道提供对商户信息查/增/删/改的维护功能和相应的交易接口。n 网银系统已经向B2C商户提供较完善的WEB商户后台管理功能,因此手机银行商户仍复用网银系统提供的WEB商户后台管理功能,不作重复开发。2.2 手机支付流程手机支付业务流程步骤说明:1) 客户登录商户WAP网站,选择商户网站商品,并下订单。商户提供商户代码、订单号、合计金额等信息。2) 客户选择代理付款的银行建行,确认后,商户代码、订单信息、合计金额通过手机WAP浏览器URL传到建行手机银行站点。3) 客户选择支付方式(手机账号支付/手机银行支付)3.1如果客户选择手机账号支付,需要填写支付账号,支付账号在银行预留的手机号码后4位,点击下一步,如果输入手机号码后四位与输入的账号在银行预留的手机号后四位不匹配,则提示错误。3.2客户会收到一条短信,(测试环境可能没有短信,需要自己手动刷短信验证码,地址为3.3如果客户选择手机银行支付,则来到客户选择手机号码所属运营商链接页面,客户选择运营商,手机银行系统通过运营商取得该客户手机号码,并检查是否为手机银行客户,若正常则让客户输入手机银行登录密码进行登陆。手机银行从ECTIP查询该商户信息和客户信息,并自动显示在支付信息页面,然后选择名下用来支付的账号(非签约客户还需要输入账号密码),选择“确定”。非手机银行客户则会进入到帐号支付功能里面,此功能需要客户输入帐号去支付,输入的帐号在开卡时预留的手机号必须为选择运营商取到的手机号,即用户手机卡的手机号,如果不匹配则会报错。4) 手机银行接收客户支付信息,转发到ECTIP进行支付业务处理。5) ECTIP系统处理后,返回处理结果给手机银行。6) 手机银行通知客户支付(扣账)是否成功。如果扣账成功,提示客户注意接收商户返回的送货信息;对于不需要立即响应的商户,跳过步骤6、7。7) 对于需要立即响应的商户,如果支付成功,手机银行将成功结果反馈给商户若支付失败,返回给商户支付失败的信息。8) 对于需要立即响应的商户,收到银行扣账成功的通知后,发给客户送货信息。如客户收到银行支付(扣账)成功通知,但未收到商户送货信息,则需向商户查询。9) 日终时,商户通过网银系统提供的商户WEB后台管理功能与建行进行流水核对,对已支付但未得到商户确认的交易进行退款处理。2.3 手机银行返回信息手机银行系统返回给商户成功或失败信息,按商户类型,分两种情况进行处理:1) 对于不需要实时反馈支付结果的商户,直接将支付结果通过手机浏览器显示给客户(业务流程步骤6)。2) 对于需要实时反馈支付结果的商户,将支付结果返回客户(业务流程步骤6),同时,如果支付成功,将结果和数字签名信息(注:签名算法和签名内容由建行指定)反馈给商户(业务流程步骤7),签名校验成功后,进行后续处理;如果支付失败,同样将结果和数字签名信息(注:签名算法和签名内容由建行指定)反馈给商户(业务流程步骤7)。2.4 商户结算和对账1) 每个商户在建行开设专用结算账户。客户在建行手机银行支付功能下付款,货款记入商户的专用结算账户(含订单号信息)。2) 商户通过浏览器登录建行网上银行,可实时查询手机银行支付流水;对于需要实时反馈支付结果的商户,由于在交易过程中已获取了支付结果,因此也可在商户本地数据库中查到支付信息。3) 商户也可通过浏览器下载对账文件(支付流水清单),该文件上的每笔货款已成功支付。2.5 商户向客户退款退还货款是指银行支付(扣款)成功后,因客户向商户提出退货或商户无法配送商品,商户通过银行向客户退还货款。银行退款处理流程根据商户提出退款请求的时间而定。具体流程如下:1) 商户登录建行网上银行,选择网上退款功能。2) 商户输入订单号(每个订单只能退款一次)。3) 银行查询原始交易记录返回交易日期和付款金额。4) 商户输入退款金额(全部或部份)、交易密码、备注。5) 银行后台系统检验是否能退款,返回成功或失败信息。3 支付接口部分3.1 商户支付接口客户选择商品确定支付后,生成以下信息,转到手机支付平台:请求方:商户服务方:手机支付平台交易码: WAP网站使用MP6000输入:各字段类型为string提交的参数名称参数说明最大长度(char)是否必输备注TXCODE交易码6Y由建行统一分配为MP6000MERCHANTID商户代码20Y由建行统一指定ORDERID订单号30Y商户需要保证订单号的唯一性PAYMENT付款金额16Y单位:元如:11.88MAGICMd5摘要串32YBRANCHID分行代码9N由建行统一指定,非必输POSID商户柜台代码9N由建行统一分配,缺省为000000000CURCODE币种2N缺省为01人民币(只支持人民币支付)REMARK1备注132N汉字为UTF-8编码REMARK2备注232N汉字为UTF-8编码WAPVERWAP版本6N默认为wap1.2注:商户要保证订单号的唯一性,非必输参数值可不填。为了加快站点间接口开发,站点间接口的参数传送采用普通的URL方式,URL如下所示: MAGIC =d74f8d5119ebfea3cef0cb9bd74fe137MAGIC值: 通过以下的参数的参数值以字符串形式拼接后计算出来:TXCODE+MERCHANTID+ ORDERID+ PAYMENTMD5ONCE mac = new MD5ONCE(TXCODE+MERCHANTID+ ORDERID+ PAYMENT);mac.calc();MAGIC=mac.toString();MAGIC字段的生成请参照附件中MpayTest.java的main方法生成生产地址:生产服务器商户返回地址已支持域名方式,商户可配置返回地址为域名或IP形式. 演示支付流程测试地址测试地址:测试商户代码: 105110040111005手机银行测试登录密码:111111PUBKEY: 30819c300d06092a864886f70d010101050003818a003081860281806b77e0f0ac58ba32a8947ce5494bf0cabd00ed299080153d5b4badff2048798261b50e36b32fcdae12a912c0dd08c5859f434b6280836eddc7cd1c0dbe94242a5553fd734742c24743cbefe3ac5e697c3f4584b69222c4c1d7da9f0d3995c90ee05f316f515e586bf93fc8bced7300168b39a0212c15167aa821581dc9ddbc3f020111注:PUBKEY:内的为测试公钥,通知商户验证程序中使用;生产环境中商户对应的公钥可在网银商户管理平台中下载。3.2 手机银行通知商户接口客户在手机上进行支付操作结束后,手机支付平台服务器向商户服务器发送支付结果:请求方:手机支付平台服务方:商户输入:各字段类型为String参数名称参数说明最大长度是否必输备注MERCHANTID商户代码20Y商户在手机支付平台的代码POSID商户柜台代码20YBRANCHID商户在银行的分行代码30YORDERID订单号30YPAYMENT交易金额16Y单位:元可以带小数点REMARK1备注132YREMARK2备注232YBJOURNAL银行流水号30 Y DN手机号码11NSUCCESS支付成功标志1YY :成功,N: 失败,U : 交易不确定SIGNBANK银行系统出具的电子签名256YUSERNAME客户姓名50N此字段默认不返回;如需返回,需要联系分行在商户管理平台配置客户信息返回开关。USERACCNO支付账号30N此字段默认不返回;如需返回,需要联系分行在商户管理平台配置客户信息返回开关。站点间接口的参数传送仍然采用普通的URL方式,信息包含在CGI参数,具体如下所示:http:/xxx.xxx.xxx/CGI? MERCHANTID=105110040111005&POSID=000000000&BRANCHID=110000000&ORDERID=23423423&PAYMENT=12.22&REMARK1=&REMARK2=&BJOURNAL=000000372737&DN=13480220560&SUCCESS=Y&SIGNBANK=0d776764b7c7dd16ee8dcfb6343d79736b71a20d27211dc1a42deaf567b66df842f790555351d0c319c6973c192bd6a1b8b14e2df6c6c1ecbc02074117974e95be376fb61f4f931ee8b8e72ec923d23c704c08666fa769954698c9d5d96ec40672257f881a34166ffa076d18d03b36572ca9721b65db542e32efc2fc93b1d66b注:?前的URL为商户在建行商户管理平台中设置的服务器通知商户的URL地址参数,商户管理平台中前端通知商户地址和服务器通知商户的URL地址和通知商户验证程序必须要配置(可和设置的服务器URL参数一样)。手机支付平台签名由以下字段顺序连接起来成一字符串,然后通过约定的算法对该串进行计算得出:MERCHANTID + ORDERID + PAYMENT + BJOURNAL + SUCCESS注:字符串中变量名必须是大写字母。(案例参照下面“通知商户验证程序.rar”中SignServ.java)4 附录1:数字签名算法说明银行将客户支付信息实时通知给商户时,使用的数字签名算法是MD5withRSA算法。商户验证签名的公钥是商户在网银系统开户、获取数字证书后,登录到网银系统中,通过下载公钥交易获取。商户获取的公钥用X.509格式表示,并且将其按照每4位(bit)转换为一个16进制数的方式表示,产生16进制的字符串。网上银行使用标准MD5withRSA算法对给商户的响应进行签名,产生1024位(bit)的签名结果,并且将其按照每4位(bit)转换为一个16进制数的方式表示,形成16进制的字符串,长度为256。下面是对签名结果的表示方式的描述:对1024位的交易结果按4位为一个单位进行划分,共获得256段将每段看成一个16进制数,如0011为0X3,1101为0Xd。将这个数映射到ASCII码表,形成相应的字符,如0X2为“2”,0Xd为“d”。将这些字符连成一个字符串,长度为256。例如:参与签名运算的字符及其顺序如下MERCHANTID + ORDERID + PAYMENT + BJOURNAL + SUCCESSMERCHANTID=105110040111005&ORDERID=23423423&PAYMENT=12.22&BJOURNAL=000000372737&SUCCESS=Y注:字符串中变量名必须是大写字母。签名结果为:0d776764b7c7dd16ee8dcfb6343d79736b71a20d27211dc1a42deaf567b66df842f790555351d0c319c6973c192bd6a1b8b14e2df6c6c1ecbc02074117974e95be376fb61f4f931ee8b8e72ec923d23c704c08666fa769954698c9d5d96ec40672257f881a34166ffa076d18d03b36572ca9721b65db542e32efc2fc93b1d66b当商户获得支付结果后,从中获取签名(格式如上)和需签名的原文。商户端程序(商户自行开发MD5withRSA签名校验程序)将签名和商户端的公钥转换成二进制格式,与签名的原文一起对签名的正确性进行校验,校验步骤如下:1)使用公钥进行签名的逆运算2)使用标准MD5算法运算原文3)比较1)、2)结果。具体可参照“通知商户验证程序.rar”中SignServ.java5技术支持联系人建行联系人:劳醒苟联系电话:020-83017405联系人邮箱:laoxinggou.zh公司联系人:阳云联系电话:020-83017373联系人邮箱:yang.yun