本帖最后由 a346729576 于 2011-12-22 10:21:33 编辑

解决方案 »

  1.   

    不管是支付宝还是财务通。它都有两种支付的方式get和post。而官方给你的demo。就是属于post提交。
    你可以不用拼凑成表单。可以直接通过get过去。只要拼凑成对象的url就可以了。
      

  2.   


                //业务参数赋值;
                string gateway = "https://www.alipay.com/cooperate/gateway.do?"; //支付接口
                string service = "create_direct_pay_by_user";                       //服务名称,这个是识别是何接口实现何功能的标识,请勿修改
                           string seller_email = ConfigHandler.AlipaySellerEmail;              //商家签约时的支付宝帐号,即收款的支付宝帐号
                string sign_type = "MD5";                                           //加密类型,签名方式“不用改”
                string key = ConfigHandler.AlipayKey;                               //安全校验码,与partner是一组,获取方式是:用签约时支付宝帐号登陆支付宝网站www.alipay.com,在商家服务我的商家里即可查到。
                string partner = ConfigHandler.AlipayPartner;                       //商户ID,合作身份者ID,合作伙伴ID
                string _input_charset = "gb2312";                                    //编码类型,完全根据客户自身的项目的编码格式而定,千万不要填错。否则极其容易造成MD5加密错误。            string show_url = "http://fdc.soufun.com/";                         //展示地址,即在支付页面时,商品名称旁边的“详情”的链接地址。
                
                string out_trade_no = orderID;                                      //客户自己的订单号,订单号必须在自身订单系统中保持唯一性
                string subject = "";                                          //商品名称,也可称为订单名称,该接口并不是单一的只能买一样东西,可把一次支付当作一次下订单
                string body = "";                                             //商品描述,即备注
                string total_fee = cash.ToString("F2");                                 //商品价格,也可称为订单的总金额            //服务器通知url(Alipay_Notify.aspx文件所在路经),必须是完整的路径地址
                string notify_url = ConfigHandler.AlipayNotify;
                //服务器返回url(Alipay_Return.aspx文件所在路经),必须是完整的路径地址
                string return_url = ConfigHandler.AlipayReturn;
                //构造数组;
                //以下数组即是参与加密的参数,若参数的值不允许为空,若该参数为空,则不要成为该数组的元素
                string[] para ={
            "service="+service,
            "partner=" + partner,
            "seller_email=" + seller_email,
            "out_trade_no=" + out_trade_no,
            "subject=" + subject,
            "body=" + body,
            "total_fee=" + total_fee, 
            "show_url=" + show_url,
            "payment_type=1",
            "notify_url=" + notify_url,
            "return_url=" + return_url
            };
                //支付URL生成
                string aliay_url = AliPay.CreatUrl(
                    gateway,//GET方式传递参数时请去掉注释
                    para,
                    _input_charset,
                    sign_type,
                    key
                    );            //以下是GET方式传递参数
                Response.Redirect(aliay_url);
                //以下是POST方式传递参数
                //Response.Write("<form name='alipaysubmit' method='post' action='https://www.alipay.com/cooperate/gateway.do?_input_charset=utf-8'>");
                //Response.Write("<input type='hidden' name='service' value=" + service + ">");
                //Response.Write("<input type='hidden' name='partner' value=" + partner + ">");
                //Response.Write("<input type='hidden' name='seller_email' value=" + seller_email + ">");
                //Response.Write("<input type='hidden' name='out_trade_no' value=" + out_trade_no + ">");
                //Response.Write("<input type='hidden' name='subject' value=" + subject + ">");
                //Response.Write("<input type='hidden' name='body' value=" + body + ">");
                //Response.Write("<input type='hidden' name='total_fee' value=" + total_fee + ">");
                //Response.Write("<input type='hidden' name='show_url' value=" + show_url + ">");
                //Response.Write("<input type='hidden' name='return_url' value=" + return_url + ">");
                //Response.Write("<input type='hidden' name='notify_url' value=" + notify_url + ">");
                //Response.Write("<input type='hidden' name='payment_type' value=1>");
                //Response.Write("<input type='hidden' name='sign' value=" + aliay_url + ">");
                //Response.Write("<input type='hidden' name='sign_type' value=" + sign_type + ">");
                //Response.Write("</form>");
                //Response.Write("<script>");
                //Response.Write("document.alipaysubmit.submit()");
                //Response.Write("</script>");
      

  3.   

    其实还是给支付宝传递几个参数过去,然后他再给你返回一些东西。。我发的那段代码是post方式,我只用get提交过去就行了。。是吗大哥
      

  4.   

    最好还是post提交 安全性高一点 支付宝也是这样建议的
      

  5.   

     谁能大概的讲一下支付宝的流程... 首先把参数都加密传过去 然后支付宝返回回来一个SortedDictionary  记录着信息 大概是这样吧???
      

  6.   

    把需要的参数设置下,必要的参数post过去
    然后设置下return_url页面,确定支付状态后的跳转页面.
    接口集成到你的网站
      

  7.   


    先是参数中有一个return_url。还有一个Notify_url 。你提交到他/她的页面去了。成功之后会自动跳转到你的retur_url页面。同时支付宝会异步的访问Notify_url通知页面。大约是30分钟6次还是几次来着。如果到通知页面成功后得返回一个success失败就返回一个fail。当支付接受到success就不会再返回你这个通知页面了。如果接受到的是fail。那它会通过30分钟6次左右的频率访问你的通知页面。直到成功为止。
      

  8.   

    return_url.aspx、、notify_url.aspx、、default.aspx  这三个页面都要吗?
      

  9.   


    首先把参数都加密传过去,最主要的是价钱,还有本地数据库中的订单号,还有返回地址,比如http://www.aaa.com/notify_url.aspx。提交的时候一般使用Post方式,比较安全。当然pid和key这两个参数是必须的,少不了的,否则都进不了支付宝。当支付宝处理完成后,会把处理结果返回给notify_url.aspx,return_url.aspx。之前你传过去的所有东西,他会一成不变的传回来,接收到你之前传过去的数据库中的订单号,在这个页面notify_url.aspx判断一下结果,如果成功就更新自己的数据库对应的订单,失败就做其他处理。
      

  10.   

    我现在有一已在alipay支付了的订单的ID,当然也有合作的key,我想查询订单的完整信息,有那个接口可以调用。
    在网上找了老半天都没找到接口文档,alipay.com上边给的文档真是太烂了(好吧,我承认是我自己的问题,看不懂)。
    楼主要是搞定了自己的问题,顺便帮我解答一下吧。。