如何调试 'malformed request'?

How do I debug a 'malformed request'?

我在 Visual Studio 2015 年使用 PayPal REST API。我在我的 Sandbox 上收到了一个 'malformed request' 使用贝宝存储的 ccard 支付(将令牌传递给贝宝 api). 调试 ID:5b98f22095ba7

如何在提交给 PayPal 时捕获请求,以便将其与预期的请求格式进行比较?或者,有人可以给我指点一个工具,让我了解我的调试 ID 的详细信息吗?

谢谢!

?详情 {PayPal.Api.Details} 费用:“0.00” gift_wrap:“0.00” handling_fee: "0.00" 保险:“0.00” 运费:“0.00” shipping_discount:“0.00” 小计:“55.00” 税:“2.75”

?paypalItem {PayPal.Api.Item} 类别:空 货币:"CAD" 描述:"Individual Lesson" 身高:无 长度:空 姓名:"LetsRide: Individual Lesson" postback_data: 空 价格:“55.00” 数量:“1” 存货单位:“1” supplementary_data: 空 税:“2.75” url: 空 体重:无 宽度:空 ? {PayPal.Api.Amount} 货币:"CAD" 详情:{PayPal.Api.Details} 总计:“57.75” ?p信息 {PayPal.Api.PayerInfo} billing_address: 空 birth_date: 空 buyer_account_number: 空 country_code: 空 电子邮件:空 external_remember_me_id: 空 first_name: "Test" last_name: "User" middle_name: 空 payer_id: "test" phone: 空 phone_type: 空 称呼:无 shipping_address: 空 后缀:空 tax_id: 空 tax_id_类型:空 ?付款人 {PayPal.Api.Payer} account_age: 空 account_type:空 external_selected_funding_instrument_type: 空 funding_instruments:计数 = 1 funding_option: 空 funding_option_id: 空 payer_info:{PayPal.Api.PayerInfo} payment_method: "credit_card" 相关_funding_option:空 状态:空 ? {PayPal.Api.Phone} country_code:“+1” 扩展名:空 national_number: "3066920xxx" // 已编辑 {PayPal.Api.Payee} 电子邮件:"valid email adress - redacted" merchant_id: "valid merchant id - redacted" phone: 空

?付款 {PayPal.Api.Payment} billing_agreement_tokens: 空 购物车:空 create_time: 空 experience_profile_id: 空 failed_transactions: 空 failure_reason: 空 编号:空 意图:"sale" 链接:空 note_to_payer: 空 收款人:{PayPal.Api.Payee} 付款人:{PayPal.Api.Payer} payment_instruction: 空 redirect_urls: 空 状态:空 令牌:空 交易:计数 = 1

update_time: 空

               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)
                };

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

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

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

希望 paypal 可以更清楚地显示错误信息!或者 - 授予开发人员访问调试 ID 详细信息的权限。