3

我需要在 Realex 支付中更新现有卡上的到期日期并更新持卡人姓名。

哈希值语法应采用以下格式:

Timestamp.merchantID.payerref.ref.expirydate.cardnumber

这是一个外观示例

20030516175919.yourmerchantid.mypayer.card01.1015.

当我运行以下方法时,我收到错误:

“sha1hash 不正确 - 检查您的代码和开发人员文档”

private string ReturnHash(string timeStamp, string merchantId, string payerRef, string reference, string expDate, string cardNum )
{
    SHA1 hash = new SHA1Managed();
    StringBuilder builder = new StringBuilder();

    builder.Append(timeStamp).Append(".");
    builder.Append(merchantId).Append(".");
    builder.Append(payerRef).Append(".");
    builder.Append(reference).Append(".");
    builder.Append(expDate).Append(".");
    builder.Append(cardNum );

    string resultingHash = BitConverter.ToString(hash.ComputeHash(Encoding.UTF8.GetBytes(builder.ToString())));
    resultingHash = BitConverter.ToString(hash.ComputeHash(Encoding.UTF8.GetBytes(resultingHash)));

    return resultingHash;
}

我究竟做错了什么?

4

1 回答 1

0

感谢您的留言。

你可以在运行这行代码之前尝试一下吗:

string resultingHash = BitConverter.ToString(hash.ComputeHash(Encoding.UTF8.GetBytes(builder.ToString())));

使“resultingHash”全部小写?

同样在运行之前:

resultingHash = BitConverter.ToString(hash.ComputeHash(Encoding.UTF8.GetBytes(resultingHash)));

将“resultingHash”也设为小写。

谢谢,博尔哈

于 2016-02-19T17:50:29.020 回答