Chilkat Examples

ChilkatHOMEAndroid™Classic ASPCC++C#Mono C#.NET Core C#C# UWP/WinRTDataFlexDelphi ActiveXDelphi DLLVisual FoxProJavaLianjaMFCObjective-CPerlPHP ActiveXPHP ExtensionPowerBuilderPowerShellPureBasicCkPythonChilkat2-PythonRubySQL ServerSwift 2Swift 3,4,5...TclUnicode CUnicode C++Visual Basic 6.0VB.NETVB.NET UWP/WinRTVBScriptXojo PluginNode.jsExcelGo

MFC Web API Examples

Primary Categories

ABN AMRO
AWS Secrets Manager
AWS Translate
Activix CRM
Adyen
Alibaba Cloud OSS
Amazon Cognito
Amazon DynamoDB
Amazon MWS
Amazon Pay
Amazon Rekognition
Amazon Voice ID
Aruba Fatturazione
Azure Maps
Azure Monitor
Azure OAuth2
Azure Storage Accounts
Backblaze S3
Bitfinex v2 REST
Bluzone
BrickLink
CallRail
CardConnect
Cerved
ClickBank
Clickatell
Cloudfare
Constant Contact
DocuSign
Duo Auth MFA
ETrade
Ecwid
Egypt ITIDA
Etsy
Facebook
Faire
Frame.io
GeoOp
GetHarvest
Global Payments
Google People
Google Search Console
Hungary NAV Invoicing
IBM Text to Speech
Ibanity
IntakeQ
Jira
Lightspeed
MYOB
Magento
Mailgun
Mastercard

MedTunnel
MercadoLibre
Microsoft Calendar
Microsoft Group
Microsoft Tasks and Plans
Microsoft Teams
Moody's
Okta OAuth/OIDC
OneLogin OIDC
OneNote
PRODA
PayPal
Paynow.pl
Peoplevox
Populi
QuickBooks
Rabobank
Refinitiv
Royal Mail OBA
SCiS Schools Catalogue
SII Chile
SMSAPI
SOAP finkok.com
SendGrid
Shippo
Shopify
Shopware
Shopware 6
SimpleTexting
Square
Stripe
SugarCRM
TicketBAI
Trello
Twilio
Twitter
UniPin
VoiceBase
Vonage
Walmart
Walmart v3
Wasabi
WhatsApp
WiX
WooCommerce
WordPress
Xero
Yahoo Mail
Yousign
Zoom
_Miscellaneous_
eBay
effectconnect
hacienda.go.cr

 

 

 

(MFC) Etsy: Find Shops

Demonstrates how to find Etsy shops by name or keyword.

For more information, see https://www.etsy.com/developers/documentation/reference/shop

Chilkat C/C++ Library Downloads

MS Visual C/C++ Libs

See Also: Using MFC CString in Chilkat

#include <CkHttp.h>
#include <CkStringBuilder.h>
#include <CkJsonObject.h>

void ChilkatSample(void)
    {
    CkString strOut;

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    CkHttp http;
    bool success;

    // Implements the following CURL command:

    // curl -X GET \
    //   https://openapi.etsy.com/v2/shops?api_key=MY_ETSY_KEYSTRING&shop_name=99heads

    CkStringBuilder sbResponseBody;
    success = http.QuickGetSb("https://openapi.etsy.com/v2/shops?api_key=MY_ETSY_KEYSTRING&shop_name=99heads",sbResponseBody);
    if (success == false) {
        strOut.append(http.lastErrorText());
        strOut.append("\r\n");
        SetDlgItemText(IDC_EDIT1,strOut.getUnicode());
        return;
    }

    CkJsonObject jResp;
    jResp.LoadSb(sbResponseBody);
    jResp.put_EmitCompact(false);

    strOut.append("Response Body:");
    strOut.append("\r\n");
    strOut.append(jResp.emit());
    strOut.append("\r\n");

    int respStatusCode = http.get_LastStatus();
    strOut.append("Response Status Code = ");
    strOut.appendInt(respStatusCode);
    strOut.append("\r\n");
    if (respStatusCode >= 400) {
        strOut.append("Response Header:");
        strOut.append("\r\n");
        strOut.append(http.lastHeader());
        strOut.append("\r\n");
        strOut.append("Failed.");
        strOut.append("\r\n");
        SetDlgItemText(IDC_EDIT1,strOut.getUnicode());
        return;
    }

    // Sample JSON response:
    // (Sample code for parsing the JSON response is shown below)

    // {
    //   "count": 1,
    //   "results": [
    //     {
    //       "shop_id": 6634711,
    //       "shop_name": "99heads",
    //       "user_id": 17132443,
    //       "creation_tsz": 1322509254,
    //       "title": "Ceramic Art, Art Objects And Sculptures",
    //       "announcement": "Welcome!\nIn our shop, you will find handmade ceramic art , art objects, sculptures  and more unique products made from high quality materials: porcelain, clay, glaze, glass, wood, paper,etc. They are perfect for your personal collection or a gift . Enjoy!\n\n\nVisit our blog   \nhttp:\/\/99heads.com\n\nFacebook page \nhttp:\/\/www.facebook.com\/99heads\n\nPick a head! \n99heads",
    //       "currency_code": "USD",
    //       "is_vacation": false,
    //       "vacation_message": "Vacation, vacation, vacation!\r\n\r\nGone from 02.08 &#39;til 09.08. Coming soon... lots and lots of new stuff, all unique and creative... only on 99heads :)\r\n\r\nBe happy\r\n99heads\r\n\r\nP.S. If there&#39;s anything you&#39;d like to say, share, ask:\r\ns_kyorcheva@abv.bg\r\nn_armeykov@abv.bg",
    //       "sale_message": "Thank you for choosing our art. We guarantee quality and uniqueness! If you have any questions, requests, complaints or simply want to thank us, please don&#39;t hesitate to contact us.",
    //       "digital_sale_message": null,
    //       "last_updated_tsz": 1562699326,
    //       "listing_active_count": 176,
    //       "digital_listing_count": 0,
    //       "login_name": "99heads",
    //       "accepts_custom_requests": true,
    //       "policy_welcome": "Welcome!\r\nIn our shop, you will find handmade ceramic art , art objects, prints and more unique products made from high quality materials: porcelain, clay, glaze, glass, wood, paper,etc. They are perfect for your personal collection or a gift . \r\nEnjoy!\r\n\r\nVisit our blog\r\nhttp:\/\/www.99heads.com\r\n\r\nFacebook page\r\nhttp:\/\/www.facebook.com\/99heads\r\n\r\nPick a head!\r\n\r\n99heads",
    //       "policy_payment": "SECURE OPTIONS\nEtsy keeps your payment information secure. Sellers don't receive your credit card information.\n- Visa\n- MasterCard\n- American Express\n- Discover\n- PayPal\n- Apple Pay\n- SOFORT Bank Transfer\n- iDEAL\n- Etsy Gift Card",
    //       "policy_shipping": "PROCESSING TIME\nThe time I need to prepare an order for shipping varies. For details, see individual items.\n\nESTIMATED SHIPPING TIME\nCanada: 10 - 15 business days\nNorth America: 10 - 15 business days\nEurope: 4 - 10 business days\nAustralia, New Zealand and Oceania: 15 - 20 business days\nAsia Pacific: 15 - 20 business days\nLatin America and the Caribbean: 15 - 20 business days\nNorth Africa and the Middle East: 10 - 20 business days\n\nI'll do my best to meet these shipping estimates, but cannot guarantee them. Actual delivery time will depend on the shipping method you choose.\n\nCUSTOMS AND DUTIES FEES\nBuyers are responsible for any customs or duties fees that may apply. Sellers aren't responsible for delays due to customs",
    //       "policy_refunds": "I GLADLY ACCEPT RETURNS, EXCHANGES, AND CANCELLATIONS\nJust contact me within: 14 days of delivery\nShip returns back to me within: 30 days of delivery\nRequest a cancellation within: 12 hours of purchase\n\nTHE FOLLOWING ITEMS CAN'T BE RETURNED\nBecause of the nature of these items, unless they arrive damaged or defective, I can't accept returns for:\n- Custom or personalized orders\n- Items on sale\n\nCONDITIONS OF RETURN\nBuyers are responsible for return shipping costs.\nIf the item is not returned in its original condition, the buyer is responsible for any loss in value.\n\nQUESTIONS ABOUT YOUR ORDER?\nPlease contact me if you have any problems with your order.",
    //       "policy_additional": "- This Privacy Policy describes how and when I collect, use, and share information when you purchase an item from me, contact me, or otherwise use my services through Etsy.com or its related sites and services.\n\nThis Privacy Policy does not apply to the practices of third parties that I do not own or control, including Etsy or any third party services you access through Etsy. You can reference the Etsy Privacy Policy to learn more about its privacy practices\n\nInformation I Collect\n\nTo fulfil your order, you must provide me with certain information (which you authorized Etsy to provide to me), such as your name, email address, postal address, payment information, and the details of the product that you\u2019re ordering. You may also choose to provide me with additional personal information (for a custom order), if you contact me directly.\n\n\nWhy I Need Your Information and How I Use It.\n\nI rely on a number of legal bases to collect, use, and share your information, including:\n\n-as needed to provide my services, such as when I use your information to fulfil your order, to settle disputes, or to provide customer support;\n\n-when you have provided your affirmative consent, which you may revoke at any time, such as by signing up for my mailing list;\n\n-if necessary to comply with a legal obligation or court order or in connection with a legal claim, such as retaining information about your purchases if required by tax law; and\n\n-as necessary for the purpose of my legitimate interests, if those legitimate interests are not overridden by your rights or interests, such as 1) providing and improving my services. I use your information to provide the services you requested and in my legitimate interest toimprove my services; and 2) Compliance with the Etsy Seller Policy and Terms of Use. I use your information as necessary to comply with my obligations under the Etsy Seller Policy and Terms of Use.\n\nInformation Sharing and Disclosure\n\nInformation about my customers is important to my business. I share your personal information for very limited reasons and in limited circumstances, as follows:\n\n-Etsy. I share information with Etsy as necessary to provide you my services and comply with my obligations under both the Etsy Seller Policy and Etsy Terms of Use.\n\n-Service providers. I engage certain trusted third parties to perform functions and provide services to my shop, such as delivery companies. I will share your personal information with these third parties, but only to the extent necessary to perform these services.\n\n-Business transfers. If I sell or merge my business, I may disclose your information as part of that transaction, only to the extent permitted by law.\n\n-Compliance with laws. I may collect, use, retain, and share your information if I have a good faith belief that it is reasonably necessary to: (a) respond to legal process or to government requests; (b) enforce my agreements, terms and policies; (c) prevent, investigate, and address fraud and other illegal activity, security, or technical issues; or (d) protect the rights, property, and safety of my customers, or others.\n\nData Retention\n\nI retain your personal information only for as long as necessary to provide you with my services and as described in my Privacy Policy. However, I may also be required to retain this information to comply with my legal and regulatory obligations, to resolve disputes, and to enforce my agreements. I generally keep your data for the following time period: 4 years.\n\nYour Rights\n\nIf you reside in certain territories, including the EU, you have a number of rights in relation to your personal information. While some of these rights apply generally, certain rights apply only in certain limited cases. I describe these rights below:\n\n-Access. You may have the right to access and receive a copy of the personal information I hold about you by contacting me using the contact information below.\n\n-Change, restrict, delete. You may also have rights to change, restrict my use of, or delete your personal information. Absent exceptional circumstances (like where I am required to store data for legal reasons) I will generally delete your personal information upon request.\n\n-Object. You can object to (i) my processing of some of your information based on my legitimate interests and (ii) receiving marketing messages from me after providing your express consent to receive them. In such cases, I will delete your personal information unless I have compelling and legitimate grounds to continue using that information or if it is needed for legal reasons.\n\n-Complain. If you reside in the EU and wish to raise a concern about my use of your information (and without prejudice to any other rights you may have), you have the right to do so with your local data protection authority.\n\nHow to Contact Me\n\nFor purposes of EU data protection law, I, Nikolay Armeykov, am the data controller of your personal information. If you have any questions or concerns, you may contact me at n_armeykov@mail.com\n\nGIFT WRAPPING AND PACKAGING\n\u0410vailable\n\nCUSTOM AND PERSONALIZED ORDERS\nCustom orders are welcome! Also, for change of color, form or size- please send a message. Custom orders may take longer to ship, depending on the inquiry\n\nWHOLESALE AVAILABILITY\nWholesale orders are welcome!\n\nSHIPPING METHOD\n* All items ship via Priority Registered Air Mail with tracking number delivered after signature. \n* Registered mail provides a solid proof of shipping; It&#39;s tracking, however, depends on the recipient&#39;s country postal carrier conditions (not all countries support detailed online tracking)\n* Registered mail is one of the most reliable and secure way of shipping and always requires signature upon delivery. If you are not at home, the postal carrier must leave a notice that your package is available for pick up from the post office.\n*** IMPORTANT: If a package is not claimed within 15-20 days it will be returned to the sender.",
    //       "policy_seller_info": "",
    //       "policy_updated_tsz": 1526481567,
    //       "policy_has_private_receipt_info": false,
    //       "vacation_autoreply": "Vacation, vacation, vacation!\r\n\r\nGone from 02.08 &#39;til 09.08. Coming soon... lots and lots of new stuff, all unique and creative... only on 99heads :)\r\n\r\nBe happy\r\n99heads",
    //       "url": "https:\/\/www.etsy.com\/shop\/99heads?utm_source=chilkattest&utm_medium=api&utm_campaign=api",
    //       "image_url_760x100": "https:\/\/i.etsystatic.com\/iusb\/ef5376\/17693876\/iusb_760x100.17693876_e6ux.jpg?version=0",
    //       "num_favorers": 7818,
    //       "languages": [
    //         "en-US"
    //       ],
    //       "upcoming_local_event_id": null,
    //       "icon_url_fullxfull": "https:\/\/i.etsystatic.com\/isla\/06ca66\/20243353\/isla_fullxfull.20243353_1lcm8gl8.jpg?version=0",
    //       "is_using_structured_policies": true,
    //       "has_onboarded_structured_policies": true,
    //       "has_unstructured_policies": true,
    //       "custom_shops_state": 3,
    //       "include_dispute_form_link": false,
    //       "is_direct_checkout_onboarded": true,
    //       "policy_privacy": "This Privacy Policy describes how and when I collect, use, and share information when you purchase an item from me, contact me, or otherwise use my services through Etsy.com or its related sites and services.\n\nThis Privacy Policy does not apply to the practices of third parties that I do not own or control, including Etsy or any third party services you access through Etsy. You can reference the Etsy Privacy Policy to learn more about its privacy practices\n\nInformation I Collect\n\nTo fulfil your order, you must provide me with certain information (which you authorized Etsy to provide to me), such as your name, email address, postal address, payment information, and the details of the product that you\u2019re ordering. You may also choose to provide me with additional personal information (for a custom order), if you contact me directly.\n\n\nWhy I Need Your Information and How I Use It.\n\nI rely on a number of legal bases to collect, use, and share your information, including:\n\n-as needed to provide my services, such as when I use your information to fulfil your order, to settle disputes, or to provide customer support;\n\n-when you have provided your affirmative consent, which you may revoke at any time, such as by signing up for my mailing list;\n\n-if necessary to comply with a legal obligation or court order or in connection with a legal claim, such as retaining information about your purchases if required by tax law; and\n\n-as necessary for the purpose of my legitimate interests, if those legitimate interests are not overridden by your rights or interests, such as 1) providing and improving my services. I use your information to provide the services you requested and in my legitimate interest toimprove my services; and 2) Compliance with the Etsy Seller Policy and Terms of Use. I use your information as necessary to comply with my obligations under the Etsy Seller Policy and Terms of Use.\n\nInformation Sharing and Disclosure\n\nInformation about my customers is important to my business. I share your personal information for very limited reasons and in limited circumstances, as follows:\n\n-Etsy. I share information with Etsy as necessary to provide you my services and comply with my obligations under both the Etsy Seller Policy and Etsy Terms of Use.\n\n-Service providers. I engage certain trusted third parties to perform functions and provide services to my shop, such as delivery companies. I will share your personal information with these third parties, but only to the extent necessary to perform these services.\n\n-Business transfers. If I sell or merge my business, I may disclose your information as part of that transaction, only to the extent permitted by law.\n\n-Compliance with laws. I may collect, use, retain, and share your information if I have a good faith belief that it is reasonably necessary to: (a) respond to legal process or to government requests; (b) enforce my agreements, terms and policies; (c) prevent, investigate, and address fraud and other illegal activity, security, or technical issues; or (d) protect the rights, property, and safety of my customers, or others.\n\nData Retention\n\nI retain your personal information only for as long as necessary to provide you with my services and as described in my Privacy Policy. However, I may also be required to retain this information to comply with my legal and regulatory obligations, to resolve disputes, and to enforce my agreements. I generally keep your data for the following time period: 4 years.\n\nYour Rights\n\nIf you reside in certain territories, including the EU, you have a number of rights in relation to your personal information. While some of these rights apply generally, certain rights apply only in certain limited cases. I describe these rights below:\n\n-Access. You may have the right to access and receive a copy of the personal information I hold about you by contacting me using the contact information below.\n\n-Change, restrict, delete. You may also have rights to change, restrict my use of, or delete your personal information. Absent exceptional circumstances (like where I am required to store data for legal reasons) I will generally delete your personal information upon request.\n\n-Object. You can object to (i) my processing of some of your information based on my legitimate interests and (ii) receiving marketing messages from me after providing your express consent to receive them. In such cases, I will delete your personal information unless I have compelling and legitimate grounds to continue using that information or if it is needed for legal reasons.\n\n-Complain. If you reside in the EU and wish to raise a concern about my use of your information (and without prejudice to any other rights you may have), you have the right to do so with your local data protection authority.\n\nHow to Contact Me\n\nFor purposes of EU data protection law, I, Nikolay Armeykov, am the data controller of your personal information. If you have any questions or concerns, you may contact me at n_armeykov@mail.com",
    //       "is_calculated_eligible": false,
    //       "is_opted_in_to_buyer_promise": false,
    //       "is_shop_us_based": false
    //     }
    //   ],
    //   "params": {
    //     "shop_name": "99heads",
    //     "limit": 25,
    //     "offset": 0,
    //     "page": null,
    //     "lat": null,
    //     "lon": null,
    //     "distance_max": 35
    //   },
    //   "type": "Shop",
    //   "pagination": {
    //     "effective_limit": 25,
    //     "effective_offset": 0,
    //     "next_offset": null,
    //     "effective_page": 1,
    //     "next_page": null
    //   }
    // }

    // Sample code for parsing the JSON response...
    // Use the following online tool to generate parsing code from sample JSON:
    // Generate Parsing Code from JSON

    // Chilkat functions returning "const char *" return a pointer to temporary internal memory owned and managed by Chilkat.
    // See this example explaining how this memory should be used: const char * functions.

    int shop_id;
    const char *shop_name = 0;
    int user_id;
    int creation_tsz;
    const char *title = 0;
    const char *announcement = 0;
    const char *currency_code = 0;
    bool is_vacation;
    const char *vacation_message = 0;
    const char *sale_message = 0;
    const char *digital_sale_message = 0;
    int last_updated_tsz;
    int listing_active_count;
    int digital_listing_count;
    const char *login_name = 0;
    bool accepts_custom_requests;
    const char *policy_welcome = 0;
    const char *policy_payment = 0;
    const char *policy_shipping = 0;
    const char *policy_refunds = 0;
    const char *policy_additional = 0;
    const char *policy_seller_info = 0;
    int policy_updated_tsz;
    bool policy_has_private_receipt_info;
    const char *vacation_autoreply = 0;
    const char *url = 0;
    const char *image_url_760x100 = 0;
    int num_favorers;
    const char *upcoming_local_event_id = 0;
    const char *icon_url_fullxfull = 0;
    bool is_using_structured_policies;
    bool has_onboarded_structured_policies;
    bool has_unstructured_policies;
    int custom_shops_state;
    bool include_dispute_form_link;
    bool is_direct_checkout_onboarded;
    const char *policy_privacy = 0;
    bool is_calculated_eligible;
    bool is_opted_in_to_buyer_promise;
    bool is_shop_us_based;
    int j;
    int count_j;
    const char *strVal = 0;

    int count = jResp.IntOf("count");
    const char *paramsShop_name = jResp.stringOf("params.shop_name");
    int paramsLimit = jResp.IntOf("params.limit");
    int paramsOffset = jResp.IntOf("params.offset");
    const char *paramsPage = jResp.stringOf("params.page");
    const char *paramsLat = jResp.stringOf("params.lat");
    const char *paramsLon = jResp.stringOf("params.lon");
    int paramsDistance_max = jResp.IntOf("params.distance_max");
    const char *v_type = jResp.stringOf("type");
    int paginationEffective_limit = jResp.IntOf("pagination.effective_limit");
    int paginationEffective_offset = jResp.IntOf("pagination.effective_offset");
    const char *paginationNext_offset = jResp.stringOf("pagination.next_offset");
    int paginationEffective_page = jResp.IntOf("pagination.effective_page");
    const char *paginationNext_page = jResp.stringOf("pagination.next_page");
    int i = 0;
    int count_i = jResp.SizeOfArray("results");
    while (i < count_i) {
        jResp.put_I(i);
        shop_id = jResp.IntOf("results[i].shop_id");
        shop_name = jResp.stringOf("results[i].shop_name");
        user_id = jResp.IntOf("results[i].user_id");
        creation_tsz = jResp.IntOf("results[i].creation_tsz");
        title = jResp.stringOf("results[i].title");
        announcement = jResp.stringOf("results[i].announcement");
        currency_code = jResp.stringOf("results[i].currency_code");
        is_vacation = jResp.BoolOf("results[i].is_vacation");
        vacation_message = jResp.stringOf("results[i].vacation_message");
        sale_message = jResp.stringOf("results[i].sale_message");
        digital_sale_message = jResp.stringOf("results[i].digital_sale_message");
        last_updated_tsz = jResp.IntOf("results[i].last_updated_tsz");
        listing_active_count = jResp.IntOf("results[i].listing_active_count");
        digital_listing_count = jResp.IntOf("results[i].digital_listing_count");
        login_name = jResp.stringOf("results[i].login_name");
        accepts_custom_requests = jResp.BoolOf("results[i].accepts_custom_requests");
        policy_welcome = jResp.stringOf("results[i].policy_welcome");
        policy_payment = jResp.stringOf("results[i].policy_payment");
        policy_shipping = jResp.stringOf("results[i].policy_shipping");
        policy_refunds = jResp.stringOf("results[i].policy_refunds");
        policy_additional = jResp.stringOf("results[i].policy_additional");
        policy_seller_info = jResp.stringOf("results[i].policy_seller_info");
        policy_updated_tsz = jResp.IntOf("results[i].policy_updated_tsz");
        policy_has_private_receipt_info = jResp.BoolOf("results[i].policy_has_private_receipt_info");
        vacation_autoreply = jResp.stringOf("results[i].vacation_autoreply");
        url = jResp.stringOf("results[i].url");
        image_url_760x100 = jResp.stringOf("results[i].image_url_760x100");
        num_favorers = jResp.IntOf("results[i].num_favorers");
        upcoming_local_event_id = jResp.stringOf("results[i].upcoming_local_event_id");
        icon_url_fullxfull = jResp.stringOf("results[i].icon_url_fullxfull");
        is_using_structured_policies = jResp.BoolOf("results[i].is_using_structured_policies");
        has_onboarded_structured_policies = jResp.BoolOf("results[i].has_onboarded_structured_policies");
        has_unstructured_policies = jResp.BoolOf("results[i].has_unstructured_policies");
        custom_shops_state = jResp.IntOf("results[i].custom_shops_state");
        include_dispute_form_link = jResp.BoolOf("results[i].include_dispute_form_link");
        is_direct_checkout_onboarded = jResp.BoolOf("results[i].is_direct_checkout_onboarded");
        policy_privacy = jResp.stringOf("results[i].policy_privacy");
        is_calculated_eligible = jResp.BoolOf("results[i].is_calculated_eligible");
        is_opted_in_to_buyer_promise = jResp.BoolOf("results[i].is_opted_in_to_buyer_promise");
        is_shop_us_based = jResp.BoolOf("results[i].is_shop_us_based");
        j = 0;
        count_j = jResp.SizeOfArray("results[i].languages");
        while (j < count_j) {
            jResp.put_J(j);
            strVal = jResp.stringOf("results[i].languages[j]");
            j = j + 1;
        }

        i = i + 1;
    }



    SetDlgItemText(IDC_EDIT1,strOut.getUnicode());

    }

 

© 2000-2022 Chilkat Software, Inc. All Rights Reserved.