【问题标题】:mvc paypal payment details amount dont showmvc paypal 付款详情金额不显示
【发布时间】:2013-05-14 21:20:28
【问题描述】:

在我的项目中包括贝宝快速结帐。我在下面的课程中发送所有详细信息。下面是我的代码;

public class PayPal
{
    public static PayPalRedirect ExpressCheckout(PayPalOrder order)
    {
        var values = new NameValueCollection();
        values["USER"] = PayPalSettings.Username;
        values["PWD"] = PayPalSettings.Password;
        values["SIGNATURE"] = PayPalSettings.Signature;
        values["METHOD"] = "SetExpressCheckout";
        values["VERSION"] = "63.0";
        values["RETURNURL"] = PayPalSettings.ReturnUrl;
        values["CANCELURL"] = PayPalSettings.CancelUrl;
        values["PAYMENTREQUEST_0_PAYMENTACTION"] = "SALE";
        values["PAYMENTREQUEST_0_CURRENCYCODE"] = "USD";
        values["PAYMENTREQUEST_0_AMT"] = order.Amount.ToString("0.00", CultureInfo.InvariantCulture);
        values["PAYMENTREQUEST_0_DESC"] = "Apart Name";


        values = Submit(values);

        string ack = values["ACK"].ToLower();

        if (ack == "success" || ack == "successwithwarning")
        {
            return new PayPalRedirect
            {
                Token = values["TOKEN"],
                Url = String.Format("https://{0}/cgi-bin/webscr?cmd=_express-checkout&token={1}",
                   PayPalSettings.CgiDomain, values["TOKEN"])
            };
        }
        throw new Exception(values["L_LONGMESSAGE0"]);
    }

    private static NameValueCollection Submit(NameValueCollection values)
    {
        string data = String.Join("&", values.Cast<string>()
          .Select(key => String.Format("{0}={1}", key, HttpUtility.UrlEncode(values[key]))));

        var request = (HttpWebRequest)WebRequest.Create(
           String.Format("https://{0}/nvp", PayPalSettings.ApiDomain));

        request.Method = "POST";
        request.ContentLength = data.Length;

        using (var writer = new StreamWriter(request.GetRequestStream()))
        {
            writer.Write(data);
        }

        using (var reader = new StreamReader(request.GetResponse().GetResponseStream()))
        {
            return HttpUtility.ParseQueryString(reader.ReadToEnd());
        }
    }
}

还有我的控制器;

 public ActionResult Pay(FormCollection form)
    {
        var redirect = PayPal.ExpressCheckout(new PayPalOrder { Amount = 50 });
        Session["token"] = redirect.Token;
        return new RedirectResult(redirect.Url);
    }

但是我无法在 paypal 页面上显示金额??????我显示 desc 但我不显示金额???怎么了?谢谢你的答复。

【问题讨论】:

    标签: c# asp.net-mvc paypal


    【解决方案1】:

    你有没有通过Amount,我认为你没有通过Amount值如果没有那么添加

    public class CartController : Controller
    {
       public ActionResult Index()
       {
          return View();
       }
    
       public ActionResult Pay()
       {
          PayPalRedirect redirect = PayPal.ExpressCheckout(new PayPalOrder { Amount = 50 });
    
          Session["token"] = redirect.Token;
    
          return new RedirectResult(redirect.Url);
       }
    }
    

    更多详情请查看PayPal with ASP.NET MVC

    希望对你有帮助。

    【讨论】:

    • 我添加了它。并且金额即将到来 PayPalOrder 但我在贝宝页面上发送时看不到金额。
    • 我的版本问题可以吗?
    • 可以尝试更改版本然后检查。
    • 我检查它。并更改版本 63.0。但它不是显示。我不明白出了什么问题?
    • 是的,我找到了:)。必须使用 L_PAYMENTREQUEST_0_..... 只是 PAYMENTREQUEST_AMT 不起作用。
    【解决方案2】:

    尝试传递一个订单项名称和金额,看看它是否会在这种情况下显示。另外,您能否提供您发送到 PayPal 的实际数据字符串,减去您的 API 凭据,以便我可以使用我的 API 凭据对其进行测试。

    例子:

    https://api-3t.sandbox.paypal.com/nvp?USER=paypal_api1.x.com&PWD=NAEWP67N2BMRSD234P2&SIGNATURE=Ae0iZ4smtdchhBLFKKdS8s8OSA220f033rNWM4EYTk1J-tsdbDOFq0JpNi&METHOD=SetExpressCheckout&VERSION=92.0&RETURNURL=https://www.ccaples.com/mts/pp_nvp_quick_test.php&CANCELURL=https://www.ccaples.com/mts/pp_nvp_quick_test.php&PAYMENTREQUEST_0_PAYMENTACTION=Sale&PAYMENTREQUEST_0_AMT=200&PAYMENTREQUEST_0_ITEMAMT=200&PAYMENTREQUEST_0_SHIPPINGAMT=0.00&PAYMENTREQUEST_0_TAXAMT=0.0&PAYMENTREQUEST_0_CURRENCYCODE=USD&PAYMENTREQUEST_0_DESC=test EC payment
    

    【讨论】:

    • 感谢您的回复。我试试看。和消息;时间戳= 2013%2d05%2d20t11%3a50%3a37z&correlationId = c0bf84f7e61fb&ack = fault&version = 92%2e0&build = 6020375&l_errorcode0 = 10002&l_shortmode0 = security%20error&l_longmessage0 = security%20header%20is%20 not%20valid&l_severitycode0 =错误....我的页面消息; TOKEN=EC%2d09435481S1171634R&TIMESTAMP=2013%2d05%2d20T11%3a46%3a49Z&CORRELATIONID=f433f5dfdf68f&ACK=Success&VERSION=92%2e0&BUILD=6020375
    猜你喜欢
    • 2020-09-18
    • 2020-09-02
    • 2014-06-15
    • 2017-02-08
    • 2020-05-12
    • 2015-02-26
    • 2015-07-18
    • 2012-09-17
    • 2017-02-07
    相关资源
    最近更新 更多