【问题标题】:How do I debug a 'malformed request'?如何调试“格式错误的请求”?
【发布时间】:2018-01-04 14:47:24
【问题描述】:

我在 Visual Studio 2015 中使用 PayPal REST API。我在 Sandbox 上收到一个“格式错误的请求”,使用的是 paypal 存储的 ccard(将令牌传递给 paypal api)。 调试 ID:5b98f22095ba7

如何在提交到 PayPal 时捕获请求,以便将其与预期的请求格式进行比较?或者,有人可以向我指出一个工具,它可以为我提供有关我的调试 ID 的详细信息吗?

谢谢!

?详情 {PayPal.Api.Details} 费用:“0.00” 礼物包装:“0.00” 处理费:“0.00” 保险:“0.00” 运费:“0.00” 运费折扣:“0.00” 小计:“55.00” 税:“2.75”

?paypalItem {PayPal.Api.Item} 类别:空 货币:“加元” 描述:“个人课程” 高度:空 长度:空 名称:“LetsRide:个人课程” 回发数据:空 价格:“55.00” 数量:“1” 货号:“1” 补充数据:空 税:“2.75” 网址:空 重量:空 宽度:空 ?amnt {PayPal.Api.Amount} 货币:“加元” 详细信息:{PayPal.Api.Details} 总计:“57.75” ?pInfo {PayPal.Api.PayerInfo} 帐单地址:空 出生日期:空 买家帐户号码:空 国家代码:空 电子邮件:空 external_remember_me_id:空 first_name: "测试" 姓氏:“用户” 中间名:空 payer_id:“测试” 电话:空 电话类型:空 称呼:空 运输地址:空 后缀:空 税号:空 tax_id_type: 空 ?付款人 {PayPal.Api.Payer} 帐户年龄:空 帐户类型:空 external_selected_funding_instrument_type:空 资金工具:计数 = 1 资金选项:空 资金选项ID:空 付款人信息:{PayPal.Api.PayerInfo} 付款方式:“信用卡” 相关资金选项:空 状态:空 ? {PayPal.Api.Phone} 国家代码:“+1” 扩展名:空 national_number: "3066920xxx" // 已编辑 {PayPal.Api.Payee} 电子邮件:“有效的电子邮件地址 - 已编辑” Mercer_id:“有效的商家 ID - 已编辑” 电话:空

?付款 {PayPal.Api.Payment} billing_agreement_tokens:空 购物车:空 创建时间:空 experience_profile_id:空 failed_transactions:空 失败原因:空 编号:空 意图:“销售” 链接:空 note_to_payer:空 收款人:{PayPal.Api.Payee} 付款人:{PayPal.Api.Payer} 付款指令:空 重定向网址:空 状态:空 令牌:空 交易:计数 = 1

update_time: null

               intentStr = "sale";

                // Now create Payer object and assign the fundinginstrument list to the object
                PayerInfo pInfo = new PayerInfo();
                pInfo.first_name = orderMaster.FirstName;
                pInfo.last_name = orderMaster.LastName;
                pInfo.payer_id = user.UserName;
                Payer payr = new Payer();
                payr.payer_info = pInfo;
                payr.funding_instruments = CreatePayPalFundingInstrumentList(PPCCToken);
                payr.payment_method = "credit_card";
                Phone phn = new Phone();
                phn.country_code = "+1";
                phn.national_number = userCompany.paypalPhone;
                Payee pyee = new Payee();
                pyee.email = userCompany.paypalEmail;
                pyee.merchant_id = userCompany.paypalMerchantId;

                // finally create the payment object and assign the payer object & transaction list to it
                payment = new Payment()
                {
                    intent = intentStr,    // `sale` or `authorize`
                    payer = payr,
                    payee = pyee,
                    transactions = GetTransactionsList(orderMaster)
                };

【问题讨论】:

  • 您是否能够拦截使用 Fiddler 发送的有效负载?
  • 感谢 mj - 我以前没有使用过 Fiddler,但肯定会花一些时间来尝试学习如何使用它!

标签: c# paypal-sandbox paypal-rest-sdk malformed


【解决方案1】:

自行解决:我删除了我为第三方付款创建的“payee = pyee”部分,并且我从 paypal api 收到了更清晰的错误消息。 错误与我使用的测试信用卡有关,不支持加币!!

伙计 - 花两天时间尝试调试代码!!!!!

在保险库中捕获了一张不同的测试信用卡,问题解决了!

希望贝宝能够更清楚地显示错误消息!或者 - 让开发人员访问调试 ID 详细信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 2015-07-11
    • 1970-01-01
    相关资源
    最近更新 更多