支付宝 asp.net 接口

  不久的将来,网上电子交易将成为一种趋势,很多商业网站都将集成电子支付功能,本篇文章结合Asp.Net技术来说明网站集成支付宝的过程。
如果网站采用GB2312编码,要实现实物物品交易的话,首先,到支付宝官方网站 [url]www.alipay.com[/url]下载“实物物品交易服务”的支付宝开发文档和“aspx.net实物物品交易接口(gbk)”的Demo。仔细阅读开发文档,文档中主要的两部分是实物交易接口说明和通知接口说明,在集成的时候我们的大部分疑问都可以从文档中得到解答。
在集成时,货物交易操作将涉及到以下不能为空的参数:
Gateway – 支付宝对外接口
Service –  trade_create_by_buyer
Partner – 商家合作id
sign_type – 签名方式
out_trade_no – 订单流水号,由页面时间生成的一串数字
subject – 商品名称
body - 商品描述
quantity - 购买数量
price - 商品单价
show_url - 商品展示地址
seller_email - 卖家支付宝ID
key - 安全校验码(密钥)
return_url - 页面跳转通知地址
notify_url - 服务器通知地址
logistics_type - 物流类型
logistics_fee - 物流费用
logistics_payment - 物流支付类型
payment_type - 支付类型
        下载的Demo中有一份写好的接口CS文件,我们只要调用CreatUrl方法就可以得到支付宝所接受的调转地址,但是在所有的参数中,并不是所有的参数的数值都是动态产生的,对固定的一个网站而言,许多参数都可以抽取出来放入web.config中,这样做可以适应外部参数的改变。因为部分参数写入了web.config中,我们将重写CreatUrl方法,构造另外一个名为funcCreatUrl的方法。在funcCreatUrl方法中,从web.config读取以下参数值:
Gateway – 支付宝对外接口( [url]https://www.alipay.com/cooperate/gateway.do[/url]?)
Service – trade_create_by_buyer
Partner – 商家合作id
sign_type – 签名方式
payment_type - 支付类型
key - 安全校验码(密钥)
return_url - 页面跳转通知
notify_url - 服务器通知地址
获取跳转地址的时候,传给funcCreatUrl的参数就只剩下下面10个参数:
out_trade_no – 订单流水号
subject – 商品名称
body - 商品描述
price - 商品单价
show_url - 商品展示地址
seller_email - 卖家支付宝ID
logistics_type - 物流类型
logistics_fee - 物流费用
logistics_payment - 物流支付类型
quantity - 购买数量
这10个参数都是根据每个所要出售的商品产生或购买者选定产生的动态值。
    集成支付宝的时候有两点需要注意的:一、partner id和key需要到 [url]www.alipay.com[/url]上申请;二、注意使用一致的URL编码方式。第二点十分重要,因为发送支付宝请求的时候,支付宝会验证前面的参数所产生的sign值是否与传入的sign值一致,只要有丝毫的不同都不能通过支付宝的验证,下面用例子来说明。
验证不通过时出现下面提示信息:
调试错误,请回到请求来源地,重新发起请求.
错误代码ILLEGAL_SIGN
说明:如果您不是因为本接口集成调试而看见该错误提醒,请联系本次请求来源网站,本错误属于网站集成接口的错误。
我们来看看接口是如何组织加密的。
经过组织的请求字符串:
Body=马horse. 
&logistics_fee=0.01&logistics_payment=BUYER_PAY&logistics_type=POST&notify_url=http://127.0.0.1/manageru/Alipay_Notify.aspx&out_trade_no=20077212357&partner=2088002029290264&payment_type=1&price=0.01&quantity=1&return_url=http://127.0.0.1/manageru/Alipay_Return.aspx&seller_email=bit-4@163.com&service=trade_create_by_buyer&show_url=http://127.0.0.1/manageru/Prodcontent.aspx?sid=633203732934218750113&subject=马 horse.
上面的字符串加上key(kuip37avpflqhb94zdbxq79cd6jlacti),用CS文件里的GetMD5加密后会得到类似a0b664db915c715052992086cf566e20这样一串字符,最后发出去的请求字符串为:
body=马 horse. 
&logistics_fee=0.01&logistics_payment=BUYER_PAY&logistics_type=POST&notify_url=http://127.0.0.1/manageru/Alipay_Notify.aspx&out_trade_no=20077212357&partner=2088002029290264&payment_type=1&price=0.01&quantity=1&return_url=http://127.0.0.1/manageru/Alipay_Return.aspx&seller_email=bit-4@163.com&service=trade_create_by_buyer&show_url=http://127.0.0.1/manageru/Prodcontent.aspx?sid=633203732934218750113&subject=马 horse.
&sign=a0b664db915c715052992086cf566e20&sign_type=MD5
        请求发出去以后,其他一切交易操作将在支付宝帐号内进行,网站保存的交易状态只限于检查请求是否成功发出,虽然文档里有通知接口,但支付宝论坛内传出来的消息说这个接口已经不能被外部网络使用了,希望支付宝能重开这个接口。
支付宝接口 asp.net c#支付宝接口详细代码   支付宝Payto接口的C#.net实现方法。支付宝现在这种支付方式比较多象网银在线等使用的方法都是url验证,就是通过url参数和一个这些url参数的md5编码来确认这个连接的正确性,支付宝在你购买成功后跳转自定义连接的时候会传2次过来,第一次是数据底层请求,第二次是web请求,而只有第一次有验证码,这个只能通过记录下来才看的到,因为两次请求间隔很小,如果光显示的话最后的结果是被第二次覆盖了的。所以在接收的时候就要设定接收条件,一种是没有notify_type参数的,一种是有的。   我们先来看一下创建一个连接地址 t1=ConfigurationSettings.AppSettings["interface"];//支付接口,就是给的一个连接地址   t2=ConfigurationSettings.AppSettings["account"];//支付宝帐户你的帐户   t3=ConfigurationSettings.AppSettings["password"];//安全校验码,设置的商家验证码   t4="images/logo_zfbsmall.gif";//按钮图片地址   t5="test";//悬停说明   cmd="0001";//默认   subject="item";//商品名称   body="decrip";//描述   order_no=;//定单号,用户自己生成,方便自己管理 prices=100;//价格0.01~50000.00   rurl="http://www.xxx.com/";//商品展示网址   types="1";//1:商品购买2:服务购买3:网络拍卖4:捐赠   number="1";//购买数量   transport="3";//1:平邮2:快递3:虚拟物品   ordinary_fee="";//平邮运费   express_fee="";//快递运费   readonlys="true";//交易信息是否只读   buyer_msg="";//买家给卖家的留言   buyer="";//买家Email   buyer_name="";//买家姓名   buyer_address="";//买家地址   buyer_zipcode="";//买家邮编   buyer_tel="";//买家电话号码   buyer_mobile="";//买家手机号码   partner=ConfigurationSettings.AppSettings["partenid"];//合作伙伴ID,这个是固定的   上面就是要提供得基本信息,然后就是生成支付宝得连接,也就是给支付宝提供一条带验证的购买信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值