关于银联在线支付接口
public partial class NetPay_ChinapayNotify : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
UserPayRecordManager _userpayRecordManager = new UserPayRecordManager();
UserPayFailManager _userPayFailManager = new UserPayFailManager();
UserPayCountManager _userPayCountManager = new UserPayCountManager();
string Priv1 = Request["Priv1"];//备注
int iUserID = 0;
int.TryParse(Priv1, out iUserID);
string MerId = Request["MerId"];//商户号
string OrdId = Request["OrderNo"];//订单号
string TransAmt = Request["Amount"];//订单金额
string CuryId = Request["CurrencyCode"];//货币代码
string TransDate = Request["TransDate"];//订单日期
string TransType = Request["TransType"];//交易类型
string GateId = Request["GateId"];//网关
string status = Request["status"];
string CheckValue = Request["checkvalue"];//签名数据
decimal cash = 0;
decimal.TryParse(TransAmt, out cash);
bool res = NetPay_Chinapay.Check(MerId, OrdId, TransAmt, CuryId, TransDate, TransType, status, CheckValue, Server.MapPath(ConfigHandler.PubKeyPath));
//注:flag 0表示验签正确,其他表示失败
if (res && status == "1001")
{
//支付成功
}
else
{
//支付失败
}
}
}
为什么就不进通知页面呢?通知页面地址没错,是线上地址。我加了日志发邮件,至始至终就不进这页面。银联的通知页面接受到信息后不要返回信息的?像支付宝财付通都返回success。银联给的demo也是这样。找银联的技术支持也没找到。有哪位大哥知道?不甚感激 支付 银联 --------------------编程问答-------------------- 着急啊,求解啊 --------------------编程问答-------------------- 我昨天刚做这个问题,也是收不到银联的返回数据,后来发现是我这边页面的问题,你让银联查查是否发送成功。 --------------------编程问答-------------------- 这个参数名好像也没不对,用手册上的
result.MerId = Request["merid"].Trim();//商户号--------------------编程问答-------------------- 没找到银联的联系方式。有QQ什么的吗? --------------------编程问答--------------------
result.OrdId = Request["orderno"].Trim();//订单号
result.TransDate = Request["transdate"].Trim();//订单日期
result.TransAmt = Request["amount"].Trim();//订单金额
result.CuryId = Request["currencycode"].Trim();//货币代码
result.TransType = Request["transtype"].Trim();//交易类型
result.status = Request["status"].Trim();
result.CheckValue = Request["checkvalue"];//签名数据
result.GateId = Request["GateId"].Trim();//网关
result.Priv1 = Request["Priv1"].Trim();//备注
返回通知页面地址是否正确
--------------------编程问答--------------------
这个参数名好像也没不对,用手册上的
我昨天刚做这个问题,也是收不到银联的返回数据,后来发现是我这边页面的问题,你让银联查查是否发送成功。
result.MerId = Request["merid"].Trim();//商户号
result.OrdId = Request["orderno"].Trim();//订单号
result.TransDate = Request["transdate"].Trim();//订单日期
result.TransAmt = Request["amount"].Trim();//订单金额
result.CuryId = Request["currencycode"].Trim();//货币代码
result.TransType = Request["transtype"].Trim();//交易类型
result.status = Request["status"].Trim();
result.CheckValue = Request["checkvalue"];//签名数据
result.GateId = Request["GateId"].Trim();//网关
result.Priv1 = Request["Priv1"].Trim();//备注
还有在验签的时候,checkvalue值传过去的跟银联返回的都不一样,经与银联沟通,两个人说的完全相反,刚开始说用私钥签名用公钥验签,但是两个值根本不一样,造成实际支付成功,网站接收返回的数据,验证checkvalue值不通过。后来他们又说用公钥加密,返回的checkvalue值用私钥验签,把我都搞晕了。后来又说不用验证checkvalue值。现在我做的只判断返回的状态码是1001,就表示交易成功。 --------------------编程问答--------------------
没找到银联的联系方式。有QQ什么的吗?
我昨天刚做这个问题,也是收不到银联的返回数据,后来发现是我这边页面的问题,你让银联查查是否发送成功。
没有QQ,只有在线和电话 ,不过在线的要先登录 --------------------编程问答--------------------
这个参数名好像也没不对,用手册上的
我昨天刚做这个问题,也是收不到银联的返回数据,后来发现是我这边页面的问题,你让银联查查是否发送成功。
result.MerId = Request["merid"].Trim();//商户号
result.OrdId = Request["orderno"].Trim();//订单号
result.TransDate = Request["transdate"].Trim();//订单日期
result.TransAmt = Request["amount"].Trim();//订单金额
result.CuryId = Request["currencycode"].Trim();//货币代码
result.TransType = Request["transtype"].Trim();//交易类型
result.status = Request["status"].Trim();
result.CheckValue = Request["checkvalue"];//签名数据
result.GateId = Request["GateId"].Trim();//网关
result.Priv1 = Request["Priv1"].Trim();//备注
还有在验签的时候,checkvalue值传过去的跟银联返回的都不一样,经与银联沟通,两个人说的完全相反,刚开始说用私钥签名用公钥验签,但是两个值根本不一样,造成实际支付成功,网站接收返回的数据,验证checkvalue值不通过。后来他们又说用公钥加密,返回的checkvalue值用私钥验签,把我都搞晕了。后来又说不用验证checkvalue值。现在我做的只判断返回的状态码是1001,就表示交易成功。
嗯。文档上面只要签名验证通过且交易状态是1001就行了 --------------------编程问答--------------------
这个参数名好像也没不对,用手册上的
我昨天刚做这个问题,也是收不到银联的返回数据,后来发现是我这边页面的问题,你让银联查查是否发送成功。
result.MerId = Request["merid"].Trim();//商户号
result.OrdId = Request["orderno"].Trim();//订单号
result.TransDate = Request["transdate"].Trim();//订单日期
result.TransAmt = Request["amount"].Trim();//订单金额
result.CuryId = Request["currencycode"].Trim();//货币代码
result.TransType = Request["transtype"].Trim();//交易类型
result.status = Request["status"].Trim();
result.CheckValue = Request["checkvalue"];//签名数据
result.GateId = Request["GateId"].Trim();//网关
result.Priv1 = Request["Priv1"].Trim();//备注
还有在验签的时候,checkvalue值传过去的跟银联返回的都不一样,经与银联沟通,两个人说的完全相反,刚开始说用私钥签名用公钥验签,但是两个值根本不一样,造成实际支付成功,网站接收返回的数据,验证checkvalue值不通过。后来他们又说用公钥加密,返回的checkvalue值用私钥验签,把我都搞晕了。后来又说不用验证checkvalue值。现在我做的只判断返回的状态码是1001,就表示交易成功。
嗯。文档上面只要签名验证通过且交易状态是1001就行了
你也看到他给的demo了吧,他的demo上是要验签的呀,而且我在验证签的时候也没有给我说不用验签 --------------------编程问答-------------------- 造成这个原因应该是参数设置不对 --------------------编程问答-------------------- 我也在做银联支付这块,我想问上楼上的RSA算法是怎么解决的,C#的和JAVA不一样啊 --------------------编程问答-------------------- 银联接口的参数必要用Request.Form[""]来提取
补充:.NET技术 , ASP.NET