1.alipay.trade.query(统一收单线下交易查询)

前情提要:  请把扫码支付分解为两步理解

扫码成功 : 客户的支付宝软件会发送支付宝(注这里不再经过我们开发的服务器)第一次请求创建订单,

支付成功 :客户的支付宝软件会发送到支付宝(注这里不再经过我们开发的服务器)请求改变之前创建订单的 状态 和 部分值

这个接口有个大坑

如下图

客户扫码前是得不到 trade_no的 , 客户未扫码就调用

alipay.trade.query  得到的结果会是 交易不存在.  如下

 {"alipay_trade_query_response":{"code":"40004","msg":"Business Failed","sub_code":"ACQ.TRADE_NOT_EXIST","sub_msg":"交易不存在","buyer_pay_amount":"0.00","invoice_amount":"0.00","out_trade_no":"20150320010101031","point_amount":"0.00","receipt_amount":"0.00"
},
"sign":"MdKcd3mz6cpl+Z/u0ypmWQoeiFfJg1Z0DdXsUlsxumVzwxkkhBKgC/x6wIyUle1gm6Z6Pe+lpzzGzfenw4+tuv3xCi0MK53wt6lEiCKOKYPjpQRjcjEYuSTh+ZvUDvd+zRCZzkXMhsccM96WA+mA5LvyVAxJh92cRCaJhKuxYFklsY5wF1k93+Nhco9YQeEO5QMRwtg3Nw618m8c6zKacmM8YuRtmpGdZMlF9dwfOnnNu4v+DSwk4xwwLlL+LU+6wY63rX3GaIZhVCIIFz15MhxUaTgqNv1GDkg5z2oScFMuMIYWiPVQnlh7Ag69OdRv5lsCg8qkh42UKOWR1CeFzw=="
}

客户扫码但是未支付的情况下调用   

alipay.trade.query    会返回   "msg" :"Success"  但是值得注意的是receipt_amount 即 实际收到的钱 为 0  ,

trade_status 为 等待买家支付   
如下:

{"alipay_trade_query_response":{"code":"10000",
"msg":"Success",
"buyer_logon_id":"gai***@sandbox.com",
"buyer_pay_amount":"0.00",
"buyer_user_id":"2088102176080898",
"buyer_user_type":"PRIVATE",
"invoice_amount":"0.00",
"out_trade_no":"20150320010101033",
"point_amount":"0.00",
"receipt_amount":"0.00",   //实际收到的金额
"total_amount":"88.88",
"trade_no":"2018051221001004890200422558",
"trade_status":"WAIT_BUYER_PAY"},
"sign":"JS19aBJTktrJ3LGhccVh26XgN56/MTEbL+9wM/R5MiyOEZW+v9l/TtDv9X/FN8IMVJom0XQN/ZKKVHHjwG0LUbUuB85iRPpoewHUTCihLeMt6Wg7aFYF+amtrbPPS3RtCt6MXNzroTmxvQyzZToQG0Pe2dI2ZnpfAGFL8HPb4I/9UBN9tCls81HahKTSnaL1XcP7Vnwoz9RrRgIB3yu92kpRADYiw/6SzM1qJiQbDJMvTjPezZ5H0jMzOrmQNKN+8yHW1bqnGhx07cnEd4ZY8MrOSLTc88pvegBn3FPg3U7HcvmoLtK80VTM95S8JpdoqOoz07P4KYgPmWwGG854qw=="}

如果当前只是到了获取都二维码 --->等待用户扫码   的这一步

我们只有 out_trade_no   所以我传参时只传了一个 out_trtade_no  代码如下:

   //验证当前订单的状态[NoPermissionRequiredAttribute]public ActionResult GetOrderStatus(string out_trade_no, string trade_no=""){const string URL = "https://openapi.alipaydev.com/gateway.do";  //沙箱环境与正式环境不同 这里要用沙箱的 支付宝地址// APPID即创建应用后生成const string APPID = "2016091500513966";//开发者应用私钥,由开发者自己生成  开发者私钥到底是什么玩意  原来开发者私钥就是商户应用私钥const string APP_PRIVATE_KEY = "MIIEowIBAAKCAQEArVWg55eFMf7rFLVpFAxGgMQfxGWd7swqxNkOu1Y/0Wt14HZik4+U0kycQuYtOFBbwael8vlr/Q+BaqtpwwI+g+yJVma+uLYkmVaWHqswh1XocX3gOfLWxFp1DwPcNesFpbZ9wndxrZL9+wWMtbiB4TV3jBAcFbAzOgLvH4+IveS88H6jjTTpHeogxJpZ0EU37Nucpsae2yiJJyACmgZDlY3qEABkFpiaD2Kc+EvGDPXyEKSufv8f+GxUTKgE25c0NhP9hSJPND1+reygiJy4sFIEuZ5960LRd/1kJgUIuW+JgA50AXI/SXEzHqBJO0ZvT9hZjSIbOtvGjbQp+d9azwIDAQABAoIBAHQjJn9l13nLKqmibzhejTKjtgE6cNpac+GW6bb9sB7aGI3/5EaocneBm0V7whq0RPZ5JMiq8/8Hz5ewKFnf/BEagF6i0vEiIV2YVVdRLl/PYMICLCXHnrzLOxmHZZm+0fbZUmPk8gbxsTjq2/+6E1PZJjNza83gVEJvStbjriRErp5LwMYCO3Qz3KDaPHFUaP5IRR6b+qJeLbrArFNv3zKV9b3TRe1loSIqrUfgSfW7Qh8rEjTub0BxjFqkOeVUrCPlrNz4NqTjOmPBf1tJ+xLFXsYlom4mGoaXKx9UIQgirLkh++HM+fHHrsICg3CA1tKBjf6OYXqLsvsXCd7T0okCgYEA4Yrrhzgmp9OWt1HS5HkAAlErYQoal6JrmfWd5cZOMwgp5YqmfXoV/QgwC0mbXun01JshgnOsmKy2GiOeUlsCRLhGJCm0piI/o9pSwiUyhe65AFLltyQJXmAVWsCeXjyEDDXSheZ1dL6akjVcs4dKSA+E3+lYs+m3mHBy7cXD8esCgYEAxL3bFNAe3iYqnt0/Ncv1SM7cxYJTZMjtEOiVp3sMvcgQCPPzl5CONkIuNKT5F4o8BCMQU0AzzDHxyxAuaspT4EcXQvCm5UIi5BioYnq0IEVVxuRa+AT6bHLxdyd0wsAzEhbrncUGe2ncQ1SKLuKy7UygCA3DBn++v0aqPrGX3a0CgYBPKtAZmqAW8LJKjrIT+FUEezFa0o0bBKv4Urql2MHCL+9k3xIpoRzuwFz82U1sN3r01a8hdzDyNk2FR1NfXQqizHvyXaFHX2YvQYcjFqNxV6YgcvinHEMdmWRlgo8UTPGcx5ep4IcB/5WKFKkBa0+rk6b0YZf9LuB+5Zmx1GU/GQKBgQCufahp7DAEXRtd7OJcBznTykx6DB2EfMPtRCs+8F6bj23RUvQPz9ChhM7QOCUIYLzb+nFHNOD70KwfqolQg4QinUqfPyr2mFKztL7bIPLS0EvEa9HWuSuVtdg9Esx20do5yARO2GjoWjpVqQwpizygRF6G5hW7lN8LbFQf6IjFvQKBgBdlb1h1rfJcPjkFGyIgr7B36eCrKdlRvNVsnMiqXi+3z5kbYXyePEiIfRYolg7UZI2tAAuHFZmxWwSFccREwKvs1rXSqWs0LqvaR7UizGxDq6AUdtz60jfsnkq6RAqwlA2m5ZW0Kf0QivElWxV1pM71ddU7evUNZTOgwL6qX1oG";//参数返回格式,只支持jsonconst string FORMAT = "json";//请求和签名使用的字符编码格式,支持GBK和UTF-8const string CHARSET = "UTF-8";//支付宝公钥,由支付宝生成     到蚂蚁金服复制const string ALIPAY_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApdBe/PUjBBEwYM4/H9clg0yrD1f8KoFusXqgiL4OegnizB2M4lGq7kCkXgwTIxJcOnaLTq2PsE/f0DFNq9GW3xxuLeioh0pjUqG4KV7bFhNy2Wipeja6A+IX1wbhH1AcHYfoGBVjfqEPvqvNWJPCE2ClAZLkNv2pwbC1cKXG48jKX9iVcCmJBl/qgMAcYfgdm37zjcdcgsd/EfHGT8HtiYb08UR+olsxG6Pi7nfc+yLaqGNJyhu6L6lgnQBUxD+fjrFFwPrF6fE0MMm7dljWRO8HiZTTjt8ia4rs8Be05dkd3IDRCoWTcNAd9+tTxV62gcw6rMM92zXMWlzWePk4NQIDAQAB";DefaultAopClient client = new DefaultAopClient(URL, APPID, APP_PRIVATE_KEY, FORMAT, "1.0", "RSA2", ALIPAY_PUBLIC_KEY, CHARSET, false);AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();StringBuilder content = new StringBuilder();//支付宝订单号和 商户订单号可以 任填其一 也可以两个都填, 填两个的情况优先用 trade_no content.Append("{");content.AppendFormat("\"out_trade_no\":\"{0}\",", out_trade_no.Trim());/* content.AppendFormat("\"trade_no\":\"{0}\"", trade_no.Trim());*/ //这一步是不可能得到trade_no的content.Append("}");request.BizContent = content.ToString();AlipayTradeQueryResponse response = client.Execute(request);return Json(response.Body);}

如上代码  我注释了  trade_no   这导致了  返回的结果一直是参数错误

我到处找错误 ,最后发现相当重要:

trade_no  即便是空你也得写上   不能省略

我们再来看一下 取消注释的结果:

这就成功了.

ASP.NET MVC 支付宝sdk 查询订单状态 填坑攻略相关推荐

  1. android 快捷支付sdk,Android 集成支付宝SDK实现快捷支付--填坑

    刚给app集成了支付宝的android客户端快捷支付SDK,集成很简单,但是由于是涉及钱的问题,大家都会持谨慎态度,所以有很多小坑,粗心的话集成之路会很坎坷,对于集成步骤,我不想写了,没有必要,就看官 ...

  2. 史上最完美的Android沉浸式状态导航栏攻略

    前言 最近我在小破站开发一款新App,叫高能链.我是一个完美主义者,所以不管对架构还是UI,我都是比较抠细节的,在状态栏和导航栏沉浸式这一块,我还是踩了挺多坑,费了挺多精力的.这次我将我踩坑,适配各机 ...

  3. 关于支付宝提现收费,这些误区和攻略你应该知道

    关于支付宝提现收费,这些误区和攻略你应该知道(转) 文/杨舒芳 支付宝今天宣布,10月12日起,提现累计超过2万的部分,要收取0.1%的服务费. 这是继今年3月份微信支付宣布提现收费后,支付宝方面的首 ...

  4. 支付宝sdk 支付订单查询失败

    最近遇到了一些问题,厂商给我们反馈了一个问题,就是支付宝支付成功之后,旋转屏幕,订单查询失败.后来我怀疑是支付宝的问题,想都不用想是支付宝的问题. 但是自己根本你无法复现,因为我发现支付宝支付完成之后 ...

  5. ASP.NET MVC 支付宝当面付(沙箱环境)-即扫二维码支付1(填坑)

    1,环境 我用的是 vs2017    创建一个 mvc项目  新建一个文件夹将 SDK 文件放进去 sdk地址 :https://support.open.alipay.com/docs/doc.h ...

  6. java编程根据订单编号查询订单状态_Java微信订单查询

    Java 通过统一下单 API 进行订单支付后,除等待微信通过 notify_url 进行回调通知外,还可以主动查询订单状态 更多精彩 前置条件 可参考 Java 微信扫码支付 如果实现微信支付 官网 ...

  7. ASP.NET MVC保持表单数据状态的方法:input辅助器+模型绑定

    ASP.NET使用ViewState保持网页的状态,服务器端控件也默认使用该对象保持状态.该技术的主要弊端是服务器需要发送大量的状态数据给客户端.ASP.NET MVC没有采用服务器端控件技术,也就不 ...

  8. 2021支付宝集五福最新最全攻略:万能福沾沾福敬业福

    五福背后的 Web 3D 引擎 Oasis Engine 正式开源 五福还是一如既往,独乐乐不如众乐乐 分享一波攻略顺便晒晒我的会不会被打 骚套路 1. 敬业福套路 可以5个小朋友建个小群,分享套卡互 ...

  9. java接入顺丰快递api(有可运行demo)(包括下单、路由查询、路由推送、查询订单状态、取消订单)

    故事发生的背景: 公司快递业务这一块之前接入的是快递100,由于快递100的推送的实时性没有达到公司的要求,而且公司全都用的顺丰快递,所以直接接入了顺丰快递的api.demo文章最后下载(新增了jso ...

最新文章

  1. 使用MyEclipse开发Java EE应用:用XDoclet创建EJB 2 Session Bean项目(四)
  2. python查看函数参数快捷键_Python基础知识—快捷键
  3. java getrealpath_JavaEE路径陷阱之getRealPath
  4. leetcode - Interleaving String
  5. 【报告分享】bilibili 2020品牌营销手册.pdf(附下载链接)
  6. Python提示错误 module 'request' has no attribute 'urlretrieve'
  7. power bi 创建空表_使用Power BI创建足球热图
  8. SVN 冲突文件详解
  9. 标准Android按钮具有不同的颜色
  10. 《Android 3D 游戏案例开发大全》——6.6节游戏界面相关类
  11. 1000+常用Python库
  12. 看得见的数据结构Android版之二分搜索树篇
  13. 计算机表格怎么用函数计算,WPS2012表格如何用公式与函数进行计算
  14. 【JZOJ】给水(water)
  15. 向量化回测系列1——单只股票的回测
  16. Python编写无界面版打字练习程序
  17. Element UI 官网
  18. Verilog:【4】脉冲发生器(pulse_gen.sv)
  19. java IO流(复习,上课笔记)
  20. hive数据备份方案

热门文章

  1. 如何使用OLED显示图像
  2. Chrome浏览器手动调节模拟网速
  3. 【科创人】维格表创始人陈霈霖:喜茶数字化转型的结晶是vika维格表
  4. 制造业和物流行业的WMS系统差别在哪?
  5. 中小科技企业新蓝图,抓住资本新机遇!北京证券交易所要来了
  6. 骑士数字外汇即将开启公测版,以科技领导数字金融发展!
  7. 联想扬天 V14 、V15 锐龙版 2023款 评测
  8. 【PPT】《使用ChatGPT一键制作带自动配图的PPT演讲稿》- 知识点目录
  9. Adobe Reader Acrobat Pro XI在连网下打开几秒后,卡顿并自动退出问题解决措施
  10. SQL 高级教程:SQL BETWEEN 操作符