当前位置: 首页 > news >正文

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

支付宝支付接口手机网页支付

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

1.要确宝手机网页支付开通已经申请通过,具体官网都有介绍。

2.支付宝的同步请求是正常接收到了的,但支付宝支付接口异步通知 AliPaynotify却没有接收到任何返回的信息,这里 支付宝的异步通知其实被 asp.net 的安全机制给拦截了,返回给支付宝的500错误信息是 A potentially dangerous Request.Form value was detected from the client

解决方法 :

 [HttpPost, ValidateInput(false)]
        public string AliPaynotify(FormCollection collection)

<httpRuntime  requestValidationMode="2.0"  />

3.在手机上打开链接后能跳转到支付页面后,支付宝支付成功后异步回调AliPaynotify,支付宝的例子WebForm 中只要输出 Response.Write("success"); 支付宝就不再回调了,MVC该怎么输出,支付宝才能接到通知呢?其实可以用Response.Write("success"); 也可以用return Content("success")

4.支付成功,但AlipayNotify.verifyNotify(params) 这个验证失败

验签顺序错了,正确的顺序是这个:service=alipay.wap.trade.create.direct&v=1.0&sec_id=0001?ify_data=…到core文件中调试参数顺序,排序的哪个方法

5.支付成功后,支付宝服务器总是会隔一段时间异步返回支付成功的消息给服务器,但VerifyNotify总是不通过,返回的responseTxt如下

//验证消息是否是支付宝发出的合法消息,验证服务器异步通知 

public bool VerifyNotify(Dictionary<string, string> inputPara, string sign)

responseTxt=<?xml version="1.0" encoding="GBK"?><alipay><is_success>F</is_success><error>ILLEGAL_PARTNER</error></alipay>

//判断responsetTxt是否为true,isSign是否为true
//responsetTxt的结果不是true,与服务器设置问题、合作身份者ID、notify_id一分钟失效有关
//isSign不是true,与安全校验码、请求时的参数格式(如:带自定义参数等)、编码格式有关
if (responseTxt == "true" && isSign)//验证成功
{
return true;
}

因此最好是第一次性通过返回Content("success"),当处理异常时处理后也尽量返回 success否则支付宝服务器始终会认为服务器没有正常接收会不断的发信息。

 本文转自欢醉博客园博客,原文链接http://www.cnblogs.com/zhangs1986/p/4213394.html如需转载请自行联系原作者


欢醉

相关文章:

  • .net core Swagger 过滤部分Api
  • 一位台湾学校校长的演讲
  • k8s使用glusterfs实现动态持久化存储
  • MFC CListCtrl 表格
  • Semaphore
  • L1与L2正则化
  • centos7配置postfix dovecot cyrus-sasl foxmail
  • python利用openpyxl库操作Excel来读取、修改、写入测试数据
  • nginx添加几十个域名
  • ffmpeg获取视频封面图片
  • 源码包安装 以及升级内核 上课内容
  • 实现 el-table 拖拽行排序,并获取当前拖拽行的数据传入服务器
  • js的面向对象编程
  • GitLab在centos7上安装和使用
  • 外行人都能看得懂的机器学习,错过了血亏!
  • [ JavaScript ] 数据结构与算法 —— 链表
  • Bootstrap JS插件Alert源码分析
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • ECMAScript6(0):ES6简明参考手册
  • Golang-长连接-状态推送
  • JavaScript 基本功--面试宝典
  • JavaScript 基础知识 - 入门篇(一)
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • JavaScript-Array类型
  • leetcode讲解--894. All Possible Full Binary Trees
  • Linux中的硬链接与软链接
  • mysql中InnoDB引擎中页的概念
  • Redis 懒删除(lazy free)简史
  • tensorflow学习笔记3——MNIST应用篇
  • Vue官网教程学习过程中值得记录的一些事情
  • webpack4 一点通
  • zookeeper系列(七)实战分布式命名服务
  • 给第三方使用接口的 URL 签名实现
  • 如何编写一个可升级的智能合约
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 通过几道题目学习二叉搜索树
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • (1)(1.13) SiK无线电高级配置(六)
  • (39)STM32——FLASH闪存
  • (Ruby)Ubuntu12.04安装Rails环境
  • (第二周)效能测试
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .NET Project Open Day(2011.11.13)
  • .net的socket示例
  • .NET项目中存在多个web.config文件时的加载顺序
  • .Net小白的大学四年,内含面经
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)
  • [Android]常见的数据传递方式