首页 新闻 赞助 找找看

【求助】【银联在线】【UPOP】大哥大神们,最近在做银联在线支付 遇到了一些问题

0
悬赏园豆:100 [待解决问题]

Asp.Net开发的
demo 发给我参考一下吗?
1520279274@qq.com,非常感谢!

时间是把杀猪刀的主页 时间是把杀猪刀 | 初学一级 | 园豆:102
提问于:2013-11-20 21:15
< >
分享
所有回答(1)
0

1、银联在线支付有分无卡和有卡两种方式.

2、你对接这些接口应该会有银联在线的人员给你demo的吧

3、等上班的时候给你份我们程序的的代码片段

滴答的雨 | 园豆:3681 (老鸟四级) | 2013-11-21 01:08

参考

        /// <summary>
        /// 银联在线支付
        /// </summary>
        /// <param name="_merId">商户号  15位长度</param>
        /// <param name="_amount">订单金额</param>
        /// <param name="OrderId">订单id</param>
        /// <param name="userId">用户id</param>
        /// <param name="kadDomain">网址</param>
        /// <param name="_gateId">支付网关</param>
        /// <param name="_orderNo">对内订单号</param>
        /// <param name="orderType">订单类型</param>
        /// <returns></returns>
        public static string ChinaPay(string _merId, string _amount, string OrderId, string userId, string _gateId, string _orderNo, string orderType = null)
        {
            StringBuilder str = new StringBuilder();
            //  string postUrl = "http://payment-test.chinapay.com/pay/TransGet";//提交的测试地址
            string postUrl = "https://payment.chinapay.com/pay/TransGet ";//提交的真实地址
            string MerId = _merId;//商户号  15位长度
            string OrdId = userId + OrderId + _orderNo;//订单号  16位长度
            if (OrdId.Length > 16)
            {
                OrdId = OrdId.Substring(0, 16);
            }
            string version = "20070129";//支付版本号
            string moneyStr = "";
            _amount = _amount.Replace(".", "");
            for (int mm = 0; mm < (12 - _amount.Length); mm++)
            {
                moneyStr = moneyStr + "0";//不足12位左补0
            }
            string TransAmt = moneyStr + _amount;//订单金额  单位为分,12位长度,不足12位左补0
            string CuryId = "156";//货币代码
            string TransDate = DateTime.Now.ToString("yyyyMMdd");//订单日期   8位长度
            string TransType = "0001";//交易类型  4位长度
            string Priv1 = userId + "_" + OrderId + "_" + _orderNo + "_" + orderType;//备注             
            string BgRetUrl = CurrentWebsite + "Pay/ChinaPayBackReturn";//后台返回地址
            string PageRetUrl = CurrentWebsite + "Order/ChinaPayPageBack";//页面返回地址
            string GateId = _gateId;//网关号
            string MerPrKPath = HttpContext.Current.Server.MapPath("/App_Data/ChinaPay/MerPrK.key");   // 银联网银支付
            if (GateId == "8607")
            {
                MerPrKPath = HttpContext.Current.Server.MapPath("/App_Data/ChinaPay-wu/MerPrK_808080173501507_20120809155318.key");    // 银联无卡支付
            }


            //准备签名的数据
            string plain = MerId + OrdId + TransAmt + CuryId + TransDate + TransType + Priv1;


            string ChkValue = null;
            NetPay netPay = new NetPay();
            Boolean flag = netPay.buildKey(MerId, 0, MerPrKPath);

            if (flag)
            {
                if (netPay.PrivateKeyFlag)
                {
                    ChkValue = netPay.Sign(plain);
                }
            }
            str.AppendFormat("<div style='display:none;'>");
            str.AppendFormat("<form method=\"post\" action='" + postUrl + "' id=\"PayForm\" name=\"PayForm\">");
            str.AppendFormat("<input type=\"text\" name=\"MerId\" id=\"MerId\" value=\"" + MerId + "\" />");//商户号
            str.AppendFormat("<input type=\"text\" name=\"Version\"  id=\"Version\" value=\"" + version + "\"  />");
            str.AppendFormat("<input type=\"text\" name=\"OrdId\"  id=\"OrdId\"  value=\"" + OrdId + "\" />");
            str.AppendFormat("<input type=\"text\" name=\"TransAmt\"  id=\"TransAmt\" value=\"" + TransAmt + "\" />");//订单金额
            str.AppendFormat("<input type=\"text\" name=\"CuryId\" id=\"CuryId\" value=\"" + CuryId + "\"  />");//货币代码
            str.AppendFormat("<input type=\"text\" name=\"TransDate\"  id=\"TransDate\" value=\"" + TransDate + "\"  />");//订单日期
            str.AppendFormat("<input type=\"text\" name=\"TransType\"  id=\"TransType\" value=\"" + TransType + "\" />");//交易类型
            str.AppendFormat("<input type=\"text\" name=\"BgRetUrl\" id=\"BgRetUrl\" value=\"" + BgRetUrl + "\"  />");
            str.AppendFormat("<input type=\"text\" name=\"PageRetUrl\" id=\"PageRetUrl\" value=\"" + PageRetUrl + "\"  />");
            str.AppendFormat("<input type=\"text\" name=\"GateId\" id=\"GateId\" value=\"" + GateId + "\" />");
            str.AppendFormat("<input type=\"text\" name=\"Priv1\" id=\"Priv1\" value=\"" + Priv1 + "\" />");
            str.AppendFormat("<input type=\"text\" name=\"ChkValue\" id=\"ChkValue\" value=\"" + ChkValue + "\" />");
            str.AppendFormat("</form>");
            str.AppendFormat("<script type='text/javascript' >document.getElementById('PayForm').submit();</" + "script>");
            str.AppendFormat("</div>");
            return str.ToString();
        }

 

支持(0) 反对(0) 滴答的雨 | 园豆:3681 (老鸟四级) | 2013-11-21 10:04

@滴答的雨(何雨泉): 您好, 能发一份upon asp.net 的demo到1512465743@qq.com 这个邮箱吗?

支持(0) 反对(0) | 园豆:200 (初学一级) | 2014-11-26 11:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册