Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Realex HPP请求-自定义字段_C#_Json_E Commerce_Realex Payments Api - Fatal编程技术网

C# Realex HPP请求-自定义字段

C# Realex HPP请求-自定义字段,c#,json,e-commerce,realex-payments-api,C#,Json,E Commerce,Realex Payments Api,我正在尝试向realex发送一个自定义字段,以便在成功响应时使用。该字段是一个json数组 [{"InvoiceId":7,"AmountPaid":180,"SucessfulPayment":false}] 我面临的问题是在响应时数组被截断为[{。我用base 64编码数组,但感觉有点重,宁愿发送原始json。我还担心字段长度可能有字符限制,这会很快被占用。如果长度没有限制,我可能会使用base 64 更新 按要求编码 传递到请求对象的JSON数组 [{"InvoiceId":7,"Amo

我正在尝试向realex发送一个自定义字段,以便在成功响应时使用。该字段是一个json数组

[{"InvoiceId":7,"AmountPaid":180,"SucessfulPayment":false}]
我面临的问题是在响应时数组被截断为
[{
。我用base 64编码数组,但感觉有点重,宁愿发送原始json。我还担心字段长度可能有字符限制,这会很快被占用。如果长度没有限制,我可能会使用base 64

更新 按要求编码

传递到请求对象的JSON数组

[{"InvoiceId":7,"AmountPaid":180,"SucessfulPayment":false}]
realex响应返回

[{
代码:


很抱歉,未能及时回复您,未看到您的回复通知。在POST in中,HPP将不接受倒逗号,并在字符串中的该点截断

您可以尝试在输出时对字符串进行url编码,并在响应返回时进行解码吗?HPP上自定义字段的最大长度为255。或者您可以只对倒逗号进行url编码。希望这能满足您的需要。如果没有,请告诉我

最好的

塞恩·麦克多姆纳尔


Realex Payments

您好,谢谢您的提问。您是否试图将此自定义字段发送到HPP或XML API?如果您可以提供请求的示例(无论是XML还是HTTP POST)这将帮助我回答您的问题。谢谢。Seán.Http post Sean。不在工作atm。将在半小时左右发布代码。chearshi@realex payments请查看下面的代码Hanks Sean这正是我要找的。
<%@ Page Language="C#" AutoEventWireup="true" 
CodeBehind="RealexRedirectTestPay.aspx.cs"
Inherits="SmartClubOnline.RedirectTest" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body onload="document.form.submit();">
    <div class="content">
        <form name="form" 
action="https://hpp.sandbox.realexpayments.com/pay" method="post">
        <asp:Literal ID="MERCHANT_ID" runat="server" />
        <asp:Literal ID="SECRET_ID" runat="server" />
        <asp:Literal ID="CLUB_NAME" runat="server" />
        <asp:Literal ID="ORDER_ID" runat="server" />
        <asp:Literal ID="CURRENCY_ID" runat="server" />
        <asp:Literal ID="CURRENCY" runat="server" />
        <asp:Literal ID="AMOUNT" runat="server" />
        <asp:Literal ID="TIMESTAMP" runat="server" />
        <asp:Literal ID="MEMBER_ID" runat="server" />
        <asp:Literal ID="MEMBER_USERNAME" runat="server" />
        <asp:Literal ID="MEMBER_EMAIL" runat="server" />
        <asp:Literal ID="INVOICE_ID" runat="server" />
        <asp:Literal ID="MEMBERPURSEID" runat="server" />
        <asp:Literal ID="SHA1HASH" runat="server" />
        <asp:Literal ID="TempOrderNumber" runat="server" />
        <asp:Literal ID="PromoRow" runat="server" />
        <asp:Literal ID="DELAYEDSETTLEMENTON" runat="server" />
        <asp:Literal ID="CREDITCARD_SHG_AMT" runat="server" />
        <asp:Literal ID="DEBITCARD_SHG_AMT" runat="server" />
        <asp:Literal ID="AUTO_SETTLE_FLAG" runat="server" />
        <asp:Literal ID="MERCHANT_RESPONSE_URL" runat="server" />
        <!--<input type="hidden" name="AUTO_SETTLE_FLAG" value="1" />-->
        <h3>
            Redirecting you to our Payment Provider</h3>
        <p>
            You are being securely redirected to our payment provider...Please Wait...</p>
        <!-- uncomment if you want the user to click a button to continue. Also remove the onload function in the Body tag -->
        <!-- <p><input type="submit" name="submit" value="continue to payment provider" /></p> -->
        </form>
    </div>
</body>
</html>
            MERCHANT_ID.Text = "<input type=\"hidden\" name=\"MERCHANT_ID\" 
value=\"" + merchantID + "\" />";
            SECRET_ID.Text = "<input type=\"hidden\" name=\"SECRET_ID\" 
value=\"" + sharedSecret + "\" />";
            CLUB_NAME.Text = "<input type=\"hidden\" name=\"CLUB_NAME\" 
value=\"" + CLUBNAME + "\" />";
            ORDER_ID.Text = "<input type=\"hidden\" name=\"ORDER_ID\" 
value=\"" + orderID + "\" />";
            CURRENCY.Text = "<input type=\"hidden\" name=\"CURRENCY\" 
value=\"" + currencyCode + "\" />";
            CURRENCY_ID.Text = "<input type=\"hidden\" name=\"CURRENCY_ID\" 
value=\"" + currencyCode + "\" />";
            AMOUNT.Text = "<input type=\"hidden\" name=\"AMOUNT\" value=\"" 
+ amount + "\" />";
            TIMESTAMP.Text = "<input type=\"hidden\" name=\"TIMESTAMP\" 
value=\"" + timestamp + "\" />";
            MEMBER_ID.Text = "<input type=\"hidden\" name=\"MEMBER_ID\" 
value=\"" + MEMBERID + "\" />";
            MEMBER_USERNAME.Text = "<input type=\"hidden\" 
name=\"MEMBER_USERNAME\" value=\"" + MEMBERUSERNAME + "\" />";
            MEMBER_EMAIL.Text = "<input type=\"hidden\" 
name=\"MEMBER_EMAIL\" value=\"" + MEMBEREMAIL + "\" />";
            INVOICE_ID.Text = "<input type=\"hidden\" name=\"INVOICE_ID\" 
value=\"" + INVOICEID + "\" />";
            MEMBERPURSEID.Text = "<input type=\"hidden\" 
name=\"MEMBERPURSEID\" value=\"" + "0" + "\" />";
            SHA1HASH.Text = "<input type=\"hidden\" name=\"SHA1HASH\" 
value=\"" + hash + "\" />";
            AUTO_SETTLE_FLAG.Text = "<input type=\"hidden\" 
name=\"AUTO_SETTLE_FLAG\" value=\"" + AUTOSETTLEFLAG + "\" />";
            DELAYEDSETTLEMENTON.Text = "<input type=\"hidden\" 
name=\"DELAYEDSETTLEMENTON\" value=\"" + DELAYEDSETTLEFLAG + "\" />";
            CREDITCARD_SHG_AMT.Text = "<input type=\"hidden\" 
name=\"CREDITCARD_SHG_AMT\" value=\"" + CREDITCARD_SHG + "\" />";
            DEBITCARD_SHG_AMT.Text = "<input type=\"hidden\" 
name=\"DEBITCARD_SHG_AMT\" value=\"" + DEBITCARD_SHG + "\" />";
            MERCHANT_RESPONSE_URL.Text = "<input type=\"hidden\" 
name=\"MERCHANT_RESPONSE_URL\" value=\"" + _realexResponseURL + "\" />";
if (Request.Form["INVOICE_ID"] != null)
   INVOICEID = Request.Form["INVOICE_ID"].ToString();
else
    StaticOps.AddErrorToLog("FORM.INVOICE_ID : ", "VALUE NULL", 
"RealexResponse");