支付宝app支付服务器签名代码(C#)

1,引入支付宝的sdk(AopSdk) 支付宝接口文档网站可下载,注意下载C#版本;

2,代码写的比较简单

public static string RSASign(string OrderNo,decimal Money,string bodyp,string subjectp)
{

string publicKeyPem = ;//支付宝公钥 
string privateKeyPem = ;//商户私钥

string out_trade_no = OrderNo;//订单号
double total_fee = (double)Money;//交易金额
string app_id = ;//app支付,支付宝中该应用的ID
string charset = "utf-8";//utf-8
string timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
string notify_url = ;//回调地址
string body = bodyp;
string subject = subjectp;

Dictionary<string, string> dic = new Dictionary<string, string>();

Dictionary<string, object> dic2 = new Dictionary<string, object>();
dic.Add("app_id", app_id);
dic.Add("method", "alipay.trade.app.pay");
dic.Add("version", "1.0");
dic.Add("charset", charset);
dic.Add("notify_url", notify_url);
dic.Add("sign_type", "RSA2");
dic.Add("timestamp", timestamp);

dic2.Add("out_trade_no", out_trade_no);//商户订单号
dic2.Add("total_amount", total_fee);//支付金额
dic2.Add("product_code", "QUICK_MSECURITY_PAY");
dic2.Add("body", bodyp);
dic2.Add("subject", subject);

dic.Add("biz_content", JsonConvert.SerializeObject(dic2));

//string sign = AlipaySignature.RSASign(dic, privateKeyPem, null, "RSA2");

//AlipaySignature.RSASign方法是支付宝提供的签名方法,使用这个方法需要注意参数的传入,第一个参数为需要签名的参数,第二个参数为商户私钥,第4个参数如果传入fase,表示支付宝私钥以字符串的形式传入,true表示第二个参数要传存储私钥的文件地址,并且这个文件内容开头和结尾都要加“-----BEGIN RSA PRIVATE KEY----- 私钥 -----END RSA PRIVATE KEY-----”

string sign = AlipaySignature.RSASign(dic, privateKeyPem, "utf-8", false, "RSA2");

sign =HttpUtility.UrlEncode(sign, Encoding.GetEncoding(charset));

string Parms = string.Empty;
var testparms = string.Empty;

//Parms = Aop.Api.Util.AlipaySignature.GetSignContent(dic);

foreach (KeyValuePair<String, string> k in dic)
{
testparms += k.Key + "=" + k.Value + "&";
if (Parms == string.Empty)
{
Parms = k.Key + "=" + HttpUtility.UrlEncode(k.Value, Encoding.GetEncoding(charset));
}
else
{
Parms += "&" + k.Key + "=" + HttpUtility.UrlEncode(k.Value, Encoding.GetEncoding(charset));
}
}

Parms = Parms + "&sign=" + sign;

return Parms;
}

支付宝签名和验签都有提供相应的源码大家可以参考,如果问题还请大家提出

时间: 2024-10-11 13:50:07

支付宝app支付服务器签名代码(C#)的相关文章

支付宝app支付java后台流程及原理分析

java版支付宝app支付流程及原理分析 本实例是基于springmvc框架编写     一.流程步骤         1.执行流程           当手机端app(就是你公司开发的app)在支付页面时,调起服务端(后台第1个创建订单接口)接口,后台把需要调起支付宝支付的参数返回给手机端,手机端拿到         这些参数后,拉起支付宝支付环境完成支付,完成支付后会调异步通知(第2个接口),此时需要给支付宝返回成功或者失败信息,成功后会调用同步通知(第3个接口)         返回支付成

.Net后台实现支付宝APP支付

前面讨论了微信支付,接下来聊聊支付宝的APP支付(新款支付宝支付).其实这些支付原理都一样,只不过具体到每个支付平台,所使用的支付配置参数不同,返回至支付端的下单参数也不同. 话不多说,直接上代码. 在App.Pay项目中使用NuGet管理器添加引用Alipay.AopSdk,也可以不添加引用,将官方SDK源码放至项目中. 添加完引用后,我们就可以开工了,新建文件夹AliPay,在文件夹中新建AliPayConfig类,存放支付宝APP支付所需的参数,同样,这些参数我也放在了配置文件中. 1 u

关于支付宝app支付服务端的实现-Java版

前言 最近在工作中需要使用支付宝app支付,在初次使用过程中也不可避免的出现了一些问题,那么本次随笔主要是概述支付宝app支付服务端的整个实现过程以及就服务端出现的一些问题做一些总结. 1.准备工作 1.1 入驻蚂蚁金服开放平台 https://open.alipay.com/platform/home.htm 1.2 创建应用 首先需要创建一个应用. 然后需要设置应用公钥. 下载支付宝密钥生成器.生成成功之后将公钥复制到这里. 最后提交审核,等待. 2.Maven依赖 首先需要下载SDK,ht

支付宝APP支付开发- IOException : DerInputStream.getLength(): lengthTag=127, too big.

支付宝APP支付Java开发报错: 1 IOException : DerInputStream.getLength(): lengthTag=127, too big. 后来排查是因为没有设置私钥.

支付宝APP支付开发- IOException : DER input, Integer tag error

支付宝APP支付Java开发报错: 1 java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException : DER input, Integer tag error 后来发现,原来是支付宝,生成的命令有问题,参数放错位置 将(3) 的命令改为: openssl pkcs8 -topk8 -nocrypt -inform PEM -in rsa_private_key.pem -o

支付宝APP支付里设置应用网关和授权回调地址是不必填的

支付宝APP支付里设置应用网关和授权回调地址位置为: 支付宝app支付应用网关和授权回调地址为非必填,详细解释链接:https://openclub.alipay.com/read.php?tid=1339&fid=2

android 集成支付宝app支付(原生态)-包括android前端与java后台

本文讲解了 android开发的原生态app集成了支付宝支付, 还提供了java后台服务器处理支付宝支付的加密代码, app前端与java后台服务器使用json数据格式交互信息,java后台服务主要用来对支付数据进行加密和接受支付宝服务器的回调 注意: 本文即涉及到 android前端, 也涉及到 Java后台 准备条件: 到支付宝官网上注册用户, 打开开放平台,支付宝默认生成沙箱环境,用来测试支付流程 安装Android Studio[下载], 安装 Eclipse mars  [下载],  

【移动支付】.NET支付宝App支付接入

一.前言        最近也是为了新产品忙得起飞,博客都更新的慢了.新产品为了方便用户支付,需要支付宝扫码接入.这活落到了我的身上.产品是Windows系统下的桌面软件,通过软件生成二维码支付.界面以原生的MVVM编写,下面叙述一下基本的过程,做过的老司机可以直接点关闭了. 二.申请接口         申请接口是第一步,首先有这么几件事: 公司具有支付宝账户 公司具有营业资质(废话) 创建应用,签约电脑网站支付,手机支付,App支付. 创建私钥.公钥.支付宝公钥 配置网关及回调地址 需要注意

支付宝 APP支付(证书)方式遇到的问题和解决办法

最近在做支付宝的支付功能,遇到了一些问题记录一下,方便查阅和遇到同样问题的人: 这个错误遇到的应该都比较多吧: 这个问题发生的原因是: 1.私钥是用文件路径方式请求的(建议使用密文方式) 并且 keyFromFile = false : 2.私钥的获取方式不正确 (正确的是:开发者工具生成后 -> 打开文件位置 ->私钥): 3.获取CSR 文件时没注意看的话,就默认选择了PKCS8 导致错误: //如果使用 文件方式报错的话,请参考下方案 1.将 开发者工具中 ->打开文件中 获得的私