读书人

asp.net程序 支付宝接口支付顺利后无

发布时间: 2012-07-30 16:19:05 作者: rapoo

asp.net程序 支付宝接口支付成功后无跳转!
如题:支付宝支付成功后无跳转,请问是什么原因呢?

相关代码:
https://tradeexprod.alipay.com/cashiergw/cashierReturnMiddlePage.htm?tradeNo=2011080398929208&sign=K1ib40qLlP63fAxO404Zu%252FfMCcLZcxOERmD69sl2M0PWCg%253D%253D
就到这里 提示支付完成 ,但是就是不跳转~


在本地测试 都是OK的。

[解决办法]
<p class="n-explain" style="display:none">如果页面还没有跳转,请点此<a href="http://www.yililian.com/return_url.aspx?body=234&buyer_email=zhuwangxz%40126.com&buyer_id=2088102120685081&discount=0.00&gmt_create=2011-08-03+17%3A51%3A02&gmt_logistics_modify=2011-08-03+17%3A51%3A02&gmt_payment=2011-08-03+17%3A51%3A09&is_success=T&is_total_fee_adjust=N&logistics_fee=0.00&logistics_payment=BUYER_PAY&logistics_type=EXPRESS&notify_id=RqPnCoPT3K9%252Fvwbh3I7w58R0PH14sjEpI%252B2pMm1o7rPqc3ELoPZ1UOdBhVBm4iF3p0DV&notify_time=2011-08-03+19%3A57%3A42&notify_type=trade_status_sync&out_trade_no=201183175003&payment_type=1&price=0.01&quantity=1&receive_address=%CE%F7%B2%D8%D7%D4%D6%CE%C7%F8%A1%A2%B2%FD%B6%BC%B5%D8%C7%F8%A1%A2%B9%B1%BE%F5%CF%D8%A1%A2asdasd&receive_mobile=234234&receive_name=sdt&receive_phone=234234234&receive_zip=234234&seller_actions=SEND_GOODS&seller_email=xiaguilian0202%40sina.com.cn&seller_id=2088002523241726&subject=201183175003&total_fee=0.01&trade_no=2011080398929208&trade_status=WAIT_SELLER_SEND_GOODS&use_coupon=N&sign=88b9130a1824af7fe6121089e5ace538&sign_type=MD5">跳转回商户</a></p>
</div>

这一段怎么没显示出来

应该会加载的

IE下 总是加载不完
[解决办法]
没研究过支付接口
帮顶
[解决办法]
你提供的文件地址对吗?这个文件地址必须通过公网可以访问到才行
[解决办法]
我打开跳转了,是验证失败。
你在参数里面要设定返回公网地址。
[解决办法]

C# code
string return_url = "http://www.yililian.com/Alipay_Return.aspx"; //服务器通知返回接口string notify_url = "http://www.yililian.com/Alipay_Notify.aspx"; //服务器通知返回接口
[解决办法]
帮楼主顶。
[解决办法]
返回了,但返回是空!
通知返回
支付宝交易号:
订单号:
付款总金额:
商品标题:
商品描述:
买家账号:
收货人姓名:
收货人地址:
收货人邮编:
收货人电话:
收货人手机:
交易状态:
验证状态:验证失败

[解决办法]

namespace AlipayClass
{
/// <summary>
/// 功能:付完款后跳转的页面(返回页)
/// 版本:3.0
/// 日期:2010-06-09
/// 说明:
/// 以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。
/// 该代码仅供学习和研究支付宝接口使用,只是提供一个参考。
///
/// ///////////////////////页面功能说明///////////////////////
/// 该页面可在本机电脑测试
/// 该页面称作“返回页”,是由支付宝服务器同步调用,可当作是支付完成后的提示信息页,如“您的某某某订单,多少金额已支付成功”。
/// 可放入HTML等美化页面的代码和订单交易完成后的数据库更新程序代码
/// 该页面可以使用ASP.NET开发工具调试,也可以使用写文本函数Log_result进行调试,该函数已被默认关闭
/// TRADE_FINISHED(表示交易已经成功结束,为普通即时到帐的交易状态成功标识);
/// TRADE_SUCCESS(表示交易已经成功结束,为高级即时到帐的交易状态成功标识);
/// </summary>
public class return_url : System.Web.UI.Page
{
protected HtmlForm form1;
protected Label lbTrade_no, lbOut_trade_no, lbTotal_fee, lbSubject, lbBody, lbBuyer_email, lbTrade_status, lbVerify;

protected void Page_Load(object sender, EventArgs e)
{
SortedDictionary<string, string> sArrary = GetRequestGet();
///////////////////////以下参数是需要设置的相关配置参数,设置后不会更改的//////////////////////



//string[] _AlipayInfo = WinLibClass.Config.Global.WebSiteConfig.AlipayInfo;

//string partner = _AlipayInfo[0].Trim(); //""; //合作身份者ID
//string key = _AlipayInfo[1].Trim(); //""; //安全检验码
//string seller_email = _AlipayInfo[2].Trim(); //""; //签约支付宝账号或卖家支付宝帐户

string partner = WinLibClass.Config.Global.WebSiteConfig.Alipay_Partner; //""; //合作身份者ID
string key = WinLibClass.Config.Global.WebSiteConfig.Alipay_Key; //""; //安全检验码
string seller_email = WinLibClass.Config.Global.WebSiteConfig.Alipay_Seller_Email; //""; //签约支付宝账号或卖家支付宝帐户


//string partner = ""; //合作身份者ID
//string key = ""; //安全检验码
string input_charset = "utf-8"; //字符编码格式 目前支持 gbk 或 utf-8
string sign_type = "MD5"; //加密方式 不需修改
string transport = "http";// "https"; //访问模式,根据自己的服务器是否支持ssl访问,若支持请选择https;若不支持请选择http
//////////////////////////////////////////////////////////////////////////////////////////////
//Response.Write(key);


if (sArrary.Count > 0)//判断是否有带返回参数
{
AlipayNotify aliNotify = new AlipayNotify(sArrary, Request.QueryString["notify_id"], partner, key, input_charset, sign_type, transport);
string responseTxt = aliNotify.ResponseTxt; //获取远程服务器ATN结果,验证是否是支付宝服务器发来的请求
string sign = Request.QueryString["sign"]; //获取支付宝反馈回来的sign结果
string mysign = aliNotify.Mysign; //获取通知返回后计算后(验证)的加密结果

//Response.Write((Request.QueryString["sign"]==null) + "<br />");
//Response.Write(aliNotify.ResponseTxt + "<br />");
//Response.Write(mysign + "<br>" + sign);

//写日志记录(若要调试,请取消下面两行注释)
//string sWord = "responseTxt=" + responseTxt + "\n return_url_log:sign=" + Request.QueryString["sign"] + "&mysign=" + mysign + "\n return回来的参数:" + aliNotify.PreSignStr;
//AlipayFunction.log_result(Server.MapPath("log/" + DateTime.Now.ToString().Replace(":", "")) + ".txt",sWord);

//判断responsetTxt是否为ture,生成的签名结果mysign与获得的签名结果sign是否一致
//responsetTxt的结果不是true,与服务器设置问题、合作身份者ID、notify_id一分钟失效有关
//mysign与sign不等,与安全校验码、请求时的参数格式(如:带自定义参数等)、编码格式有关
if (responseTxt == "true" && sign == mysign)//验证成功
{
//请根据您的业务逻辑来编写程序(以下代码仅作参考)
//获取支付宝的通知返回参数
string trade_no = Request.QueryString["trade_no"]; //支付宝交易号
string order_no = Request.QueryString["out_trade_no"];//获取订单号
string total_fee = Request.QueryString["total_fee"];//获取总金额
string subject = Request.QueryString["subject"]; //商品名称、订单名称
string body = Request.QueryString["body"]; //商品描述、订单备注、描述
string buyer_email = Request.QueryString["buyer_email"];//买家支付宝账号
string trade_status = Request.QueryString["trade_status"];//交易状态
int sOld_trade_status = 0; //获取商户数据库中查询得到该笔交易当前的交易状态

//打印页面
lbTrade_no.Text = trade_no;
lbOut_trade_no.Text = order_no;
lbTotal_fee.Text = total_fee;


lbSubject.Text = subject;
lbBody.Text = body;
lbBuyer_email.Text = buyer_email;
lbTrade_status.Text = trade_status;
lbVerify.Text = "验证成功";

//假设:
//sOld_trade_status="0"表示订单未处理;
//sOld_trade_status="1"表示交易成功(TRADE_FINISHED/TRADE_SUCCESS)

if (Request.QueryString["trade_status"] == "TRADE_FINISHED" || Request.QueryString["trade_status"] == "TRADE_SUCCESS")
{
//为了保证不被重复调用,或重复执行数据库更新程序,请判断该笔交易状态是否是订单未处理状态
//if (sOld_trade_status < 1)
{
//根据订单号更新订单,把订单状态处理成交易成功
//2011-4-4 前
//2011-04-04 起应用
//WinLibClass.WorkLogic.Main.UserCenter.CheckPayLog(order_no,WinLibClass.Entity.Enums.PayBankType.Alipay);

//20110624后使用
WinLibClass.WorkLogic.Manage.AgentBase.CurrentAgent.Provider_UserOrderForm.CheckPayLog(order_no, 1);

}
}
else
{
Response.Write("trade_status=" + Request.QueryString["trade_status"]);
}
//请根据您的业务逻辑来编写程序(以上代码仅作参考)
}
else//验证失败
{
lbVerify.Text = "验证失败";
}
}
else
{
lbVerify.Text = "无返回参数";
}
}

/// <summary>
/// 获取支付宝GET过来通知消息,并以“参数名=参数值”的形式组成数组
/// </summary>
/// <returns>request回来的信息组成的数组</returns>
public SortedDictionary<string, string> GetRequestGet()
{
int i = 0;
SortedDictionary<string, string> sArray = new SortedDictionary<string, string>();
NameValueCollection coll;
//Load Form variables into NameValueCollection variable.
coll = Request.QueryString;

// Get names of all forms into a string array.
String[] requestItem = coll.AllKeys;

for (i = 0; i < requestItem.Length; i++)
{
sArray.Add(requestItem[i], Request.QueryString[requestItem[i]]);
}

return sArray;
}
}
}

读书人网 >asp.net

热点推荐