首页 优化推广 asp.net支付宝接口,付款部分

asp.net支付宝接口,付款部分

来源: | 时间:2013/12/29 11:50:02 |

最近刚做了个支付宝的接口,简单给大家分享一下,支付宝有专门的客服,不懂就给你说,服务还是不错的,当然人家是赚钱的1.2%的交易费用啊

接口有4种,分别是双标准接口,担保接口,即时到帐接口,纯网银接口,前两种是你支付宝个人就可以申请,后两种需要企业级别的才可以

我这次给大家做的就是

/// 担保交易的交易状态变化顺序是:等待买家付款→买家已付款,等待卖家发货→卖家已发货,等待买家收货→买家已收货,交易完成
/// 即时到帐的交易状态变化顺序是:等待买家付款→交易完成

其实我们做的部分不是很多,最重要的是让支付宝返回的状态和你的网站的订单一致就可以,别人家付款了,你网站还没更改

我的数据库存了三个bool字段,pay(付款),sendto(发货),success(成功),用支付宝返回的状态(异步)里面写sql语句,去更改就是了,插入订单的时机在顾客填写完订单,并向支付宝提交的时候。

不废话了,看代码吧

去支付宝商家服务里面,下载相关的源代码

我这里直说那些需要我们修改的

1.AlipayConfig.cs

//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

//合作身份者ID,以2088开头由16位纯数字组成的字符串

partner = "你的pid";

//交易安全检验码,由数字和字母组成的32位字符串
key = "你的key";

//签约支付宝账号或卖家支付宝帐户
seller_email = "你的支付宝账号";

//你的页面跳转同步返回页面文件路径 要用 http://格式的完整路径,不允许加?id=123这类自定义参数
return_url = "http://localhost:1336/return_url.aspx";

//你的服务器通知的页面文件路径 要用 http://格式的完整路径,不允许加?id=123这类自定义参数
notify_url = "http://localhost:1336/notify_url.aspx";


//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

 

2,填写订单页面,复制default.cs里面的代码,并添加自己的插入语句,然后会跳转到支付宝页面

////////////////////////////////////////////请求参数////////////////////////////////////////////

//必填参数//

string out_trade_no = DateTime.Now.ToString("yyyyMMddHHmmss");

//请与贵网站订单系统中的唯一订单号匹配
string subject = Session["title"].ToString();

//订单名称,显示在支付宝收银台里的“商品名称”里,显示在支付宝的交易管理的“商品名称”的列表里。
string body = txtbeizhu.Text;

//订单描述、订单详细、订单备注,显示在支付宝收银台里的“商品描述”里
Session["body"] = txtbeizhu.Text;
Session["price"] = LiteralPrice.Text;
string price = "0.01"; //订单总金额,显示在支付宝收银台里的“商品单价”里

string logistics_fee = "0.00";

//物流费用,即运费。
string logistics_type = "EXPRESS";

//物流类型,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS)
string logistics_payment = "SELLER_PAY";

//物流支付方式,两个值可选:SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费)

string quantity = "1";

//商品数量,建议默认为1,不改变值,把一次交易看成是一次下订单而非购买一件商品。

//选填参数//

//买家收货信息(推荐作为必填)
//该功能作用在于买家已经在商户网站的下单流程中填过一次收货信息,而不需要买家在支付宝的付款流程中再次填写收货信息。
//若要使用该功能,请至少保证receive_name、receive_address有值
//收货信息格式请严格按照姓名、地址、邮编、电话、手机的格式填写
string receive_name = txtname.Text;

//收货人姓名,如:张三
Session["receive_name"] = receive_name;
//string receive_address = "收货人地址";

//收货人地址,如:XX省XXX市XXX区XXX路XXX小区XXX栋XXX单元XXX号
//string receive_zip = "123456";

//收货人邮编,如:123456
//string receive_phone = "0571-81234567";

//收货人电话号码,如:0571-81234567
string receive_mobile = txtphone.Text;

//收货人手机号码,如:13312341234
Session["receive_mobile"] = receive_mobile;

string chengrencount = Literalchengren.Text;
string ertongcount = Literalertong.Text;
Session["chengrenertongcount"] = ertongcount + chengrencount;
//网站商品的展示地址,不允许加?id=123这类自定义参数
string show_url = "http://www.xxx.com/myorder.aspx";
//INSERT INTO Orders (TravelTitle, Counts, [Money], Linkman, Phone, [Describe], Pay, [Datetime]) VALUES ('天马岛', '2成人1儿童', '200', '张总', '15092877791', '全家', 0, #7/3/2012#);
string sql = string.Format("INSERT INTO Orders ([out_trade_no],[TravelTitle], [Counts], [Money], [Linkman], Phone, [Describe], [Datetime],[UserName],[type],[namecard]) values('" + out_trade_no + "','" + Session["title"].ToString() + "','" + Session["chengrenertongcount"].ToString() + "','" + Session["price"].ToString() + "','" + Session["receive_name"].ToString() + "','" + Session["receive_mobile"].ToString() + "','" + Session["body"].ToString() + "','" + DateTime.Now.ToString() + "','" + Session["shouji"] + "',1,'" + trresults + "')");
if (DataBase.ExecuteNonQuery(sql) > 0)
{
Response.Write("<script type='text/javascript'>alert('订单生成成功,跳转到支付宝页面!');</script>");
//Response.Redirect("Traveljingdian.aspx?yy=" + InfoClassID + "");
}
else
{
Response.Write("<script type='text/javascript'>alert('订单生成失败!');</script>");
}

////////////////////////////////////////////////////////////////////////////////////////////////

//把请求参数打包成数组
SortedDictionary<string, string> sParaTemp = new SortedDictionary<string, string>();
sParaTemp.Add("body", body);
sParaTemp.Add("logistics_fee", logistics_fee);
sParaTemp.Add("logistics_payment", logistics_payment);
sParaTemp.Add("logistics_type", logistics_type);
sParaTemp.Add("out_trade_no", out_trade_no);
sParaTemp.Add("payment_type", "1");
sParaTemp.Add("price", price);
sParaTemp.Add("quantity", quantity);
//sParaTemp.Add("receive_address", receive_address);
sParaTemp.Add("receive_mobile", receive_mobile);
sParaTemp.Add("receive_name", receive_name);
//sParaTemp.Add("receive_phone", receive_phone);
//sParaTemp.Add("receive_zip", receive_zip);
sParaTemp.Add("show_url", show_url);
sParaTemp.Add("subject", subject);

//构造标准双接口表单提交HTML数据,无需修改
Service ali = new Service();
string sHtmlText = ali.Trade_create_by_buyer(sParaTemp);
Response.Write(sHtmlText);

 

3,支付状态返回,有同步return_url.

服务热线

153 8323 9821

功能和特性

价格和优惠

网站和维护

推广和优化

微信服务号