• 在线支付(支付宝)模块


    参考博友 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"]进行比较,如果是相同就代表签名正确,没有被篡改。

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

    源码下载

  • 相关阅读:
    软件工程课感想
    冲刺阶段(二)第五天 5月19日
    CATransition转场动画
    UIView与CALayer的区别
    CALayer的基本属性
    CALayer的基本属性和contexts的内容 即添加图片
    Quartz2D-master手动截图
    CoreAnimation-06-CAKeyframeAnimation 相关代码
    CoreAnimation-06-CAKeyframeAnimation
    视频播放
  • 原文地址:https://www.cnblogs.com/hanmeimei/p/onlinepay.html
Copyright © 2020-2023  润新知