Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Delphi ActiveX) Amazon MWS Upload InvoiceDemonstrates how to upload an invoice using _UPLOAD_VAT_INVOICE_FeedType to submit an invoice for an order. For more information, see https://m.media-amazon.com/images/G/03/B2B/invoice-uploader-developer-documentation.pdf
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB; ... procedure TForm1.Button1Click(Sender: TObject); var success: Integer; rest: TChilkatRest; bTls: Integer; port: Integer; bAutoReconnect: Integer; pdfData: TChilkatBinData; crypt: TChilkatCrypt2; md5Hash: WideString; sbResponseBody: TChilkatStringBuilder; begin // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. rest := TChilkatRest.Create(Self); // Connect to the Amazon MWS REST server. // // Make sure to connect to the correct Amazon MWS Endpoint, otherwise // you'll get an HTTP 401 response code. // // See Amazon MWS endpoints and MarketplaceId values bTls := 1; port := 443; bAutoReconnect := 1; success := rest.Connect('mws.amazonservices.com',port,bTls,bAutoReconnect); rest.Host := 'mws.amazonservices.com'; // MarketplaceList.Id parameter �This should be the marketplace in which the order was placed. Only one marketplace must be used per order.T // Here are the marketplace ID's // Spain: A1RKKUPIHCS9HS // UK: A1F83G8C2ARO7P // France: A13V1IB3VIYZZH // Germany: A1PA6795UKMFR9 // Italy: APJ6JRA9NG5V4 // ... // (See https://docs.developer.amazonservices.com/en_US/dev_guide/DG_Endpoints.html) // FeedOptions parameter � Seller can input key value pairs to give important metadata along with the PDF invoice. rest.AddQueryParam('FeedOptions','metadata:orderid=206-2341234-3455465;metadata:invoicenumber=INT-3431-XJE3;metadata:documenttype=Invoice'); // Load the PDF invoice file that is to be the body of the HTTP POST request. pdfData := TChilkatBinData.Create(Self); success := pdfData.LoadFile('qa_data/pdf/sample.pdf'); // Get the MD5 hash of the PDF data. crypt := TChilkatCrypt2.Create(Self); crypt.HashAlgorithm := 'md5'; crypt.EncodingMode := 'base64'; md5Hash := crypt.HashBdENC(pdfData.ControlInterface); rest.AddQueryParam('AWSAccessKeyId','0PB842ExampleN4ZTR2'); rest.AddQueryParam('Action','SubmitFeed'); rest.AddQueryParam('FeedType','_UPLOAD_VAT_INVOICE_'); rest.AddQueryParam('MWSAuthToken','EXAMPLE-amzn.mws.4ea38b7b-f563-7709-4bae-87aea-EXAMPLE'); rest.AddQueryParam('MarketplaceIdList.Id.1','ATVExampleDER'); rest.AddQueryParam('SellerId','A1XExample5E6'); rest.AddQueryParam('ContentMD5Value',md5Hash); rest.AddQueryParam('SignatureMethod','HmacSHA256'); rest.AddQueryParam('SignatureVersion','2'); rest.AddQueryParam('Version','2009-01-01'); // Add the MWS Signature param. (Also adds the Timestamp parameter using the curent system date/time.) rest.AddMwsSignature('POST','/Feeds/2009-01-01','mws.amazonservices.com','YOUR_MWS_SECRET_ACCESS_KEY_ID'); rest.AddHeader('Content-Type','application/octet-stream'); sbResponseBody := TChilkatStringBuilder.Create(Self); success := rest.FullRequestBd('POST','/Feeds/2009-01-01',pdfData.ControlInterface,sbResponseBody.ControlInterface); if (rest.LastMethodSuccess <> 1) then begin Memo1.Lines.Add(rest.LastErrorText); Exit; end; if (rest.ResponseStatusCode <> 200) then begin // Examine the request/response to see what happened. Memo1.Lines.Add('response status code = ' + IntToStr(rest.ResponseStatusCode)); Memo1.Lines.Add('response status text = ' + rest.ResponseStatusText); Memo1.Lines.Add('response header: ' + rest.ResponseHeader); Memo1.Lines.Add('response body: ' + sbResponseBody.GetAsString()); Memo1.Lines.Add('---'); Memo1.Lines.Add('LastRequestStartLine: ' + rest.LastRequestStartLine); Memo1.Lines.Add('LastRequestHeader: ' + rest.LastRequestHeader); end; // Examine the XML returned in the response body. Memo1.Lines.Add(sbResponseBody.GetAsString()); Memo1.Lines.Add('----'); Memo1.Lines.Add('Success.'); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.