当然不能提前关闭,在没有回调你的url之前,关闭了窗口,等于中断了http请求,你那边的代码必然没办法被执行!
你看看淘宝支付是怎么做的,也会有相应的提示,只是他们的服务器比较强大,导致等待的时间较短,用户没有察觉而已。

解决方案 »

  1.   

    现在支付平台缴费就是这样设定的,必然要经历两个步骤:
    1. 商户根据支付平台的接口,拼接缴费url:包括订单信息、价格、回调url、加密串,调用该url。
    2. 支付平台操作完之后,拼接回调url:包括订单信息、价格、订单支付状态、加密串
    第二步执行完,商户获得明确的订单支付状态,并且加密串通过了校验,商户才能修改订单状态。这个流程一旦中止了,后续的操作没办法顺利进行,不过,不可以问下支付平台的技术支持,他们遇到这种情况,会有什么补救办法,比如:用户再次提交缴费订单时,支付平台返回订单已缴费的信息,并且执行回调url。
      

  2.   

    <input type=hidden name="BgRetUrl"
    value="http://218.205.11.217/Account/ib_chargeForyl.action"> 
    <input type=hidden name="PageRetUrl"
    value="http://218.205.11.217/Account/ib_chargeForFroyl.action">
    这两个参数
      

  3.   


    这里 我的支付宝、财付通完全都没有问题 你关闭不关闭都会执行我做的业务逻辑,这块我已经做到了,但是网银却不行,BgRetUrl、PageRetUrl 28楼所说的这两个参数我进行测试了,没有用的即便我是后台处理和前台分开都是无用的, 你要看好了,他是在提示支付成功后才会执行你的后台业务代码,所以他关闭了提示成功后的页面就会中断http的相应 从而这两个URL地址都不会执行   这只是个人最近摸的经验,望各位大湿补充,看来有很多仁兄碰到了啊... 大家努力解决掉...
      

  4.   

    PageRetUrl为页面接受应答地址,用于引导使用者返回支付后的商户网站页面。
    BgRetUrl 为后台接受应答地址,用于商户记录交易信息和处理,对于使用者是不可见的。另外ChinaPay会根据后台发送的http的返回码来判定是否重新发送后台应答流水,以确保后台应答的接收。
      

  5.   


    如果是这么说  那么就不会出现这种状况了! 你想 如果按你说的bgreturl指定的url不管你关闭不关闭都会执行那么 这两个URL一致不一致都无所谓了 是不是! 因为BgReUrl 所指向的页面肯定是你进行业务处理的页面,这块我是这么做的,但是事实貌似不是,当你关闭网银的支付成功页面后 它就不会去响应BgretUrl所执行的URL    而你所说的应答流水是什么意思,难道在你关闭后,他会自动去请求数据判断是否支付 然后再去调用BgRetUrl的执行页面?
      

  6.   


    在这里先谢谢xiyhcyb  我的网站已经放倒外网上了,是可以访问的! 这个问题 客服说这个是个漏洞,他们一直在进行修正...
      

  7.   

    真是揪心啊,怎么就不好好静下来想想,看看文档呢?你要是等客户支付好后再跳转到你的网站来修改订单状态,想想肯定是有问题的啊,窗口没跳转,你就玩完了。
    解决的方法是,你必须传一个回转的地址去到网银,客户支付成功了,网银那边的服务器自动访问你给你的地址,这样才能有效修改订单状态。再者,你的网站必须是互联网可以访问到的,不然网银的服务器怎么来访问你给的URL?最后,必须强调的是,你给的URL页面必须是未加权限控制,这样网银的服务器才能正常“打开”你的网页。