首页 新闻 会员 周边

关于支付宝接口集成的一个问题?

0
悬赏园豆:10 [已解决问题] 解决于 2015-06-18 11:02

在官网的例子中return_rul页面和notice_url页面的代码中有这么一个判断,如下

        SortedDictionary<string, string> sPara = GetRequestGet();

        if (sPara.Count > 0)//判断是否有带返回参数
        {
//其他代码略
 }
        else
        {
            Response.Write("无返回参数");
        }

就是判断支付宝接口有没有返回参数,我想问的是,如果没有返回参数是个什么情况,怎么处理?尤其是在return_url页面,我们需要呈现一个支付结果页面,告诉用户支付是成功还是失败,但如果一旦出现无返回参数这一情况,该怎么处理,支付是成功呢还是失败呢?总不能告诉用户的信息是“无返回参数”吧!我想用户也不懂这是什么意思。

i迷倪的主页 i迷倪 | 初学一级 | 园豆:185
提问于:2015-06-17 17:00
< >
分享
最佳答案
0

通常无返回参数是不太会发生的。如果有人直接拿你的returnurl或者notifyurl进行访问,可能参数就什么也没有。当然也不排除因为网络环境、信号衰减等导致传输过程中有丢包发生。

解决方法也较为简单,如无返回参数发生在return_url处,可以直接显示一段较为友好的话术,提示用户稍等或者让用户进入订单系统查看支付结果。支付宝后台会通过notify_url进行异步通知,如果异步通知也失败,你直接返回不是success的字符串,支付宝会尝试再次通知你,好像是25个小时内有8次异步通知。就算后台通知还是不成功,支付宝也提供了查询接口,可以查到支付结果。

收获园豆:10
JeffWong | 老鸟四级 |园豆:2328 | 2015-06-17 17:27

再请教一个问题,支付宝接口是不是只有当我在notify_url中发送了success 标识之后,才向return_url页面发送参数消息?否则是不是会一直不会调用return_url页面?这两个页面是什么关系?

望赐教!

i迷倪 | 园豆:185 (初学一级) | 2015-06-17 20:15

@njl_041x: 不是的。用户在支付宝支付完成后,会根据returnurl通过页面跳转返回,同时支付宝后台通过notifyurl异步回调通知你的站点支付已经完成,这两步其实是并行进行的,很可能异步通知先通知到你的站点。

JeffWong | 园豆:2328 (老鸟四级) | 2015-06-18 09:21

非常感谢你的回复。我也查了一些资料return_url和notify_url确实没什么关系,甚至在支付宝的早期版本中是没有notify_url调用的,notify_url的增加只是对return_url的补充,避免交易不完整。

i迷倪 | 园豆:185 (初学一级) | 2015-06-18 11:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册