2012-09-15 43 views
0

我的形式是目前这样的:Dwolla付款形式无效时间戳

<form action="https://www.dwolla.com/payment/pay" method="POST" class="form-horizontal"> 
    <input type="hidden" name="_csrf" value="[redacted]"> 
    <input type="hidden" name="key" value="[redacted]"> 
    <input type="hidden" name="signature" value="[redacted]"> 
    <input type="hidden" name="timestamp" value="1347696587496"> 
    <input type="hidden" name="callback" value="http://127.0.0.1:3000/donate/dwolla"> 
    <input type="hidden" name="redirect" value="http://127.0.0.1:3000/credits"> 
    <input type="hidden" name="test" value="1"> 
    <input type="hidden" name="destinationId" value="812-726-7978"> 
    <input type="hidden" name="shipping" value="0.25"> 
    <input type="hidden" name="tax" value="0"> 
    <input type="hidden" name="name" value="donation credit"> 
    <input type="hidden" name="description" value="donation credit"> 
    <!-- amount input and submit button --> 
</form> 

如何使用Node.js,我创建了我的签名如下所示(请注意,我不使用任何订单ID):

dwolla.signature.create = function(timestamp) { 
    return crypto 
    .createHmac('sha1', dwolla.secret) 
    .update(dwolla.key) 
    .update('&') 
    .update(timestamp.getTime().toString()) 
    .update('&') 
    .digest('hex') 
} 

var timestamp = new Date() 
var signature = dwolla.signature.create(timestamp) 

现在,当我点击提交时,我在以下地址得到一个回调:http://127.0.0.1:3000/credits?error=failure&error_description=Invalid+timestamp.这意味着至少我的密钥/秘密是有效的,我的签名也是如此,但我的时间戳不是。

我的时间戳有什么问题?

回答

0

Javascript时间以毫秒为单位,不是秒-_-