【问题标题】:Generating signatures for PayPal authentication header in C#在 C# 中为 PayPal 身份验证标头生成签名
【发布时间】:2015-12-03 19:18:27
【问题描述】:

我的目标是代表第 3 方商家向另一个贝宝帐户发送发票。我正在使用权限服务成功获取权限,从而生成访问令牌和相关密钥。

但是,我不明白在创建/发送发票时如何使用访问令牌和相关秘密来构建标题。

我正在使用C# .NET Invoicing SDKInvoicing Service API 通信。

这是我用来创建和发送发票的代码。

RequestEnvelope envelopeRequest = new RequestEnvelope();
envelopeRequest.errorLanguage = "en_GB";

List<InvoiceItemType> invoiceItemList = new List<InvoiceItemType>();

InvoiceItemType invoiceItem = new InvoiceItemType("Item", Convert.ToDecimal("2"), Convert.ToDecimal("4.00"));
invoiceItemList.Add(invoiceItem);

InvoiceItemListType itemList = new InvoiceItemListType(invoiceItemList);

InvoiceType invoice = new InvoiceType("jb-us-seller@paypal.com", "jbui-us-personal1@paypal.com", itemList, "USD");

CreateAndSendInvoiceRequest requestCreateAndSendInvoice = new CreateAndSendInvoiceRequest(envelopeRequest, invoice);

InvoiceService service = new InvoiceService();

responseCreateAndSendInvoice = service.CreateAndSendInvoice(requestCreateAndSendInvoice);

【问题讨论】:

    标签: c# paypal paypal-rest-sdk


    【解决方案1】:

    在黑暗中摸索了很长一段时间后,我发现 .NET Invoicing SDK 负责创建标头。 InvoiceService 有两种方法将令牌和秘密分配给标头。详情见下文。

    RequestEnvelope envelopeRequest = new RequestEnvelope();
    envelopeRequest.errorLanguage = "en_GB";
    
    List<InvoiceItemType> invoiceItemList = new List<InvoiceItemType>();
    
    InvoiceItemType invoiceItem = new InvoiceItemType("Item", Convert.ToDecimal("2"), Convert.ToDecimal("4.00"));
    invoiceItemList.Add(invoiceItem);
    
    InvoiceItemListType itemList = new InvoiceItemListType(invoiceItemList);
    
    InvoiceType invoice = new InvoiceType("shop1@test.co.uk", "buyer1@gmail.com", itemList, "USD");
    
    CreateAndSendInvoiceRequest requestCreateAndSendInvoice = new CreateAndSendInvoiceRequest(envelopeRequest, invoice);
    
    Dictionary<string, string> list = new Dictionary<string, string>();
    list.Add("mode", "sandbox");
    list.Add("account1.apiUsername", "contact-facilitator_api1.testdomain.com");
    list.Add("account1.apiPassword", "xxxx");
    list.Add("account1.apiSignature", "xxxx--xxx");
    
    InvoiceService service = new InvoiceService(list);
    
    service.SetAccessToken(accessToken);
    service.SetAccessTokenSecret(secret);
    
    responseCreateAndSendInvoice = service.CreateAndSendInvoice(requestCreateAndSendInvoice); 
    

    【讨论】:

      猜你喜欢
      • 2014-03-06
      • 2013-08-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-03
      • 2021-08-11
      • 2015-09-09
      • 1970-01-01
      • 2019-09-20
      相关资源
      最近更新 更多