斌、朵♫恋 » Download » 。◕‿◕。支付宝接口(asp-支持UTF8、GB2312)。◕‿◕。
支付宝接口签约地址(免费):https://www.alipay.com/himalayas/practicality_customer.htm?customer_external_id=C4335324344127901113&market_type=from_agent_contract&pro_codes=26A533A9D11BD074727C1991119AA03E
这个接口UTF-8,GB2312编码都通用。(支付宝官方的只发出了GB2312版的。)
用法很简单,直接调用类就可以了。
使用说明:此类适合于utf-8,gb2312,但是使用时需要调整文本自身编码。默认utf-8
*******************************************************
重要:
关于编码。。程序默认 UTF-8
完美支持 GB2312
修改编码 Qlwz_AliPay 类中的 Q_Charset 一定要改成 需要修改的编码
所有相关文件都要检查是否是要修改的编码
*******************************************************
强烈建议,相关资料都写在类中!!!!!!!
具体使用方法请查看 演示文件!!!!!!*******************************************************
演示文件说明:
Cls_AliPay.asp ----- 主要文件 类
create_direct_pay_by_user.asp ----- 即时到账接口演示
trade_create_by_buyer.asp ----- 标准双接口演示
Notify_Url.asp ----- 跳转回来的处理(get)
Return_url.asp ----- 服务器返回信息处理(post)
*******************************************************
用法:
Dim AliPay, AliPayUrl
Set AliPay = New Qlwz_AliPay
'**************以下部分建议在类中设置**************
AliPay.PartnerID = "" '填写对应支付宝账户的合作者身份ID
AliPay.SellerEmail = "" '请填写支付宝签约帐户
AliPay.SignCode = "" '填写对应支付宝帐户的安全校验码
AliPay.NotifyUrl = "http://....../Notify_Url.asp" '交易过程中服务器通知的页面,,,绝对路径,要求可以访问
AliPay.ReturnUrl = "http://....../Return_url.asp" '付完款后跳转的页面,,,绝对路径,要求可以访问
AliPay.Service = "create_direct_pay_by_user" 'create_direct_pay_by_user (即时到账) , trade_create_by_buyer 标准双接口
AliPay.Charset = "UTF-8" '编码 默认UTF-8
'**************以上部分建议在类中设置**************
AliPay.Subject = "测试商品" '商品名称
AliPay.Body = "商品描述" '商品描述
AliPay.Price = "0.01" 'price商品单价 0.01~50000.00 , 注:不要出现3,000.00,价格不支持","号
AliPay.Quantity = "1" '商品数量
'**************以下部分可以在类中设置**************
AliPay.Out_Trade_No = Year(Now())&Month(Now())&Day(Now())&Hour(Now())&Minute(Now())&Second(Now())'按时间获取的订单号
AliPay.Discount = "0" '商品折扣
AliPay.Paymethod = "directPay" '赋值:bankPay(网银);cartoon(卡通); directPay(余额)
'///////////////////////以下是标准双接口设置的//////////////////////////////
'标准双接口无论如何第一组都要保留,不可以为空
'第一组
AliPay.logistics_fee = "0.00" '物流配送费用 0.00
AliPay.logistics_payment = "BUYER_PAY" '物流配送费用付款方式:SELLER_PAY(卖家支付) BUYER_PAY(买家支付) BUYER_PAY_AFTER_RECEIVE(货到付款)
AliPay.logistics_type = "EXPRESS" '物流配送方式:POST(平邮)、EMS(EMS) EXPRESS(其他快递)
'如果需要多添加几组物流方式,可以增加第二组物流参数,如果不需要,可以为空
AliPay.logistics_fee_1 = "" '物流配送费用 0.00
AliPay.logistics_payment_1= "" '物流配送费用付款方式:SELLER_PAY(卖家支付) BUYER_PAY(买家支付) BUYER_PAY_AFTER_RECEIVE(货到付款)
AliPay.logistics_type_1 = "" '物流配送方式:POST(平邮) EMS(EMS) EXPRESS(其他快递)
'如果需要多添加几组物流方式,可以增加第三组物流参数,如果不需要,可以为空 ---- 没有第二组不能有第三组
AliPay.logistics_fee_2 = "" '物流配送费用 0.00
AliPay.logistics_payment_2= "" '物流配送费用付款方式:SELLER_PAY(卖家支付) BUYER_PAY(买家支付) BUYER_PAY_AFTER_RECEIVE(货到付款)
AliPay.logistics_type_2 = "" '物流配送方式:POST(平邮) EMS(EMS) EXPRESS(其他快递)
'以下是可选的参数 如果没有可以为空。注意:姓名、联系地址和邮政编码 这三项要么都为空,要么都不能为空。
AliPay.ShowUrl = "www.94qing.com" '商品的演示地址
AliPay.receive_name = "" '收货人姓名
AliPay.receive_address = "" '收货人地址
AliPay.receive_zip = "" '邮编5 位戒6 位数字组成
AliPay.receive_phone = "" '收货人电话
AliPay.receive_mobile = "" '收货人手机 必须是11 位数字
AliPay.buyer_email = "" '买家的支付宝账号
'///////////////////////以上是标准双接口设置的//////////////////////////////
AliPayUrl = AliPay.GetUrl()
Set AliPay = Nothing
Response.Redirect AliPayUrl '跳转到支付页
Notify_Url.asp-----------------说明
post方式访问。。
Dim AliPay, returnTxt
Set AliPay = New Qlwz_AliPay
'Notify_Url 返回 True 或 Flase
'返回 True 或 Flase 后需要进一步判断才可以写入数据库!!!
If AliPay.Notify_Url Then
trade_status = request.Form("trade_status")
out_trade_no = Request.Form("out_trade_no")
If trade_status = "WAIT_BUYER_PAY" Then
'等待买家付款 ------- 仅对标准双接口可以用
returnTxt = "成功!"
ElseIf trade_status = "WAIT_SELLER_SEND_GOODS" Then
'买家付款成功,等待卖家发货 ------- 仅对标准双接口可以用
returnTxt = "成功!"
ElseIf trade_status = "WAIT_BUYER_CONFIRM_GOODS" Then
'卖家已发货等待买家确认 ------- 仅对标准双接口可以用
returnTxt = "成功!"
ElseIf trade_status = "TRADE_FINISHED" Then
'交易成功结束 ------- 通用
returnTxt = "成功!"
Else
'其他交易状态通知情况
returnTxt = "成功!"
End If
response.write returnTxt
Else
response.write "失败!" '这里添加处理函数
End If
Set AliPay = Nothing
Return_url.asp-----------------说明
get方式访问。。
Dim AliPay
Set AliPay = New Qlwz_AliPay
'Return_url 返回 True 或 Flase
If AliPay.Return_url Then
response.write "成功!" '这里添加处理函数
Else
response.write "失败!" '这里添加处理函数
End If
Set AliPay = Nothing
=======================================
关于Notify_Url和Return_url 请查看官方相关资料
=======================================
*******************************************************
3、对支付成功的订单信息,进行数据库的操作。
返回的机制有两种:
一种 return_url 即时返回,此返回是get方式。
二种 notify_url 通知返回,此返回时post方式,进行服务器点对点的通知机制。
注意:返回的地址中不能自定义携带参数。例如 http://www.alipay.com/return_Alipay_Notify.asp?xx=test
更多有关返回机制及区别请查看文档。******************************************************
4、如果获得返回信息
在指定的两种返回接收的文件中 get或post获得
例如:return_url:返回设置文件中的return_Alipay_Notify.asp,
商户网站中传递给支付宝的订单号码-------request("out_trade_no") ,
价格-------request("price")
notify_url:返回设置文件中的Alipay_Notify.asp,
商户网站中传递给支付宝的订单号码-------request("out_trade_no") ,
价格-------request("price")******************************************************
5、为什么我的买家付款的钱到账了,而买家充值账户内没有得到货币?
首先确定接口中是否有做通知返回的异步处理,如果只是单纯的使用return_url 参数。
那么这种客户端的操作没有办法控制,重定向的过程中可能浏览器关闭等其它原因,造成页面不能被执行,进而数据库的操作语句没有被执行。******************************************************
6、如果两种方式都设置,就要判断交易的订单是否有更新过,因为两种返回机制不同。可能同时返回、或者有先后,注意订单更新时候要判断订单不能个重复更新。
买家付完款(trade_status=TRADE_FINISHED)在此状
态下进行数据库的更新。并返回给支付宝success。若没有得到success。******************************************************
« 2010-11-18Z-Blog插件:评论内容显示评论者最新文章 »
发表评论: