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

相关文章

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

如何解决Spring MVC中响应乱码问题

《如何解决SpringMVC中响应乱码问题》:本文主要介绍如何解决SpringMVC中响应乱码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC最新响应中乱码解决方式以前的解决办法这是比较通用的一种方法总结Spring MVC最新响应中乱码解

Spring MVC使用视图解析的问题解读

《SpringMVC使用视图解析的问题解读》:本文主要介绍SpringMVC使用视图解析的问题解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC使用视图解析1. 会使用视图解析的情况2. 不会使用视图解析的情况总结Spring MVC使用视图

基于@RequestParam注解之Spring MVC参数绑定的利器

《基于@RequestParam注解之SpringMVC参数绑定的利器》:本文主要介绍基于@RequestParam注解之SpringMVC参数绑定的利器,具有很好的参考价值,希望对大家有所帮助... 目录@RequestParam注解:Spring MVC参数绑定的利器什么是@RequestParam?@

Spring MVC跨域问题及解决

《SpringMVC跨域问题及解决》:本文主要介绍SpringMVC跨域问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录跨域问题不同的域同源策略解决方法1.CORS2.jsONP3.局部解决方案4.全局解决方法总结跨域问题不同的域协议、域名、端口

SpringBoot基于沙箱环境实现支付宝支付教程

《SpringBoot基于沙箱环境实现支付宝支付教程》本文介绍了如何使用支付宝沙箱环境进行开发测试,包括沙箱环境的介绍、准备步骤、在SpringBoot项目中结合支付宝沙箱进行支付接口的实现与测试... 目录一、支付宝沙箱环境介绍二、沙箱环境准备2.1 注册入驻支付宝开放平台2.2 配置沙箱环境2.3 沙箱

基于.NET编写工具类解决JSON乱码问题

《基于.NET编写工具类解决JSON乱码问题》在开发过程中,我们经常会遇到JSON数据处理的问题,尤其是在数据传输和解析过程中,很容易出现编码错误导致的乱码问题,下面我们就来编写一个.NET工具类来解... 目录问题背景核心原理工具类实现使用示例总结在开发过程中,我们经常会遇到jsON数据处理的问题,尤其是

web网络安全之跨站脚本攻击(XSS)详解

《web网络安全之跨站脚本攻击(XSS)详解》:本文主要介绍web网络安全之跨站脚本攻击(XSS)的相关资料,跨站脚本攻击XSS是一种常见的Web安全漏洞,攻击者通过注入恶意脚本诱使用户执行,可能... 目录前言XSS 的类型1. 存储型 XSS(Stored XSS)示例:危害:2. 反射型 XSS(Re

Node.js net模块的使用示例

《Node.jsnet模块的使用示例》本文主要介绍了Node.jsnet模块的使用示例,net模块支持TCP通信,处理TCP连接和数据传输,具有一定的参考价值,感兴趣的可以了解一下... 目录简介引入 net 模块核心概念TCP (传输控制协议)Socket服务器TCP 服务器创建基本服务器服务器配置选项服