·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> 支付宝双向接口对接实现

支付宝双向接口对接实现

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

支付宝双向接口对接实现

今天在开发一个支付功能,由于第三方注册的是 双向功能接口(即时交易,担保交易)两种方式的支付方法

其实这个接口也是跟 即时交易和担保交易的接口差不多,只是这边特别注意一点的就是,商户的密钥不能有任何的空格

废话不说,贴上代码

  ////////////////////////////////////////////请求参数////////////////////////////////////////////        //支付类型        string payment_type = "1";   //这个是代表买家付款        //必填,不能修改        //服务器异步通知页面路径        string notify_url = “”;  //  异步通知的接收页面,(因为有时候万一用户在跳转到支付宝那边支付完毕后,遇到一些特殊情况没有返回到制定的商家页面)        //需http://格式的完整路径,不能加?id=123这类自定义参数        //页面跳转同步通知页面路径        string return_url = “”;          //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/        //卖家支付宝帐户        string seller_email = “**************”;        //必填        //商户订单号        string out_trade_no = “2013145201314”;        //商户网站订单系统中唯一订单号,必填        //订单名称        string subject = “这是来自一个第三方商城的订单”;        //必填        //付款金额        string PRice =“0.01”;// string.Format("{0:f2}", ****);        //必填        //商品数量        string quantity = "1";        //必填,建议默认为1,不改变值,把一次交易看成是一次下订单而非购买一件商品        //物流费用        string logistics_fee = "0.00";        //必填,即运费        //物流类型        string logistics_type = "EXPRESS";        //必填,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS)        //物流支付方式        string logistics_payment = "SELLER_PAY";        //必填,两个值可选:SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费)        //订单描述        string body = code + "|" + type + "|" + num + "|" + md5sign;        //商品展示地址        string show_url ="http://www.****.com";           //需以http://开头的完整路径,如:http://www.商户网站.com/myorder.html        //收货人姓名        string receive_name = "测试";        //如:张三        //收货人地址        string receive_address = "测试";        //如:XX省XXX市XXX区XXX路XXX小区XXX栋XXX单元XXX号        //收货人邮编        string receive_zip = "510555";        //如:123456        //收货人电话号码        string receive_phone = "";        //如:0571-88158090        //收货人手机号码        string receive_mobile = "";        //如:13312341234        ////////////////////////////////////////////////////////////////////////////////////////////////        //把请求参数打包成数组        SortedDictionary<string, string> sParaTemp = new SortedDictionary<string, string>();        sParaTemp.Add("partner", entity.payID);        sParaTemp.Add("_input_charset", Config.Input_charset.ToLower());        sParaTemp.Add("service", "trade_create_by_buyer");        sParaTemp.Add("payment_type", payment_type);        sParaTemp.Add("notify_url", notify_url);        sParaTemp.Add("return_url", return_url);        sParaTemp.Add("seller_email", seller_email);        sParaTemp.Add("out_trade_no", out_trade_no);        sParaTemp.Add("subject", subject);        sParaTemp.Add("price", price);        sParaTemp.Add("quantity", quantity);        sParaTemp.Add("logistics_fee", logistics_fee);        sParaTemp.Add("logistics_type", logistics_type);        sParaTemp.Add("logistics_payment", logistics_payment);        sParaTemp.Add("body", body);        sParaTemp.Add("show_url", show_url);        sParaTemp.Add("receive_name", receive_name);        sParaTemp.Add("receive_address", receive_address);        sParaTemp.Add("receive_zip", receive_zip);        sParaTemp.Add("receive_phone", receive_phone);        sParaTemp.Add("receive_mobile", receive_mobile);        //建立请求        string sHtmlText = Submit.BuildRequest(sParaTemp, "get", "确认");      //这个拼接提交的form的方法里面,组成一个sign                 Response.Write(sHtmlText);        #endregion

配置sign的类,支付宝这边生成form的元素的时候会把这个key的值通过md5加密,然后加到form的表单元素上去。

    static Config()        {            //↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓            //合作身份者ID,以2088开头由16位纯数字组成的字符串            partner = "";            //交易安全检验码,由数字和字母组成的32位字符串            key = "";            //↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑            //字符编码格式 目前支持 gbk 或 utf-8            input_charset = "utf-8";            //签名方式,选择项:RSA、DSA、MD5            sign_type = "MD5";        }

最后贴上一个示例的url

https://mapi.alipay.com/gateway.do?_input_charset=utf-8&body=test&logistics_fee=0.00&logistics_payment=SELLER_PAY&logistics_type=EXPRESS&notify_url={网站地址}&out_trade_no={订单号}&partner={商家号}&payment_type=1&price=1&quantity=1&receive_address=测试&receive_name=测试&receive_zip=510555&return_url={url}&seller_email={商家号(邮箱)}&service=trade_create_by_buyer&show_url=http://www.xxxx.com&subject=标题&sign=key的md5加密&sign_type=MD5

支付宝双接口的文件链接地址 点击下载