工商银行返回取货地址或商户确认页面的URL给银行问题

sxclej 2010-01-19 11:42:59
这在做工商银行网上支付接口(Java) 现在做到最后一步了 在工商支付页面付款成功后会调用之前提交的merUrl处理自己系统中的操作,这时如果需要跳转到本系统指定的页面,需要返回取货地址或商户确认页面的URL给银行,但不晓得到底怎么去写这个返回给银行的代码 (注:直接sendRedirect(跳转)是不行的 文档中有说,必须要把需要的URL返回给银行 ) ,下面是文档中返回URL给银行的说明

'
商户返回取货地址报文:
如果交易成功后商户需要提供取货地址或希望客户跳转到自己的确认页面,则在接到银行通知消息后需要返回取货地址或商户确认页面的URL给银行,银行将在银行的交易结果页面显示此地址的链接。

提示:
商户返回实质上只是一个内容为URL的字符串,不能有任何多余的东西,包括不能有任何的html的标签;类似以下http回应
HTTP/1.1 200 OK
Server: Apache/1.39
Content-Length: 22
Content-type: text/html

http://www.icbc.com.cn
4、此URL可以通过“?”来挂参数;举例:http://merWeb.com.cn/getGoods.jsp?user=aa&level=3;
银行在显示给客户的交易结果页面上提供此URL的链接,客户点击此链接后,挂的参数将以GET方式提交商户。'

希望做过的朋友指点一下,也问过工商的人员(非工程师),他的回复是 '接收到银行通知消息,然后用http request返回一个获取所购商品取货信息的URL即可。具体url形式参考文档说明' 还是说要用HttpURLConnection请求我需要指定的URL ,哪位做过的大哥指示一下 应该如何写 谢谢谢谢谢谢
...全文
665 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
miaoyuanyan 2010-09-08
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 ck0451 的回复:]
我也碰到这问题了,以下是我写的,可以顺利提交URL,用的是C#
//回URL给银行
string ResStr = "URL确认地址";
Response.Buffer = true;
Response.AddHeader("HTTP/1.1 200", "OK");
Response.AddHeader("Server", "Apache/1.39");
Response.AddHe……
[/Quote]

大哥,按照你这样写的,我这里怎么没有一点反应啊
miaoyuanyan 2010-09-03
  • 打赏
  • 举报
回复
有人解决吗?大侠们
mbyin1985 2010-05-17
  • 打赏
  • 举报
回复
ck0451 在吗我照你的写 怎么还是不行啊 页面上没显示那个网址啊
ck0451 2010-05-14
  • 打赏
  • 举报
回复
我也碰到这问题了,以下是我写的,可以顺利提交URL,用的是C#
//回URL给银行
string ResStr = "URL确认地址";
Response.Buffer = true;
Response.AddHeader("HTTP/1.1 200", "OK");
Response.AddHeader("Server", "Apache/1.39");
Response.AddHeader("Content-Length",ResStr.Length.ToString());
Response.AddHeader("Content-type", "text/html");
Response.Write(ResStr);
Response.Flush();
www308 2010-02-11
  • 打赏
  • 举报
回复
楼主是怎么解决的啊
麻烦帮贴出来看下
我也碰到了同样的问题,不知道怎样返回消息给银行那端,我用的是asp,看楼主好像用的是jsp是吧,不过这个应该没有关系,主要是不知道怎么去返回,每次和他们的工程师联系都说让包含这个Http回应给他们就可以了,但试了好多方法就是不行,谢谢楼主能分享下
sxclej 2010-01-26
  • 打赏
  • 举报
回复
谢谢 各位的 帮忙 问题已经解决 就像lewis219说的那样 设置报头 然后 直接通过response.flushBuffer()返回就可以了 谢谢
sxclej 2010-01-22
  • 打赏
  • 举报
回复
谢谢 楼上的lewis219 刚刚试了下 flushBuffer() ,不过也没有什么效果,我在查查看是不是 头文件不合法或是怎么样 我想问下你做过工商的接口吗 确认是这样的对吗 哎 招商 建行的我都已经做好了 就是这个工商真是搞来 刚开始测试系统有问题 怎么也联不上去 还以为是我代码有问题 后来改成正式环境后 又出现这个问题 工行人员也很牛 问来问去就那几句 把文档上的东西copy然后发给我 说就这样写 晕了 实在不行的话 我看要跟老大说下 直接跟工商的工程师沟通最好的了 哪位大哥还有什么建议吗 谢谢 先下班回家了
lewis219 2010-01-22
  • 打赏
  • 举报
回复
不用sendRedirect,哪发来的就会回哪,设置完后response.flushBuffer()就行了
sxclej 2010-01-22
  • 打赏
  • 举报
回复
用response的 sendRedirect 吗 这个不行的 文档说明不可以 重定向的 我也试过这个方法 好像没有什么效果的 或者说我用的方法不对 还是说response 设置 报头后 直接flush 然后再colse吗
lewis219 2010-01-22
  • 打赏
  • 举报
回复
用response返回,可以设置ContentType,ContentLength等,具体看API吧
sxclej 2010-01-22
  • 打赏
  • 举报
回复
上楼 potahai 你好 当天回复一个后 就去忙其它的东西了 没有及时在回复你 希望你在看到时帮帮忙
对的 详细的流程如下 下面是工商银行的支付流程
一、B2C流程说明:
1、客户在商户网站浏览商品信息,签订订单;
2、商户按照工行B2C订单数据规范形成提交数据,并使用工行提供API和商户证书对订单数据签名,形成form表单返回客户浏览器,表单action地址指向工行接收商户B2C订单信息的servlet;
3、客户确认使用工行支付后,提交此表单到工行;
4、工行网银系统接收此笔B2C订单,对订单信息和商户信息进行检查,通过检查则显示工行B2C支付页面;
5、客户在此页面可以查询客户在银行的预留信息;也可以输入支付卡号、支付密码、验证码进行B2C支付;
6、工行检查客户信息,通过检查后显示确认页面;客户确认提交后工行进行支付指令处理;
7、工行进行支付指令处理后,如果商户需要工行实时通知,则工行将处理结果使用http协议post方式将通知消息数据提交到商户网站(这个接收银行通知消息的商户端地址是随商户订单数据提交银行的merURL字段),商户返回取货地址或关闭这个银行与其建立的连接后,银行才显示交易结果页面给客户。(注意1、发送通知和显示结果页面是串行的,所以商户端接收银行通知处理时间太长可能导致客户等待超时,造成银行不能将交易结果页面显示给客户。2、此连接是银行服务器自动和商户进行的连接,商户返回也是直接返回给银行,商户端不能对银行的这个请求进行重定向。)
8、工行进行支付指令处理后,如果商户不需要工行实时通知,则工行直接显示交易结果给客户。


下面的是关于向银行返回URL的说明(唯一的说明)
商户返回取货地址报文:
如果交易成功后商户需要提供取货地址或希望客户跳转到自己的确认页面,则在接到银行通知消息后需要返回取货地址或商户确认页面的URL给银行,银行将在银行的交易结果页面显示此地址的链接。

提示:
商户返回实质上只是一个内容为URL的字符串,不能有任何多余的东西,包括不能有任何的html的标签;类似以下http回应
HTTP/1.1 200 OK
Server: Apache/1.39
Content-Length: 22
Content-type: text/html

http://www.icbc.com.cn
4、此URL可以通过“?”来挂参数;举例:http://merWeb.com.cn/getGoods.jsp?user=aa&level=3;
银行在显示给客户的交易结果页面上提供此URL的链接,客户点击此链接后,挂的参数将以GET方式提交商户。


问题就是第 7 个也是最后一个步骤 在工商银行页面付款后 会把结果通知于我(http://myweb/###.action) 某个具体的action ,这时我拿到数据后会做关于本系统相应的操作 执行完成后 最后一步 需要按银行要求返回URL给银行 就是这一步 不晓得如何返回消息给银行那端 目前自己尝试过转发 ,通过HttpUrlConnection 模拟发送请求 也没有什么效果 所以希望有相关经验的哪位大哥帮忙指导一下 谢谢谢谢谢谢谢谢
wenjjing2lianee 2010-01-19
  • 打赏
  • 举报
回复
工商的人员(非工程师),他的回复是 '接收到银行通知消息,然后用http request返回一个获取所购商品取货信息的URL即可。具体url形式参考文档说明' 还是说要用HttpURLConnection请求我需要指定的URL ...


工商的人员说用http request返回url就行,试过没.

要么直接http request,要么用httpURLConnection模拟请求.


up
wenjjing2lianee 2010-01-19
  • 打赏
  • 举报
回复
没有弄过,mark一下.
kokobox 2010-01-19
  • 打赏
  • 举报
回复
如果银行那边已经建议用HttpURLConnection的话,你就可以直接用HttpURLConnection了做请求了啊。

不过对于跳转回执的url和请求的url参数问题,应该有证书或者gpk进行加密处理的,或者其他的加密方式应该会提供给你的。 你按照规范加密url包括参数,就可以了。

potahai 2010-01-19
  • 打赏
  • 举报
回复
看了半天你上面的问题 ,蒙了。 可能是下午犯困

是说别人在你的网站上买完东西 然后按支付 ==》就跳到 工商银行提供的支付接口==》用户在工商银行付款完毕后 跳回你的网站 做订单之类的数据处理?

是这样的一个流程吗? 请简单省略点告诉我 或许我可以帮帮忙
sxclej 2010-01-19
  • 打赏
  • 举报
回复
问题是通过request 返回 url 我不明白如何去写 在request中没有一个类似发送请求或都flush的方法

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧