2012-09-15 99 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時間以毫秒爲單位,不是秒-_-