网站转接支付宝解决方案

合集下载

H5网站接入支付宝的支付接口

H5网站接入支付宝的支付接口

H5⽹站接⼊⽀付宝的⽀付接⼝写本⽂章的⽬的是为了记录⼯作中遇到的问题,⽅便以后遇到可以迅速解决问题H5⼿机⽹站接⼊⽀付宝的⽀付接⼝,推荐使⽤⽀付宝提供的SDK来快速开发我使⽤的是SDK开发引⽤命名空间using Aop.Api;using Aop.Api.Request;using Aop.Api.Response;using Aop.Api.Util;⾸页需要定义⼀些常量static string serverUrl = "https:///gateway.do";static string app_id = "**"; //开发者的应⽤IDstatic string format = "JSON";static string charset = "utf-8";static string sign_type = "RSA2"; //签名格式static string version = "1.0";string UID = "2088102169707816";//卖家⽀付宝账户号//商户私钥static string merchant_private_key = "***";//⽀付宝公钥static string alipay_public_key = "***";这⾥的app_id,merchant_private_key,alipay_public_key 我就没有列出来了,获取的⽅法需要⾃⼰去⽀付宝平台完成⼀些操作进⾏获取在⽤户点击⽹站付款时,我们需要唤醒⽀付宝,来进⾏⽀付public string H5RequestPayWay(OrderPO order){IAopClient client = new DefaultAopClient(serverUrl, app_id, merchant_private_key, format, version, sign_type, alipay_public_key, charset, false);AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();string address= "http://m." + PathLogic1.RootDomain;request.SetReturnUrl(address+ "/WebPay/AlipayPayResult");//同步请求request.SetNotifyUrl(address + "/WebPay/AsyncPay");//异步请求var lstDetail = Context.Data.OrderDetail.Where(x => x.OrderNo == order.OrderNo).ToSelectList(x=>new { x.SkuName});StringBuilder sb = new StringBuilder();for (int i = 0; i < lstDetail.Count(); i++){sb.Append(lstDetail[i].SkuName + ",");}Content = "{" +"\"body\":\""+sb.ToString().Substring(0,sb.Length-1)+"\"," +"\"subject\":\"袋⿏巴巴商品⽀付\"," +"\"out_trade_no\":\""+order.OrderNo+"\"," +"\"timeout_express\":\"90m\"," +"\"total_amount\":"+(order.TotalAmount.Value+order.TotalFreight.Value)+"," +"\"product_code\":\"QUICK_WAP_PAY\"" +" }";//这⾥填写⼀些发送给⽀付宝的⼀些参数AlipayTradeWapPayResponse response = client.pageExecute(request);return response.Body;//这⾥会发送⼀个表单输出到页⾯中}具体发送给⽀付宝的参数,⾃⾏去查看执⾏上⾯⽅法后,买家输⼊⾃⼰的⽀付宝账号密码进⾏⽀付,⽀付成功的结果,⽀付宝会以post的⽅式异步请求你的SetNotifyUrl的地址这个SetNotifyUrl的地址必须要外⽹可以访问,⽀付宝的请求才能进来买家⽀付成功,商家修改订单状态和数据库的操作,都在异步请求中执⾏同步请求public ActionResult AlipayPayResult(){ViewBag.result = "success";return View("PayResult");}/// <summary>/// 验证通知数据的正确性/// </summary>/// <param name="out_trade_no"></param>/// <param name="total_amount"></param>/// <param name="seller_id"></param>/// <returns></returns>private SortedDictionary<string, string> GetRequestPost(){int i = 0;SortedDictionary<string, string> sArray = new SortedDictionary<string, string>();NameValueCollection coll;//Load Form variables into NameValueCollection variable.coll = Request.Form;// Get names of all forms into a string array.String[] requestItem = coll.AllKeys;for (i = 0; i < requestItem.Length; i++){sArray.Add(requestItem[i], Request.Form[requestItem[i]]);}return sArray;}/// <summary>/// 验签/// </summary>/// <param name="inputPara"></param>/// <returns></returns>public Boolean Verify(SortedDictionary<string, string> inputPara){Dictionary<string, string> sPara = new Dictionary<string, string>();Boolean verifyResult = AlipaySignature.RSACheckV1(inputPara, alipay_public_key, charset,sign_type,false);return verifyResult;}异步请求:[HttpPost]public void AsyncPay(){SortedDictionary<string, string> sPara = GetRequestPost();//将post请求过来的参数传化为SortedDictionaryif (sPara.Count > 0){AlipayTradeWayPayServer pay = new AlipayTradeWayPayServer();Boolean VerifyResult = pay.Verify(sPara);//验签if (VerifyResult){try{//商户订单号string out_trade_no = Request.Form["out_trade_no"];//⽀付宝交易号string trade_no = Request.Form["trade_no"];//⽀付⾦额decimal total_amount = Request.Form["total_amount"].ConvertType(Decimal.Zero);//实收⾦额//decimal receipt_amount = Request.Form["receipt_amount"].ConvertType(Decimal.Zero);//交易状态string trade_status = Request.Form["trade_status"];//卖家⽀付宝账号string seller_id = Request.Form["seller_id"];//商品描述string body = Request.Form["body"];//交易创建时间DateTime gmt_create = DateTime.Parse(Request.Form["gmt_create"]);//交易付款时间DateTime gmt_payment = DateTime.Parse(Request.Form["gmt_payment"]);string appid = Request.Form["app_id"];WriteError("验证参数开始");Boolean DataValidity = pay.CheckInform(out_trade_no, total_amount, seller_id, appid);//商家判断参数时候是否匹配if (DataValidity) {if (Request.Form["trade_status"] == "TRADE_FINISHED"){AlipayWayPayPO model = CreateAlipayWayPay(out_trade_no, trade_no, trade_status, gmt_create, gmt_payment);pay.PaySuccess(out_trade_no, model);//修改订单//注意://退款⽇期超过可退款期限后(如三个⽉可退款),⽀付宝系统发送该交易状态通知}else if (Request.Form["trade_status"] == "TRADE_SUCCESS"){AlipayWayPayPO model = CreateAlipayWayPay(out_trade_no, trade_no, trade_status, gmt_create, gmt_payment);pay.PaySuccess(out_trade_no, model);//修改订单//注意://付款完成后,⽀付宝系统发送该交易状态通知}else{}//——请根据您的业务逻辑来编写程序(以上代码仅作参考)——Response.Write("success"); //请不要修改或删除///////////////////////////////////////////////////////////////////////////////////////////////////////////// }}catch (Exception ex){}}else//验证失败{Response.Write("fail");}}else{Response.Write("⽆通知参数");}}。

为网站添加支付功能的选择和设置步骤

为网站添加支付功能的选择和设置步骤

为网站添加支付功能的选择和设置步骤随着电子商务的兴起,越来越多的网站需要添加支付功能,为用户提供更便捷的购物体验。

本文将介绍网站添加支付功能的选择和设置步骤,帮助网站管理员实现支付功能的快速上线。

一、支付功能选择要为网站添加支付功能,首先需要选择适合的支付接口。

以下是常见的几种选择:1. 第三方支付平台:如支付宝、微信支付、PayPal等。

这些支付平台提供完善的支付功能,并且已经被广泛应用和验证。

网站可以通过接入这些支付平台的API,快速实现支付功能。

2. 网银支付:网站可以联系银行或支付机构,申请网银支付接口。

这样的支付方式可以直接与用户的银行账户进行交互,相对安全可靠。

但是,网银支付接入相对复杂,需要商户与银行或支付机构进行协商和技术对接。

3. 电子钱包:如Apple Pay、Google Pay等。

这些电子钱包也提供了方便的支付方式,用户可以通过手机等移动设备进行支付。

网站可以选择接入这些电子钱包的支付功能,提供更多支付选择。

根据网站的实际情况和需求,选择合适的支付功能。

一般来说,第三方支付平台是最常见和方便的选择,因为这些支付平台已经具备了成熟的支付体系和支付接口。

二、支付功能设置步骤选择好支付功能后,网站管理员需要按照以下步骤进行设置:1. 注册账户:如果选择第三方支付平台,网站管理员需要先注册一个商户账户。

在注册过程中,可能需要提供相关的身份证明和企业资质。

注册成功后,会获得一个商户号和密钥,这是后续接入支付接口的必要信息。

2. 配置支付接口:根据支付接口提供的文档和指引,网站管理员需要在网站的代码中添加相应的接口调用代码。

根据接口文档,可以设置支付接口的参数,如商户号、密钥、回调地址等。

这些参数的设置通常在网站的支付配置文件或后台管理系统中进行。

3. 测试支付功能:在配置完支付接口后,网站管理员需要进行测试,确保支付功能的正常运作。

测试可以模拟用户的支付过程,验证下单、支付和回调等环节是否正常。

支付宝支付解决方案

支付宝支付解决方案

支付宝支付解决方案
首先,支付宝支付具有便捷快速的特点。

消费者可以通过支付宝App轻松实现扫码支付、付款码支付、手机网站支付等多种支付方式,无需携带现金或银行卡,实现了真正意义上的无现金支付。

对于商家来说,只需通过简单的接入流程,即可快速开通支付宝支付,为消费者提供便捷的支付体验。

其次,支付宝支付适用于多种场景。

无论是线上商城、实体店铺、餐饮美食、交通出行、生活缴费等各种消费场景,支付宝支付都能提供灵活多样的支付方式,满足消费者的支付需求。

同时,支付宝支付还支持跨境支付,为国际商家和消费者提供了便利的支付服务。

接着,商家接入支付宝支付的流程也非常简单。

首先,商家需要注册支付宝账号,并完成实名认证和企业认证。

然后,根据自身业务需求选择相应的接入方式,如线上支付、线下支付、移动支付等。

接入过程中,支付宝提供了详细的接入文档和技术支持,帮助商家快速、顺利地完成支付接入。

此外,支付宝支付还具有安全可靠的特点。

支付宝通过多重安全防护体系,保障用户账户和交易安全。

消费者在支付过程中,可以通过指纹识别、人脸识别等生物识别技术进行身份验证,有效防范支付风险。

同时,支付宝还支持多种支付方式的对账和结算,为商家提供了可靠的资金安全保障。

总的来说,支付宝支付解决方案是一种便捷、安全、灵活的支付方式,适用于多种消费场景。

对于商家来说,接入支付宝支付不仅可以提升用户支付体验,还可以拓展消费者群体,提高交易效率,实现更多商业价值。

因此,建议商家积极了解和使用支付宝支付解决方案,抓住移动支付的发展机遇,提升竞争力,实现商业增长。

支付宝代运营解决方案

支付宝代运营解决方案

支付宝代运营解决方案
支付宝代运营是指将支付宝的相关业务代理给第三方机构或个人进行管理和运营。

以下是一些支付宝代运营的解决方案。

1. 代理商:作为代理商,你可以帮助商户创建支付宝账号、设置支付功能、管理收款信息等,从而为商户提供全面的支付解决方案。

2. 营销推广:作为支付宝代运营,你可以帮助商户制定并执行支付宝相关的营销活动,比如优惠券、满减活动等,提升商户的销售额。

3. 数据分析:通过对商户的支付数据进行分析,你可以帮助商户了解客户行为、支付趋势等,从而指导商户改进业务策略,并提供个性化的服务。

4. 客户服务:作为支付宝代运营,你可以代表商户处理支付过程中的问题和投诉,提供及时的客户服务,增加商户的用户满意度。

5. 财务管理:你可以帮助商户进行收款和结算,管理商户的财务数据,提供准确的财务报表,帮助商户掌握经营状况。

需要注意的是,作为支付宝代运营,你需要具备丰富的支付宝相关知识和经验,以及良好的沟通能力和服务意识,以确保为商户提供优质的代运营服务。

电商平台支付解决方案

电商平台支付解决方案

电商平台支付解决方案电商平台支付解决方案1. 引言电商平台支付是指在电子商务平台上进行在线支付的功能,是电子商务中关键的一环。

为了确保支付流程安全、快捷和稳定,电商平台需要采用合适的支付解决方案。

本文将介绍一个可行的电商平台支付解决方案。

2. 方案概述该方案基于传统的电商平台支付模型,采用安全、可靠且易于实现的支付方式,通过接入第三方支付服务提供商来处理交易过程。

具体包括以下步骤:1. 用户选择商品,点击购买并进入结算页面。

2. 在结算页面,用户选择支付方式(如支付宝、微信支付、银联支付等)。

3. 电商平台将用户选择的支付方式和订单信息传递给第三方支付服务提供商。

4. 第三方支付服务提供商处理支付请求,并返回支付结果给电商平台。

5. 电商平台根据支付结果更新订单状态,并将支付成功的信息反馈给用户。

6. 用户完成支付流程。

3. 第三方支付服务提供商选择选择合适的第三方支付服务提供商是实施该方案的重要步骤。

以下是选择第三方支付服务提供商时需要考虑的因素:3.1 安全性第三方支付服务提供商必须具备高度可靠的安全性措施,包括数据加密、身份验证、风险控制等。

确保用户的支付信息不被泄露或篡改。

3.2 支付渠道丰富度第三方支付服务提供商应该支持多种支付渠道,以满足不同用户的支付需求。

常见的支付渠道包括支付宝、微信支付、银联支付等。

然而,由于法律和技术限制,选择符合电商平台目标用户群体的支付渠道是必要的。

3.3 手续费第三方支付服务提供商可能会向电商平台收取一定的手续费。

在选择服务提供商时,需要考虑手续费率是否合理,并综合考虑其他因素。

3.4 技术支持第三方支付服务提供商需要提供良好的技术支持,保障支付系统的可靠性和稳定性。

快速的响应时间和有效的问题解决能力是选择服务提供商时重要的考虑因素。

4. 实施过程实施电商平台支付解决方案需要以下步骤:4.1 确定需求和目标首先,明确电商平台的支付需求和目标,包括支持的支付方式、用户体验等。

个人网站如何接入支付功能_支持个人支付的第三方平台整理

个人网站如何接入支付功能_支持个人支付的第三方平台整理

个⼈⽹站如何接⼊⽀付功能_⽀持个⼈⽀付的第三⽅平台整理作为个⼈开发者,为⾃⼰的⾟苦开发的项⽬配上⽀付功能,才有盈利的盼头!但是⽬前⼤部分都需要企业资质,那对应个⼈⽽⾔如何在⽹站、应⽤中接⼊⽀付功能呢?这⾥找了⼀些不需要企业资质的第三⽅⽀付平台。

1、PayPal个⼈,企业都可以接⼊,作为⼀款主打跨境⽀付的产品,主打境外收付款,那么对于做外贸的朋友来说是⼀个不错的选择。

有⽹站,⽆⽹站,B2B商家,个⼈收款都适⽤。

⽀持的付款⽅式主打银联、信⽤卡等,付款可以及时到账。

⽤户注册后,可以在⽹站商获取⼀个PayPal账户,当客户付款后,款项会打到⽤户的PayPal的账户中,⽤户可以提现的⽅式提取。

but,提现到中国银⾏账户,会收取1.2%的⼿续费(这⼿续费也是呵呵了……)。

使⽤PayPal的主要费⽤就是⼿续费,按照⽉销售额来计算,在⽉销售额在3,000及以下时,⽀付费⽤是4.4%+0.3美元。

在API对接过程中,开发、测试、整合很⽅便。

但是,⼿续费略⾼(⽀付⼿续费+提现⼿续费),且PayPal不同于⽀付宝,更偏向于买家,如果买家有任何不满意⽽产⽣的争议,卖家将拿不到钱。

2、商派天⼯⽀持个⼈和企业接⼊。

个⼈接⼊需要实名认证,企业认证需要企业资质。

主要适⽤于电脑⽹站、H5、扫码⽀付其他场景。

⽀持的付款⽅式主要是微信、⽀付宝和京东⽀付。

付款时,⽀持扫码和弹框⽀付,由天⼯⽣成付款⼆维码,天⼯代收订单款项,⽤户以提现的⽅式提取。

使⽤费⽤主要是收取1%的⼿续费,到账周期T+2在API接⼝接⼊中,提供了沙箱环境测试,然⽽⽂档写的⽐较简陋,接⼝尚不完善。

3、paypayzhu个⼈,企业都可以接⼊。

适⽤于:电脑⽹站和⼿机⽹站。

⽀持微信、⽀付宝扫码⽀付。

订单款项直接打到⽤户的微信、⽀付宝账号中,平台不留存资⾦。

使⽤费⽤包括29元/⽉的⽉租,和每笔订单0.3%的⼿续费。

API接⼝接⼊很简单,且⽀持API接⼝回调,有代码⽰例作为参考。

电子商务平台的跨境支付解决方案

电子商务平台的跨境支付解决方案

电子商务平台的跨境支付解决方案随着互联网的快速发展,电子商务平台已经成为了全球商业交流的重要组成部分。

在这个全球化时代,跨境支付问题成为了电子商务平台发展的重要瓶颈。

为了解决这个问题,相关行业推出了各种跨境支付解决方案,以便更好地促进全球贸易。

一、什么是跨境支付跨境支付指的是在不同国家或地区之间进行交易时进行的支付活动。

传统的跨境支付方式包括电汇、汇票和信用证等,但是这些方式存在着支付费用高、时间长、操作复杂等问题,无法满足快速、便捷、安全的支付需求。

二、跨境支付的挑战1.货币兑换:不同国家的货币存在汇率差异,导致支付过程涉及货币兑换。

这需要考虑汇率波动、手续费以及支付金额的实际折合问题。

2.法律合规:不同国家有不同的金融监管政策和法律法规,涉及跨境支付的企业需要遵守各国的合规要求。

3.安全风险:跨境支付涉及到隐私数据和财务信息的传输,相对于国内支付来说,安全风险更高。

支付平台需要采取一系列的安全措施来保护交易双方的利益。

三、跨境支付解决方案1.支付平台合作:电子商务平台可以与国际支付服务提供商合作,利用其全球支付网络和技术优势,为电子商务用户提供跨境支付解决方案。

2.货币兑换服务:合作的支付平台可以提供实时的货币兑换服务,根据实时汇率进行货币转换,并确保支付金额的准确性。

3.合规支持:支付平台需要与各国金融监管机构合作,确保支付业务的合规性。

这包括KYC(了解客户)和反洗钱等方面的合规要求。

4.支付安全保障:跨境支付平台需要采用高级的加密技术,保护用户的交易安全。

同时,建立完善的防欺诈系统,识别和阻止潜在的欺诈行为。

5.用户体验优化:支付体验是电子商务平台成功的重要因素之一。

支付平台可以通过简化支付流程、提供多种支付方式和多语种支持等方式来优化用户体验。

四、案例分析:PayPalPayPal是一个全球性的跨境支付平台,它提供了一系列解决方案,帮助电子商务平台解决跨境支付问题。

PayPal与各国银行和支付机构合作,实现了全球范围内的支付覆盖。

将网站转换为移动设备友好的

将网站转换为移动设备友好的

将网站转换为移动设备友好的方式随着移动互联网的广泛应用,越来越多的人使用手机或平板电脑来上网。

移动设备以其方便性和高效性逐渐取代了传统的电脑,成为现代人必不可少的工具。

因此,将网站转换为移动设备友好的方式成为了一种必然趋势。

1、改变页面布局PC端网站一般采用较大的分辨率和具有复杂的页面结构,造成了在不同尺寸的移动设备上无法适配的问题。

所以在将网站转换为移动设备友好的方式上,首要的是改变页面布局,使其在移动设备上也能够正常浏览。

这可以通过将网站分成响应式布局和适配性布局两种方式解决。

2、响应式布局响应式布局是指根据不同屏幕尺寸和设备(如PC、手机、平板)自动调整页面的布局和内容大小来适应屏幕大小。

这种布局为不同移动设备下的用户提供了更好的用户体验,无需在移动设备和PC端之间,来回切换。

3、适配布局适配布局是指设计两个以及以上的版本,通过识别不同的设备分配合适的版本进行展示,确保不同设备下页面都有最佳的显示效果。

通过适配布局来将PC端的网站转换成移动设备端的,可以更好地展示网站的内容和形式,从而补偿响应式布局的不足。

4、压缩页面元素移动设备上的流量是宝贵的,所以将网站转换为移动设备友好的方式之一是通过压缩页面元素来减少页面加载时间,提高页面的加载速度和用户的阅读体验。

5、减少广告和图片广告和图片的加载速度较慢,而且在移动设备上还会占用较大的空间,使加载时间更长,影响用户体验。

因此,在将网站转换为移动设备友好的方式上,可以通过减少广告和图片的数量和大小来提高页面的加载速度和用户阅读体验。

6、提供简洁明了的导航移动设备的屏幕相对较小,而且用户常常在路上或其他位置使用移动设备,导致其操作时间和浏览深度有限。

因此,在将网站转换为移动设备友好的方式上,设计简洁、明了的导航,能够在极短的时间内,为用户提供所需的重要信息和功能,提高用户体验。

7、优化网站速度不良的网站速度会给用户使用体验带来负面影响,并会对搜索引擎排名造成影响。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

大型网上购物系统除了能让会员选择货到付款结账方式外,还应该提供一些更方便快捷的网上支付方式。

如果网上商店没有足够的实力提供会员直接在网站中建立现金账户的功能,就可以将订单信息转接到支付宝,让会员从支付宝付款。

当然就算会员可以在网站上建立自己的现金账户,提供支付宝支付功能也不失为另一种方便快捷的支付方式,这可以给客户提供更多可选的支付方式。

首先,网上购物系统必须与支付宝公司签订合作协议,以确保从本购物网站上传到支付宝网站上的订单信息能被正确接收。

当会员于购物网站上买下一系列商品并选择支付宝付款方式后,购物系统即将会员购物的订单信息转发到支付宝,网站页面也会转到支付宝的付款页面。

此时,支付宝页面会发送一个验证信息到本网站以确认支付宝正确收到订单信息。

会员于支付宝网站付款完成后,网站页面会重新跳回本购物网站,同时支付宝会将已付款的订单信息发回本网站以便对本购物网站的数据库进行必要的修改操作。

另外本网站还需要向支付宝网站发送一个返回信息,告知支付宝本系统已正确收到付款完毕的订单信息并且已经完成对数据的处理操作。

向支付宝网站传送订单信息时主要参数的含义:gateway :支付接口service:识别是何接口实现何功能的表示seller_email:商家签约时的支付宝账号,即收款的支付宝账号key:安全校验码,与partner是一组partner:商户ID,合作伙伴IDsign_type:加密类型_input_charset:编码类型show_url:展示地址,即在支付宝页面时商品名称旁边的“详情”的链接地址out_trade_no:会员订单编号,订单编号必须在本系统中保持唯一subject:商品名称,也可称为订单名称,该接口并不是单一的只能买一样东西,可把一次支付当作一次下订单body:商品描述,即备注total_fee:商品价格,也可称为订单的总金额源码分析(C#):首先必须建立一个通知页面(Notify.aspx)和一个返回页面(Return.aspx)以接受并验证从支付宝返回的信息并对数据库中相应的订单信息做修改处理操作。

Notify.aspx.cs代码using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Text;using System.Collections.Specialized;using System.IO;using Gateway;///<summary>///创建该页面文件时,请留心该页面文件中无任何HTML代码及空格。

///该页面称作“通知页”,是异步被支付宝服务器所调用。

///当支付宝的订单状态改变时,支付宝服务器则会自动调用此页面,因此请做好自身网站订单信息与支付宝上的订单的同步工作///</summary>public partial class Alipay_Notify : System.Web.UI.Page {protected void Page_Load(object sender, EventArgs e){string alipayNotifyURL = "https:///co operate/gateway.do?service=notify_verify";//string alipayNotifyURL = "http://notify.alipay.co m/trade/notify_query.do?";//此路径是在上面链接地址无法起作用时替换使用。

string partner = ""; //partner合作伙伴id(必须填写)string key = ""; //partner 的对应交易安全校验码(必须填写)string _input_charset = "utf-8";//编码类型,完全根据客户自身的项目的编码格式而定,千万不要填错。

否则极其容易造成MD5加密错误。

alipayNotifyURL = alipayNotifyURL + "&partner=" + partner + "&notify_id=" + Request.Form["notify_id"];//获取支付宝ATN返回结果,true是正确的订单信息,false 是无效的string responseTxt = AliPay.Get_Http(alipayNotifyUR L, 120000);//*******加密签名程序开始*******int i;NameValueCollection coll;//Load Form variables into NameValueCollection vari able.coll = Request.Form;// Get names of all forms into a string array.String[] requestarr = coll.AllKeys;//进行排序;string[] Sortedstr = AliPay.BubbleSort(requestarr);//构造待md5摘要字符串;StringBuilder prestr = new StringBuilder();for (i = 0; i < Sortedstr.Length; i++){if (Request.Form[Sortedstr[i]] != "" && Sortedstr[i] != "sign" && Sortedstr[i] != "sign_type"){if (i == Sortedstr.Length - 1){prestr.Append(Sortedstr[i] + "=" + Reques t.Form[Sortedstr[i]]);}else{prestr.Append(Sortedstr[i] + "=" + Reques t.Form[Sortedstr[i]] + "&");}}}prestr.Append(key);string mysign = AliPay.GetMD5(prestr.ToString(), _i nput_charset);//*******加密签名程序结束*******string sign = Request.Form["sign"];if (mysign == sign && responseTxt == "true") //验证支付发过来的消息,签名是否正确,只要成功进如这个判断里,则表示该页面已被支付宝服务器成功调用//但判断内出现自身编写的程序相关错误导致通知给支付宝并不是发送success的消息或没有更新客户自身的数据库的情况,请自身程序编写好应对措施,否则查明原因时困难之极{if (Request.Form["trade_status"] == "WAIT_BUYER_ PAY")// 判断支付状态_等待买家付款(文档中有枚举表可以参考){//更新自己数据库的订单语句,请自己填写一下string strOrderNO = Request.Form["out_trade_ no"];//订单号string strPrice = Request.Form["total_fee"]; //金额如果你申请了商家购物卷功能,在返回信息里面请不要做金额的判断,否则会校验通过不了。

}else if (Request.Form["trade_status"] == "TRADE_ FINISHED" || Request.Form["trade_status"] == "TRADE_SUCCES S")// 判断支付状态_交易成功结束(文档中有枚举表可以参考){//更新自己数据库的订单语句,请自己填写一下string strOrderNO = Request.Form["out_trade_ no"];//订单号string strPrice = Request.Form["total_fee"];//金额}else{//更新自己数据库的订单语句,请自己填写一下}Response.Write("success"); //返回给支付宝消息,成功,请不要改写这个success//success与fail及其他字符的区别在于,支付宝的服务器若遇到success时,则不再发送请求通知(即不再调用该页面,让该页面再次运行起来),//若不是success,则支付宝默认没有收到成功的信息,则会反复不停地调用该页面直到失效,有效调用时间是24小时以内。

//最好写TXT文件,以记录下是否异步返回记录。

////写文本,纪录支付宝返回消息,比对md5计算结果(如网站不支持写txt文件,可改成写数据库)//string TOEXCELLR = "MD5结果:mysign=" + mysign + ",sign=" + sign + ",responseTxt=" + responseTxt;//StreamWriter fs = new StreamWriter(Server.MapPath("Notify_DATA/" + DateTime.Now.ToString().Replace(":", "")) + ".txt", false, System.Text.Encoding.Default);//fs.Write(TOEXCELLR);//fs.Close();}else{Response.Write("fail");//最好写TXT文件,以记录下是否异步返回记录。

相关文档
最新文档