C#支付宝支付接口H5版(手机网页支付)

摘要:
如果有多个产品,请将产品描述字符串相加并传递给正文。“,”+“subject”:“产品描述”,“+”“out_trade_No”:“商户的唯一订单,请填写项目中生成的唯一订单号”,”+”“timeout_express”:“+timeout_eexpress+”“,”“+””“total_aunt”:“+Aamount+”,“+”“Product_code”:“+method+”“+“}”;AlipayTradeWapPayResponseresponse=client.pageExecute;stringform=响应.Body.Substring;returnform;}/////支付宝异步回调专用//////<paramname=“notify_time”˃通知时间//开发人员的app_id//<paramname=“charset”˃编码格式/<paramname=”version“˃接口版本/签名类型˂/签名名称=“trade_no”˃支付宝交易号//商户订单号//买家支付宝用户号˃//买家的支付宝帐户//卖家的支付宝用户帐户//卖家支付宝帐户//交易状态//订单金额//已付金额//票据金额//付款金额˃///˂paramname=”subject“&

接口官方文档 https://docs.open.alipay.com/203/107090/

首先在Nuget 安装 Alipay

     /// <summary>
        /// 支付宝支付
        /// </summary>
        /// <param name="model"></param>
        /// <param name="configPath"></param>
        /// <returns></returns>
        public static string Alipay()
        {
            string OrderNumber = "alipay" + DateTime.Now.ToString("yyyyMMddHHmmss");
            string app_id = "你的app_id";
            string merchant_private_key = "你的应用私钥";
            string alipay_public_key = "你的支付宝公钥";
            string timeout_express = "30m";//订单有效时间(分钟)
            string postUrl = "https://openapi.alipay.com/gateway.do";
            string sign_type = "RSA2";//加签方式 有两种RSA和RSA2 我这里使用的RSA2(支付宝推荐的)
            string version = "1.0";//固定值 不用改
            string format = "json";//固定值
            string Amount = "0.01";//订单金额
            string method = "QUICK_WAP_WAY";//调用接口 固定值 不用改
            IAopClient client = new DefaultAopClient(postUrl, app_id, merchant_private_key, format, version, sign_type, alipay_public_key, "UTF-8", false);
            AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();
            request.SetNotifyUrl("支付宝后台通知的地址");
            request.SetReturnUrl("支付宝前台回跳的地址");
            request.BizContent = "{" +
            "    "body":"对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。"," +
            "    "subject":"商品描述"," +
            "    "out_trade_no":"商家唯一订单,填写你项目里生成的唯一订单号"," +
            "    "timeout_express":"" + timeout_express + ""," +
            "    "total_amount":" + Amount + "," +
            "    "product_code":""+ method + """ +
            "  }";
            AlipayTradeWapPayResponse response = client.pageExecute(request);
            string form = response.Body.Substring(0, response.Body.IndexOf("<script>"));
            return form;
        }

<!DOCTYPE html>


<html lang="zh-cn">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width" />
<title></title>
<script type="text/javascript">
function submit(){
document.forms['alipaysubmit'].submit();
}
</script>
</head>
<body>
<div>
<button onclick="submit()">支付宝支付</button>
<div style="display:none;">
<!--form-->

</div>

</div>
</body>
</html>

 
        /// <summary>
        /// 支付宝异步回调专用(修改请参考相关文档)
        /// </summary>
        /// <param name="notify_time">通知时间</param>
        /// <param name="app_id">开发者的app_id</param>
        /// <param name="charset">编码格式</param>
        /// <param name="version">接口版本</param>
        /// <param name="sign_type">签名类型</param>
        /// <param name="sign">签名</param>
        /// <param name="trade_no">支付宝交易号</param>
        /// <param name="out_trade_no">商户订单号</param>
        /// <param name="buyer_id">买家支付宝用户号</param>
        /// <param name="buyer_logon_id">买家支付宝账号</param>
        /// <param name="seller_id">卖家支付宝用户号</param>
        /// <param name="seller_email">卖家支付宝账号</param>
        /// <param name="trade_status">交易状态</param>
        /// <param name="total_amount">订单金额</param>
        /// <param name="receipt_amount">实收金额</param>
        /// <param name="invoice_amount">开票金额</param>
        /// <param name="buyer_pay_amount">付款金额</param>
        /// <param name="subject">订单标题</param>
        /// <param name="body">商品描述</param>
        /// <returns></returns>
        public ActionResult AlipayAsynchronousReception(DateTime notify_time, string app_id = "", string charset = "", string version = "", string sign_type = "", string sign = "", string trade_no = "",
            string out_trade_no = "", string buyer_id = "", string buyer_logon_id = "", string seller_id = "", string seller_email = "", string trade_status = "", double total_amount = 0,
            double receipt_amount = 0, double invoice_amount = 0, double buyer_pay_amount = 0, string subject = "", string body = "")
        {
            var msgStr = $@"AlipayAsynchronousReception:  out_trade_no={out_trade_no},trade_no={trade_no},trade_status={trade_status},notify_time={notify_time},DateTimeNow={DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}";
            new LogEntity().SetLogMessage(msgStr);
            var model = new PaymentRecordModel();
            model.Trade_no = trade_no;
            model.Out_trade_no = out_trade_no;
            model.Buyer_login_id = buyer_logon_id;
            model.Seller_email = seller_email;
            model.State = (int)Enum.Parse(typeof(PaymentRecordStateEnum), trade_status);
            var facade = new TrainingFacade();
            var result = facade.OpreationPaymentRecord(model);
            if (result.IsSuccess)
            {
                return Json("success", JsonRequestBehavior.AllowGet);
            }
            else
            {
                return Json("fail", JsonRequestBehavior.AllowGet);
            }
        }

  

免责声明:文章转载自《C#支付宝支付接口H5版(手机网页支付)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇软中断和硬中断【转】Sqlserver通过链接服务器访问Oracle的解决办法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

支付宝手机网站支付(基于Java实现支付宝手机网站支付)

支付宝支付核心需要的参数是(APPID,PRIVATE_KEY,ALIPAY_PUBLIC_KEY) APPID:创建应用后就有的APPID。 PRIVATE_KEY:应用私钥 ALIPAY_PUBLIC_KEY:支付宝公钥 上面的2,3的参数得自己弄到,参考文档:https://docs.open.alipay.com/291/105971/ 下...

支付宝支付成功后通知在微信打开的提示页面

背景 正常情况下,在微信浏览器使用支付宝支付,会出现一大坨链接,让你手动的复制到浏览器打开去操作。 这样的用户体验,别说用户,就连没有审美的程序员也不能忍的。 于是阿力饼饼给出了方案,倒不是解决跳转的问题,只是把那个不友好的提示,通过判断,给出已给相对友好的提示。 在园友的文章:腾腾流氓,云云更流氓(问微信怎样接入支付宝支付),手贱的赶紧点,你会感谢我的 ...

支付宝支付(三)—APP支付(alipay.trade.app.pay)

  首先,郑重的说明一下,本人是纯服务端开发人员,不懂安卓和ios开发,在实际开发配合中,也只负责给安卓和ios的同事提供服务端调取的接口以及处理支付宝的异步回调。所以这篇文章只是介绍服务端的开发过程,不会涉及到安卓和ios客户端的处理过程,如果你只想了解客户端处理过程,可以不用往下看了,goodbye!!!   在看这篇文章之前,希望你先看上一篇文章支付...

支付宝的同步和异步的区别

第一种理解 同步是给客户看的,异步是服务器处理请求。 同步是客户充值或者支付成功了,给客户一个提示,告诉客户这个操作的结果是成功还是失败。起到的作用就是提示客户这个操作的结果是成功还是失败。 异步是服务器在后端处理支付成功或失败时的业务逻辑。同步通知:用于用户在支付宝页面付款完毕后自动跳转; 异步通知:其实是处理业务逻辑,比如说修改客户的支付状态; 同步得...

支付宝支付api

支付宝api: 下载alipay支付接口demo: AlipayDemo 使用支付宝支付需要有个商户号,这个商户号必须是企业申请,并且需要企业的营业执照:申请完了会给你个商户号 (一串数字)   沙箱环境(沙箱环境) https://openhome.alipay.com/platform/appDaily.htm?tab=info 点击支付后会向支付宝...

免签支付系统,微信支付宝免签支付,个人支付接口源码

免签支付系统演示站点:http://pay.changu.net/pay 源码地址:https://github.com/wxs2/xposed-pay 免签支付系统关键字: ccpay多商户个人收款码支付系统源码个人免签收款,骑士系统源码码支付源码个人免签收款平台码支付源码免软件监控码支付源码,网页版监控个人二维码收款pay.changu.net收款系统...