接口官方文档 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(, 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 id="formDiv" 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版(手机网页支付)的更多相关文章

  1. 用MVC做支付宝手机网页支付问题

    支付宝支付接口手机网页支付 从官网扒下来的demo阿里做得还是相当不错的,只要参数改正确了基本上都是能跑通,WebForm的没什么大问题,这次要讲的主要是几个要注意的问题,因为是用MVC来做. 1.要 ...

  2. php支付宝手机网页支付类实例

    <?php $alipayConfig = array( 'key' => 'xxxxx', //买卖安全校验码,用于签名的32位密钥 'transport' => 'https', ...

  3. 支付宝PC即时到账和手机网站支付同步

    前几个月做了一个旅游网站,有PC站和手机站,涉及支付宝支付功能. 要求:PC站下的单,用户用手机登录也能支付;同理,手机站下的单,PC端登录也能支付. 附支付宝开放平台网址:即时到账 ,手机网站支付. ...

  4. 调用支付宝PHP接口API实现在线即时支付功能(UTF-8编码)

    这次在项目中要实现订单功能,所以要完成在线支付,在线支付一般有网银支付和第三方支付(支付宝.paypal等)这两种途径,未简单起见,先完成支付宝在线支付功能,由于项目基于Yii框架,且使用UTF-8编 ...

  5. tp框架支付宝手机网页支付

    开发环境:linux+php+mysql 密钥生成: 1.genrsa -out rsa_private_key.pem 1024 生成商户私钥,因在php环境,一定要保持原始状态,不得修改.rsa_ ...

  6. 微信支付接口 H5

    php微信支付若干问题记录 1.缺少参数$key0$ 此问题的可能性有几种,大致有1.timeStamp这个参数应该是string类型,默认time是int 2.确实是参数缺少  比如:prepay_ ...

  7. .NET接入UnionPay银联支付(一)手机wap支付

    最近呢,比较忙,公司在接入银联全渠道支付,博主接手的wap支付,发表一下博主在接入的时候遇到的坑和注意事项,方便大家学习接入,爬坑的路上更顺利一点~ 开发步骤 1. 以表单的方式组装要发送给银联全渠道 ...

  8. 支付宝手机网站支付流程(Node实现)

    前言 公司M站要接入支付宝,借机研究了一下支付宝的支付流程.毕竟,只有公司才能拿到支付接口权限. 主要参考文档: https://doc.open.alipay.com/doc2/detail?tre ...

  9. tp3.2 支付宝手机网站支付

    手机网站支付接口,支付宝官方文档:https://b.alipay.com/signing/productSet.htm?navKey=all 第一步: 1)登陆支付宝企业账号 进入支付宝官网 ,登陆 ...

随机推荐

  1. spring boot与activiti集成实战 转

    为什么80%的码农都做不了架构师?>>> 这是原作者的博客地址 http://wiselyman.iteye.com/blog/2285223 代码格式混乱,我修正了一下.项目源码在 ...

  2. JavaScript的一些SAO操作

    IE判断检测 jQuery 在 1.9 版本之前,提供了一个浏览器对象检测的属性 使用率极高.但是在版本发布之后,大家钟爱的这个属性被无情的抛弃了.大家开始着手寻找.browser 的替代方案.于是各 ...

  3. 横向tab计算滚动位置

    React横向滚动计算 class Footer extends React.Component { handleClick(e) { const offset = 150; // 指定偏移量 thi ...

  4. HTML--CSS样式表--基本概念(超链接的状态)

    样式表的基本概念 一.样式表的分类 1.内联样式表 和HTML联合显示,控制精确,但是可重用性差,冗余较多. 例:<p style="font-size:14px;"> ...

  5. httpClient Post例子,Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete

    httpclient post方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 //----1. HttpPost request = new HttpPost(ur ...

  6. Argus--[优先队列]

    Description A data stream is a real-time, continuous, ordered sequence of items. Some examples inclu ...

  7. JS与JSP分别是什么

    JS:JavaScript: JSP:Java Server Pages. jsp:只是servlet的一个变种,方便书写html内容才出现的,servlet是根本,所有jsp能做的,servlet全 ...

  8. 连接远程mysql(Linux环境)

    保证三点: 1.打开/etc/my.cnf,找到[mysqld]项,在其后加入一句:skip-name-resolve,保存,重启mysql服务. service mysqld restart  或者 ...

  9. CodeForce - 1187 E. Tree Painting (换根dp)

    You are given a tree (an undirected connected acyclic graph) consisting of nn vertices. You are play ...

  10. delphi 子窗体最大化

    procedure TForm2.FormCreate(Sender: TObject);begin perform(WM_SIZE,SIZE_MAXIMIZED,0);end; http://blo ...