0

Windows ユニバーサル アプリの開発は初めてです。現在、PayU を統合する必要があるアプリを開発しています。私はたくさん試しましたが、サーバーからトランザクションエラーがスローされるたびに.

string temp1 = "key=xxxxxx&txnid=xxxxxx&hash=hashValue&amount=xxx&firstname=abc" + 
  "&email=a@a.com&phone=80xxxxxxxx&productinfo=xxxxxxxxxxxx" + 
  "&surl=https://www.google.com&furl=https://www.twitter.com" + 
  "&udf1=a&udf2=b&udf3=c&udf4=d&udf5=e&pg=CC&bankcode=CC" + 
  "&ccardtype=CC&ccnum=1234xxxxxxxxx&ccname=xxx&ccvv=xxx" +
  "&ccexpmon=xx&ccexpyr=xxxx";

var httpClient = new Windows.Web.Http.HttpClient();
Windows.Web.Http.HttpRequestMessage httpRequestMessage = new Windows.Web.Http.HttpRequestMessage(Windows.Web.Http.HttpMethod.Post, theUri);
Windows.Web.Http.IHttpContent content = new Windows.Web.Http.HttpStringContent(temp1, Windows.Storage.Streams.UnicodeEncoding.Utf8);
httpRequestMessage.Content = content;
try
{
    webView.NavigateWithHttpRequestMessage(httpRequestMessage);
}
catch(Exception f)
{
    new MessageDialog(f.ToString()).ShowAsync();
}

そして、メソッドを使用して hashValue を作成しています:

 public String SampleHashMsg(String strMsg)
    {
        // Convert the message string to binary data.
        string strAlgName = HashAlgorithmNames.Sha512;
        IBuffer buffUtf8Msg = CryptographicBuffer.ConvertStringToBinary(strMsg, BinaryStringEncoding.Utf8);

        // Create a HashAlgorithmProvider object.
        HashAlgorithmProvider objAlgProv = HashAlgorithmProvider.OpenAlgorithm(strAlgName);

        // Demonstrate how to retrieve the name of the hashing algorithm.
        String strAlgNameUsed = objAlgProv.AlgorithmName;

        // Hash the message.
        IBuffer buffHash = objAlgProv.HashData(buffUtf8Msg);

        // Verify that the hash length equals the length specified for the algorithm.
        if (buffHash.Length != objAlgProv.HashLength)
        {
            throw new Exception("There was an error creating the hash");
        }

        // Convert the hash to a string (for display).
        //String strHashBase64 = CryptographicBuffer.EncodeToBase64String(buffHash);

        String strHashBase64 = CryptographicBuffer.EncodeToHexString(buffHash);
        // Return the encoded string

        return strHashBase64;
    }

リクエストを webview にロードする必要があります。しかし、その中に「トランザクションエラー」というエラーが表示されます。

トランザクション エラーが発生しました。txnid が提供されていません。PayU側では、送信されたハッシュキーがトランザクションの検証に使用されます。私のtxnidとハッシュに含まれるtxnidが一致しない可能性があり、payuサーバーはtxnidを提供すると言ってトランザクションを拒否します。

アプリの開発には Microsoft Visual Studio 2013 Universal アプリを使用しています。

しかし、それでも正しい結果が得られません。誰かが私を助けることができれば、すぐに返信してください。前もって感謝します。

4

0 に答える 0