支付宝!!!

神风凌 2010-08-19 04:07:00
哪位大虾告诉下小弟,ASP。NET连接的支付宝接口,成功后,怎么取得返回的ID,或者定单号?我看了下,只返回成功或者失败。。。
...全文
329 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
神风凌 2010-09-02
  • 打赏
  • 举报
回复
虽然没等到答案,但我还是得感谢各位。结帖了!!!
对CSDN很失望,去看了其他的帖子,很多问题都没人给出正确的答案。
问题很难么?!
susan_wenjuan 2010-08-19
  • 打赏
  • 举报
回复
学习了
不懂装懂 2010-08-19
  • 打赏
  • 举报
回复
呵呵,不能用session啊,我以为就传个用户id没事呢
zhangdoublepan 2010-08-19
  • 打赏
  • 举报
回复
学习了
神风凌 2010-08-19
  • 打赏
  • 举报
回复
如此关键的时刻,怎么能用session呢。。。像网银就给你信息。。
不懂装懂 2010-08-19
  • 打赏
  • 举报
回复
原来支付宝是这样的第一次看到,学习了
你这样想在你的页面里怎样转到这个页面??比如一个用户登陆后,你需要记录用户ID吧,Session["userID"]=XXX;那么用户跳转到支付宝时
protected void Page_Load(object sender, EventArgs e)
{
string s=Session["userID"].ToString();
if (mysign == sign && responseTxt == "true") //验证支付发过来的消息,签名是否正确
{
...//这块是支付成功时,显示提示信息的吧
Session["NewUserID"]=s;
}
else
{
Session["NewUserID"]=false;
}
}
然后再取Session["NewUserID"]就行了,判断if(Session["NewUserID"].ToString()!="false")
我水平有限,勿拍板砖,坐等高人
神风凌 2010-08-19
  • 打赏
  • 举报
回复
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Net;
using System.IO;
using System.Collections.Specialized;

namespace WebApplication1.Apay
{
public partial class Alipay_Return : System.Web.UI.Page
{
public static string GetMD5(string s)
{


MD5 md5 = new MD5CryptoServiceProvider();
byte[] t = md5.ComputeHash(Encoding.GetEncoding("gb2312").GetBytes(s));
StringBuilder sb = new StringBuilder(32);
for (int i = 0; i < t.Length; i++)
{
sb.Append(t[i].ToString("x").PadLeft(2, '0'));
}
return sb.ToString();
}
public static string[] BubbleSort(string[] r)
{

int i, j; //交换标志
string temp;

bool exchange;

for (i = 0; i < r.Length; i++) //最多做R.Length-1趟排序
{
exchange = false; //本趟排序开始前,交换标志应为假

for (j = r.Length - 2; j >= i; j--)
{
if (System.String.CompareOrdinal(r[j + 1], r[j]) < 0) //交换条件
{
temp = r[j + 1];
r[j + 1] = r[j];
r[j] = temp;

exchange = true; //发生了交换,故将交换标志置为真
}
}

if (!exchange) //本趟排序未发生交换,提前终止算法
{
break;
}

}
return r;
}

//获取远程服务器ATN结果
public String Get_Http(String a_strUrl, int timeout)
{
string strResult;
try
{

HttpWebRequest myReq = (HttpWebRequest)HttpWebRequest.Create(a_strUrl);
myReq.Timeout = timeout;
HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse();
Stream myStream = HttpWResp.GetResponseStream();
StreamReader sr = new StreamReader(myStream, Encoding.Default);
StringBuilder strBuilder = new StringBuilder();
while (-1 != sr.Peek())
{
strBuilder.Append(sr.ReadLine());
}

strResult = strBuilder.ToString();
}
catch (Exception exp)
{

strResult = "错误:" + exp.Message;
}

return strResult;
}

protected void Page_Load(object sender, EventArgs e)
{
///当不知道https的时候,请使用http
//string alipayNotifyURL = "https://www.alipay.com/cooperate/gateway.do?";
string alipayNotifyURL = "http://notify.alipay.com/trade/notify_query.do?";

string partner = ""; //partner
string key = ""; //安全校验码
//alipayNotifyURL = alipayNotifyURL + "service=notify_verify" + "&partner=" + partner + "¬ify_id=" + Request.QueryString["notify_id"];
alipayNotifyURL = alipayNotifyURL + "&partner=" + partner + "¬ify_id=" + Request.QueryString["notify_id"];

string responseTxt = Get_Http(alipayNotifyURL, 120000);
//*********************************************************************************************
int i;
NameValueCollection coll;
//Load Form variables into NameValueCollection variable.
coll = Request.QueryString;

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



//进行排序;
string[] Sortedstr = BubbleSort(requestarr);

//构造待md5摘要字符串 ;

StringBuilder prestr = new StringBuilder();

for (i = 0; i < Sortedstr.Length; i++)
{
if (Sortedstr[i] != "sign" && Sortedstr[i] != "sign_type")
{
if (i == Sortedstr.Length - 1)
{
prestr.Append(Sortedstr[i] + "=" + Request.QueryString[Sortedstr[i]]);

}
else
{

prestr.Append(Sortedstr[i] + "=" + Request.QueryString[Sortedstr[i]] + "&");
}
}
}

prestr.Append(key);

//生成Md5摘要;
string mysign = GetMD5(prestr.ToString());


string sign = Request.QueryString["sign"];



if (mysign == sign && responseTxt == "true") //验证支付发过来的消息,签名是否正确
{

//更新自己数据库的订单语句,请自己填写一下

//如果您申请了支付宝的购物卷功能,请在返回的信息里面不要做金额的判断,否则会出现校验通不过,出现调单。如果您需要获取买家所使用购物卷的金额,
//请获取返回信息的这个字段discount的值,取绝对值,就是买家使用购物卷的金额。即 原订单的总金额=买家付款返回的金额total_fee +|discount|.
Response.Write("success"); //返回给支付宝消息,成功
Response.Write("<br>------------------" + Request.QueryString["body"]);
}
else
{
Response.Write("fail");
Response.Write("<br>------------------" + Request.QueryString["body"]);

}
}
}
}


它就返回这些,根本没法得到我传入的值呐
wwfgu00ing 2010-08-19
  • 打赏
  • 举报
回复
有借口文档说明的吧,参考一下
mdmzl 2010-08-19
  • 打赏
  • 举报
回复
学习了。
jrl5365 2010-08-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gongsun 的回复:]
支付宝会给你 实例页面的,你仔细看看。
[/Quote]

+1
不懂装懂 2010-08-19
  • 打赏
  • 举报
回复
public string fanhu(string ID,支付宝参数)
{
if(支付宝方法(其他参数))
{
return ID;
}
else
{
reture "false";
}
}
BaoShiqiang 2010-08-19
  • 打赏
  • 举报
回复
支付宝会给你文档和Demo 按照他的要求写就行了
gongsun 2010-08-19
  • 打赏
  • 举报
回复
支付宝会给你 实例页面的,你仔细看看。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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