支付宝手机支付接口
2018-06-22 07:46:50来源:未知 阅读 ()
描述: 网站需要调用 支付宝支付功能------
这次介绍 手机网站支付
2017.3月支付宝手机网站支付升级2.0(认真看) 官方文档
升级后,可以直接在网站中调起 移动端APP支付,这才是为什么升级的主要原因-----必备!
最新SDK---AopSdk.dll 下载 后,在你需要的项目中引用dll,服务端写的很简单,
//调用Ali封装好的接口获取支付链接 IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", Config.partner2, Config.private_key2, "json", "1.0", "RSA2", "alipay_public_key", "utf-8", false); AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); request.SetNotifyUrl(notifyUrl); request.SetReturnUrl(showUrl); request.BizContent = "{" + " \'body\':\'"+ body +"\'," + " \'subject\':\'"+ subject +"\'," + " \'out_trade_no\':\'" + outTradeNo + "\'," + " \'timeout_express\':\'30m\'," + " \'total_amount\':" + totalFee + "," + " \'product_code\':\'QUICK_WAP_PAY\'" + " }"; AlipayTradeWapPayResponse response = client.pageExecute(request); string form = response.Body; Response.Write(form);
form就是你需要的内容。 这里强调一下:官方SDK运行的结果 form 是一个FORM 表单Response.Write(form);
,
如果你需要得到一个 链接地址的话,需要对SDK修改,如下打开sdk源代码找到这个方法。
#region IAopClient Members
public T pageExecute<T>(IAopRequest<T> request) where T : AopResponse
{
return pageExecute<T>(request, null, "POST"); ------改成 GET,获取的就是 支付url,重新编译引用。
}
#endregion
开发中需要注意的配置事项:
1、添加应用---签约手机网站支付
https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.wTflnJ&treeId=60&articleId=104788&docType=1
2、配置密钥(认真看)
https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.hAazoO&treeId=60&articleId=104740&docType=1
步骤1:RSA公私钥生成(保存好,后期开发用到 这个“应用公钥”)
生成方式一(推荐):使用支付宝提供的一键生成工具(内附使用说明)
步骤2:上传公钥&获取支付宝公钥(重要)
3、快速接入
内含JAVA、PHP、CSHARP(C#)三种编程语言。 下载各自DOME里面有介绍怎么使用,基本上都可以运行成功。
代码中这些配置相当重要,配置不对就会导致 未将对象引用到实例这样的错误。
支付回调:
if (verifyResult)//验证成功 { bool isRefund = false; string batch_no = string.Empty; if(sPara.ContainsKey("out_biz_no")) { isRefund = true; batch_no = sPara["out_biz_no"]; } //商户订单号 string out_trade_no = Request.Form["out_trade_no"]; //支付宝交易号 string trade_no = Request.Form["trade_no"]; //交易状态 string trade_status = Request.Form["trade_status"]; string buyer_id = Request.Form["buyer_id"]; string buyer_emial = Request.Form["buyer_logon_id"]; if (string.IsNullOrEmpty(out_trade_no)) { throw new Exception("商户订单号不能为空"); } out_trade_no, trade_no, trade_status)); if (trade_status == "TRADE_FINISHED") { //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的 //如果有做过处理,不执行商户的业务程序 //处理业务逻辑 //注意: //退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知 } else if (trade_status == "TRADE_SUCCESS") { //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的 //如果有做过处理,不执行商户的业务程序 if (isRefund) { //处理退款业务---退款成功 } else { //处理订单业务---付款成功 } //注意: //付款完成后,支付宝系统发送该交易状态通知 } else if (trade_status == "TRADE_CLOSED")//未付款交易超时关闭,或支付完成后全额退款 { if (isRefund) { //处理退款业务--退款成功 } } Response.Write("success"); //必须输出success } else//验证失败 { Response.Write("failure"); }
不懂的可以在下面留言~ 希望大家可以顺利开发完成。
哥们 如果觉得对你有帮助了,不妨点个赞哈! O(∩_∩)O谢谢。
点击查看 阿里云幸运卷
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- ASP.NET MVC阿里大于短信接口开发短信群发 2020-02-22
- asp.net及javascript判断是否手机访问的方法 2019-11-27
- 实例操作.net接入支付宝的支付接口 2019-10-30
- 配置接口配置文件 明确指出错误信息(“/”服务器上出现应用 2019-07-23
- 浅谈IHttpHandler 2019-07-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash