asp.net mvc paypal web网站支付

2024-05-11 13:32
文章标签 网站 web 支付 mvc asp net paypal

本文主要是介绍asp.net mvc paypal web网站支付,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

/// <summary>
        /// 生成提交表单
        /// </summary>
        /// <param name="businessName">收款账号</param>
        /// <param name="dataTitle">标题</param>
        /// <param name="notifyUrl">及时回调地址</param>
        /// <param name="returnUrl">用户返回地址</param>
        /// <param name="cancelUrl">用户取消支付地址</param>
        /// <param name="price">价格</param>
        /// <param name="orderNo">订单号</param>
        /// <returns>string</returns>
        public string GetPayPalFormHtml(string businessName, string dataTitle, string notifyUrl, string returnUrl, string cancelUrl, decimal price, string orderNo)
        {
            StringBuilder sb = new StringBuilder();
            sb.AppendFormat("支付跳转中,请稍后。。。");
            //https://www.sandbox.paypal.com/cgi-bin/webscr
            //https://www.paypal.com/cgi-bin/webscr
            sb.AppendFormat("<form id=\"alipaysubmit\" name=\"alipaysubmit\" action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\">");
            sb.AppendFormat(" <input type=\"hidden\" name=\"cmd\" value=\"_xclick\">");
            sb.AppendFormat(" <input type=\"hidden\" name=\"business\" value=\"{0}\">", businessName);
            sb.AppendFormat(" <input type=\"hidden\" name=\"item_name\" value=\"{0}\">", dataTitle);
            sb.AppendFormat(" <input type=\"hidden\" name=\"amount\" value=\"{0}\">", price.ToDecimal2Yen());
            sb.AppendFormat(" <input type=\"hidden\" name=\"currency_code\" value=\"USD\">");
            sb.AppendFormat(" <input type=\"hidden\" name=\"lc\" value=\"US\">");
            sb.AppendFormat(" <input type=\"hidden\" name=\"no_shipping\" value=\"1\">");
            sb.AppendFormat(" <input type=\"hidden\" name=\"notify_url\" value=\"{0}\">", notifyUrl);
            sb.AppendFormat(" <input type=\"hidden\" name=\"return\" value=\"{0}\">", returnUrl);
            sb.AppendFormat(" <input type=\"hidden\" name=\"cancel_return\" value=\"{0}\">", cancelUrl);
            sb.AppendFormat(" <input type=\"hidden\" name=\"custom\" value=\"{0}\">", orderNo);
            sb.AppendFormat("   <input type=\"hidden\" name=\"charset\" value=\"utf-8\" />");
            sb.AppendFormat("</form>");
            sb.Append("<script>document.oncontextmenu = function (){return false};setTimeout(function () {document.forms['alipaysubmit'].submit(); }, 1000);</script>");
            return sb.ToString();

        }

        /// <summary>
        /// 支付完成返回地址
        /// </summary>
        /// <returns></returns>
        public ActionResult PayPalOrderReturn()
        {
            try
            {
                //订单号
                string orderNo= Request["custom"].ToString2();
                //支付价格
                decimal price = Request["mc_gross"].ToDecimal2();
                //支付账号
                string business = Request["business"].ToString();
                //客户有已认证的PayPal账户
                string payerStatus = Request["payer_status"].ToString();
                //付款状态
                string paymentStatus = Request["payment_status"].ToString2();
                //付款状态只能为“Completed”才是处理成功,http://www.cnblogs.com/toosuo/archive/2012/12/18/2823526.html  参考状态
                if (paymentStatus == "Completed" && business == ACCOUNT)  //ACCOUNT为收款账号
                {
                   //处理支付成功逻辑
                }
                else
                {
                    throw new Exception("支付失败信息有误");
                }
                return RedirectToAction("PaySuccess", new { orderNo= orderNo});
            }
            catch (Exception ex)
            {
                  throw new Exception("支付失败信息有误");
            }
        }

        /// <summary>
        /// 支付完成及时回调地址
        /// </summary>
        /// <returns></returns>
        public ActionResult PayPalOrderNotify()
        {
            try
            {

                //订单号
                string orderNo= Request["custom"].ToString2();
                //支付价格
                decimal price = Request["mc_gross"].ToDecimal2();
                //支付账号
                string business = Request["business"].ToString();
                //客户有已认证的PayPal账户
                string payerStatus = Request["payer_status"].ToString();
                //付款状态
                string paymentStatus = Request["payment_status"].ToString2();
                //付款状态只能为“Completed”才是处理成功,http://www.cnblogs.com/toosuo/archive/2012/12/18/2823526.html  参考状态
                if (paymentStatus == "Completed" && business == ACCOUNT)
                {

//处理支付成功逻辑
                }
                else
                {
                    throw new Exception("支付失败信息有误");
                }
                return RedirectToAction("PaySuccess", new { orderNo= orderNo});
            }
            catch (Exception ex)
            {
                  throw new Exception("支付失败信息有误");
            }
        }

        /// <summary>
        /// 用户取消支付的订单
        /// </summary>
        /// <returns></returns>
        public ActionResult PayPalOrderCancel()
        {
            //处理取消逻辑
        }


这篇关于asp.net mvc paypal web网站支付的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/979670

相关文章

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

在ASP.NET项目中如何使用C#生成二维码

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整... 目录创建前端页面(Index.cshtml)后端二维码生成逻辑(Index.cshtml.cs)总结

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

Python Web框架Flask、Streamlit、FastAPI示例详解

《PythonWeb框架Flask、Streamlit、FastAPI示例详解》本文对比分析了Flask、Streamlit和FastAPI三大PythonWeb框架:Flask轻量灵活适合传统应用... 目录概述Flask详解Flask简介安装和基础配置核心概念路由和视图模板系统数据库集成实际示例Stre

解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题

《解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题》:本文主要介绍解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4... 目录未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘打开pom.XM

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho