C#支付宝支付接口H5版(手机网页支付)
接口官方文档 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版(手机网页支付)的更多相关文章
- 用MVC做支付宝手机网页支付问题
支付宝支付接口手机网页支付 从官网扒下来的demo阿里做得还是相当不错的,只要参数改正确了基本上都是能跑通,WebForm的没什么大问题,这次要讲的主要是几个要注意的问题,因为是用MVC来做. 1.要 ...
- php支付宝手机网页支付类实例
<?php $alipayConfig = array( 'key' => 'xxxxx', //买卖安全校验码,用于签名的32位密钥 'transport' => 'https', ...
- 支付宝PC即时到账和手机网站支付同步
前几个月做了一个旅游网站,有PC站和手机站,涉及支付宝支付功能. 要求:PC站下的单,用户用手机登录也能支付;同理,手机站下的单,PC端登录也能支付. 附支付宝开放平台网址:即时到账 ,手机网站支付. ...
- 调用支付宝PHP接口API实现在线即时支付功能(UTF-8编码)
这次在项目中要实现订单功能,所以要完成在线支付,在线支付一般有网银支付和第三方支付(支付宝.paypal等)这两种途径,未简单起见,先完成支付宝在线支付功能,由于项目基于Yii框架,且使用UTF-8编 ...
- tp框架支付宝手机网页支付
开发环境:linux+php+mysql 密钥生成: 1.genrsa -out rsa_private_key.pem 1024 生成商户私钥,因在php环境,一定要保持原始状态,不得修改.rsa_ ...
- 微信支付接口 H5
php微信支付若干问题记录 1.缺少参数$key0$ 此问题的可能性有几种,大致有1.timeStamp这个参数应该是string类型,默认time是int 2.确实是参数缺少 比如:prepay_ ...
- .NET接入UnionPay银联支付(一)手机wap支付
最近呢,比较忙,公司在接入银联全渠道支付,博主接手的wap支付,发表一下博主在接入的时候遇到的坑和注意事项,方便大家学习接入,爬坑的路上更顺利一点~ 开发步骤 1. 以表单的方式组装要发送给银联全渠道 ...
- 支付宝手机网站支付流程(Node实现)
前言 公司M站要接入支付宝,借机研究了一下支付宝的支付流程.毕竟,只有公司才能拿到支付接口权限. 主要参考文档: https://doc.open.alipay.com/doc2/detail?tre ...
- tp3.2 支付宝手机网站支付
手机网站支付接口,支付宝官方文档:https://b.alipay.com/signing/productSet.htm?navKey=all 第一步: 1)登陆支付宝企业账号 进入支付宝官网 ,登陆 ...
随机推荐
- theadClasses设置Bootstrap Table表头样式
通过theadClasses属性设置表头样式. thead-light设置灰色背景 //bootstrap table初始化数据 itxst.com $('#table').bootstrapTabl ...
- mybatis 一对多查询 集合创建空对象的问题
在做 mybatis 一对多查询的时候, resultMap 里面用到了集合标签 collection ,后来发现 当该条数据没有子集的时候, collection 会自动创建一个属性都是null的对 ...
- java spring使用Jackson过滤
一.问题的提出. 项目使用Spring MVC框架,并用jackson库处理JSON和POJO的转换.在POJO转化成JSON时,希望动态的过滤掉对象的某些属性.所谓动态,是指的运行时,不同的cont ...
- java基本类型和String之间的转换
String → 基本类型,除了Character外所有的包装类提供parseXxx(String s)静态方法,用于把一个特定的字符串转换成基本类型变量: 基本类型 → String,String ...
- Java发送邮件Demo
就是个Demo,有使用Spring的东西 package xxxxxxx.common.utils; import org.springframework.mail.javamail.JavaMail ...
- java 合并流(SequenceInputStream)
需要两个源文件,还有输出的目标文件 SequenceInputStream: 将两个文件的内容合并成一个文件 该类提供的方法: SequenceInputStream(InputStream s1, ...
- H3C 根据子网掩码计算子网数
- Linux 基础(一)stat函数
Header file: #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> DEFI ...
- CF1146G Zoning Restrictions
CF1146G Zoning Restrictions 网络流 h<=50? 直接都选择最大的,ans=n*h*h 最小割 考虑舍弃或者罚款 有一个>x就要罚款? 经典取值限制的模型:切糕 ...
- 51nod 天气晴朗的魔法 - (Kruskall最小生成树)
题目: 基准时间限制:1 秒 空间限制:131072 KB 51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动. N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接 ...