如何调试 '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 详细信息的权限。
我在 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 详细信息的权限。