在Realex付款中创建哈希

时间:2016-02-18 12:38:15

标签: c# realex-payments-api

我需要更新到期日并更新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;
}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

感谢您的留言。

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

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

使“resulHash”全部小写?

在跑步之前:

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

将“resulHash”设为小写。

谢谢, 博尔哈