• 【签名验证】支付宝即时到帐验证体系


    有时候,作为服务的提供者S,须要保证与客户C间交易的可靠性和安全性。

    这样的可靠性和安全性表如今:

    (1)S 拒绝全部非C的请求。

    (2)防止非C伪造C的请求。


    支付宝作为国内最大的在线第三方支付服务。在这方面是怎样保证上述的可靠性和安全性的?

    1. 使用Https安全连接,保证通信协议安全。

    2. 使用签名密钥校验。(与加密密钥不同)


    例如以下图为支付宝和客户间的马上支付体系流程


    首先,商户通过注冊帐号会获得一个客户专有的签名密钥key,(好像是32位)。

    客户准备好 orderInfo(订单信息),returnUrl(成功后跳转链接),vendorId(客户ID);

    客户发送时签名sign为:

    sign1 = MD5(orderInfo+returnUrl+vendorId+key);  非key的字段会依据字段名的字母排序

    然后,client会把 orderInfo, returnUrl, vendorId, sign 一起post到支付宝服务端。

    支付宝获取到请求后:

    (1) 依据vendorId从自己的数据服务内获取该商户的签名密钥key2。

    假设合法。key1 = key2 否则不想等,或者不存在

    (2) 计算 sign2 =  MD5(orderInfo+returnUrl+vendorId+key2); 

    (3) 假设 sign1 == sign2 则处理请求,否则返回错误。

    (4) 成功后重定向到 returnUrl。返回商户页面。


    逻辑并不复杂,你也能够使用它在自己的服务中~


    附接口文档地址:

    http://wenku.baidu.com/link?url=aCtpvRAXhqqiLQZbvRPwZYP6jx_d_7h18Ea_zsN1JhzjFDW99UXamI-0L3kUdZ7vvN_1AcWEzAjzXrspHJZ5yFbbiKgl8wxCW4CtfAf-4mq

  • 相关阅读:
    百度地图 导航
    设置cookies第二天0点过期
    GDI+一般性错误(A generic error occurred in GDI+)
    图片上传裁剪(asp.net)
    LeetCode_7. Reverse Integer
    LeetCode_1. Two Sum
    JAVA 基础编程练习题50 【程序 50 文件 IO】
    JAVA 基础编程练习题49 【程序 49 子串出现的个数】
    JAVA 基础编程练习题48 【程序 48 加密】
    JAVA 基础编程练习题47 【程序 47 打印星号】
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/6794722.html
Copyright © 2020-2023  润新知