zoukankan      html  css  js  c++  java
  • 在线支付(支付宝)模块

    参考博友 bluewater  sufei推荐 StephenHuang推荐

    先来了解一下大体流程如下图:

    提交表单页里的支付按钮是把表单里的商品信息及支付信息做为AliPay类的CreatUrl()方法的参数,CreatUrl()方法会把这些参数经过一系列操作后返回一个Url,这个Url的功能就是向支付宝系统提交这些参数信息,而且这些参数中还包括用GetMD5()方法返回的用于签名的字符串sign。最后通过Response.Redirect(Url)就完成提交。

    CreatUrl()方法的主要代码如下图:

    参数的意义如下图:

    这些参数必须是支付宝文档中指定的参数,不能自定义,也不能为空,但可以不传递。

    提交后支付宝系统会根据Url里notify_url和return_url返回一些通知信息到相应的页面,通知信息包括我们在notify页或return页里要用到的notify_id参数。

    notify通知与return通知是有区别的,如下图:

    根据支付宝系统post过来的信息,使用Get_Http()方法可以用来判断订单信息是否正确,Get_Http()方法如下图:

    根据post回来的键的集合及合作伙伴ID,使用GetMd5()方法返回签名字符串与得到的签名Request.Form["sign"]进行比较,如果是相同就代表签名正确,没有被篡改。

    当签名正确并且订单信息正确就表示交易成功。

    源码下载

  • 相关阅读:
    echo和重定向
    grep命令
    重温JSP学习笔记--JSP动作标签
    重温JSP学习笔记--El表达式
    重温JSP学习笔记--El函数库
    重温JSP学习笔记--JSTL标签库
    重温JSP学习笔记
    Android 用 camera2 API 自定义相机
    从零开始用 Flask 搭建一个网站(一)
    从零开始用 Flask 搭建一个网站(二)
  • 原文地址:https://www.cnblogs.com/hanmeimei/p/onlinepay.html
Copyright © 2011-2022 走看看