.net实现lakala支付接口(国内拉卡拉技术首发)

1. MD5校验问题
MD5是根据参数汇总表的参数,按照字母升序顺序排列。您需要传递哪些参数,就要将那些参数加入到MD5的原始字符串中。原始字符串最后记得串上自己的安全校验码。例如:调用某接口需要以下参数:

假设密钥为Key

代签数据

 data = "amount=" + amount + "&amount_pay=" + amount_pay + "&currency=156&lakala_bill_no=" + lakala_bill_no
        + "&lakala_pay_time=" + lakala_pay_time + "&mer_id=" + mer_id + "&partner_bill_no=" + partner_bill_no
        + "&pay_type=D&req_id=" + req_id + "&sec_id=MD5&service=lakala.agency.tradePayBalance&trade_no="
        + trade_no + "&v=1.1" + Key;

进行校签 

 string mysign = GetMD5(data);
        int verified = -1;
        if (mysign == sign)
        {
            verified = 0;
        }

   if (verified == 0) //校签成功
        {

          //验证支付金额是否一致

           if (Price!= amount||fstatus=="1") //输入金额不对或已经支付过了,Price为订单金额,fstatus为订单状态
            {
                is_success = "n";
            }

       }

        

        if (is_success == "y")
            {
                //更新自己数据库的订单语句,请自己填写一下

                //UpdateOrderStatus(orderNo,msg);
            }

       }

2.订单查询接口
lakalaSearchOrder.aspx?v=1.1&service=lakala.agency.tradePayConsultBalance&mer_id=325510&sec_id=MD5

&req_id=15183&trade_no=1012130005&amount=2300.00&lakala_query_time=20101213171712

&sign=74d71eec988c613a0e22f2921692d944

返回
amount=2300.00&can_pay=y&mer_id=123456&partner_bill_no=3255101012130005
&partner_extendinfo=c2hubg==&partner_query_time=20101213171712&req_id=15183
&sec_id=MD5&service=lakala.agency.tradePayConsultBalance&v=1.132aioiuyfrtyjk.,lkk4!pnolr85427*6322ad-fdin690#211000ffhhhq3679nb16&sign=8a5c43b6c4776314e5110465800436ba

3.支付查询接口
lakalaPayInform.aspx?v=1.1&service=lakala.agency.tradePayBalance&mer_id=325510

&sec_id=MD5&req_id=15185&trade_no=1012130005&amount=2300.00&amount_pay=2300.00

&pay_type=D&partner_bill_no=1012130005&lakala_bill_no=021012131742034&currency=156

&lakala_pay_time=20101213175051&sign=f18c661bd6e6b8c0217d30070609014f&terminalno=010-59711100
返回
is_success=y&lakala_bill_no=021012131742034&mer_id=123456&partner_bill_no=3255101012130005
&partner_pay_time=20101213175051&req_id=15185&sec_id=MD5
&service=lakala.agency.tradePayBalance&v=1.132aioiuyfrtyjk.,lkk4!pnolr85427*6322ad-fdin690#211000ffhhhq3679nb16&sign=2c24095b307acbe11d19e3acdee7b030

4.正式收银台地址
 http://b.lakala.com/plugin2/pos.jsp

 

附:

 public static string GetMD5(string s)
    {
        /// <summary>
        /// 与ASP兼容的MD5加密算法
        /// </summary>

        MD5 md5 = new MD5CryptoServiceProvider();
        byte[] t = md5.ComputeHash(Encoding.GetEncoding("utf-8").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();
    }

posted @ 2010-12-28 13:26  金码  阅读(1440)  评论(0编辑  收藏  举报