Filter
-
Content Type
-
Category
Mobile/Wearable
Visual Display
Digital Appliance
Platform
Recommendations
Filter
Develop Samsung Wallet
docmembership view wallet card partners can view all the registered information, edit and delete the wallet card launch wallet cards verifying status partners can launch and activate cards you can activate a card by clicking the "launch" button once a card is launched, the button text changes to 'launched' the activation cannot be canceled when a card is launched, its status changes to 'verifying', and then to ‘active’ after administrator approval launch wallet cards rejected status if the wallet card is rejected after launching, you can modify the card and re-launch the administrator registers the reason for rejection when rejecting the launched wallet card it is sent to the partner by email from the system, including the reason for rejection partners can apply for launch again by checking the reason for rejection and modifying the wallet card information testing mode partners can test a card internally to make sure everything works before officially release to the users by default, the ‘testing mode’ option is enabled all data generated in testing mode is periodically deleted card exposure is not affected even when the testing mode is enabled be sure to turn off the testing mode after the test is over testing mode on → testing mode off admin approval active status all launched cards are activated after the administrator's approval when a card is launched, its status changes to 'verifying' and then to 'active' after administrator approval when the card is activated, it is made visible to the user add to samsung wallet integration for wallet integration, you need to insert an "add to wallet" script to your system the "add to wallet" script is available for web, android, and email/mms each system has different script composition to implement an "add to wallet" button, follow the procedure below create the tokenized card data cdata card data is the actual content data of wallet card and it has several formats based on the card type refer to cdata generation sample code for details copy the sample "add to wallet" script from the partners portal’s wallet card page and replace "cdata" with the data token created above apply the script to your system see partners portal’s wallet card and android integration sample code for details below is the "add to wallet" script guide in the partners portal for "add to wallet" integration, you may need some base data you can find that and other necessary information on partners portal and wallet api spec you can also add image beacon in the script for tracking effect analysis
featured mobile, galaxy watch
blogmembership from the developer program altogether. pow! while it's not exactly a feature of the site, it's an example of the ways we're trying to reach developers. my colleague tony morelan started working on a new podcast earlier this year. tony's guests are a mix of samsung thought leaders and successful galaxy store sellers. tony has a lot of enthusiasm for design and he's always searching for his next great topic. give him a listen on your favorite podcasting app or by visiting our podcast archive. we still 💙 feedback i hope you're enjoying the new layout and design of the site. if you have suggestions (or even bug reports), hop into the feature requests section of the forums and let me know. thank you for being a samsung developer.
Eric Cloninger
Develop Smart Hospitality Display
docmembership registering and distributing applications 1 1 q&a for more information, visit samsung apps tv seller office and read the portal guides here getting started the detailed specifications and features are common with smart tv's, according to the corresponding tizen versions you can easily start from the quick start guide importantalmost all specifications, features, and apis are available to the samsung smart hospitality display devices, like the smart tv however, some of them may be unavailable to the display devices if you have any questions, please contact the tech sales team
Develop Samsung Wallet
docmembershipstatuslevelstring 256 optional image url for the status level of the airline alliance or own membership i e , airline skyteam, star alliance image size 68x20 / 140x20 barcode valuestring 4096 optional actual data that is delivered when the barcode/qr code is scanned barcode serialtypestring 32 optional presentation type e g , serialnumber, barcode, * see barcode format barcode ptformatstring 32 optional presentation format e g , barcode, qrcode, serial, *see barcode format barcode ptsubformatstring 32 optional presentation sub-format e g , code_128, qr_code, * see barcode format barcode errorcorrectionlevelstring 4 optional amount of redundancy or error correction data included in the code there are four error correction levels available in qr codes * code options l/m/q/h example airline boarding pass { "card" { "type" "boardingpass", "subtype" "airlines", "data" [ { "refid" "se16138353212584800001", "createdat" 1612660039000, "updatedat" 1612660039000, "language" "en", "attributes" { "title" "oo air boarding pass", "transittype" "airline", "groupingid" "se867132687321", "providerlogo" "https // /logoimage png", "providerlogo darkurl" "https // /logoimage png", "providername" "oo air", "user" "gil dong hong", "vehiclenumber" "se123", "seatclass" "economy plus", "seatnumber" "a15", "reservationnumber" "a238473-1", "boardingseqno" "32", "boardingtime" 1612660039000, "boardingtime utcoffset" "utc+09 00", "baggageallowance" "15kg", "departname" "seoul/incheon", "departcode" "inc", "departterminal" "c", "departgate" "1", "estimatedoractualstartdate" 1612660039000, "estimatedoractualstartdate utcoffset" "utc+09 00", "arrivename" "san francisco", "arrivecode" "sfo", "arriveterminal" "a", "arrivegate" "11", "estimatedoractualenddate" 1612660039000, "estimatedoractualenddate utcoffset" "utc-08 00", "bgcolor" "#ff00ff", "fontcolor" "dark", "applinklogo" "https // /applinklogo png", "applinkname" "oo airline", "applinkdata" "https //www ooairline com", "csinfo" "{\"call\" \"0000-0000\",\"email\" \"samsungwallet@samsungwallet com\",\"website\" \"https //www samsungwallet com/cs/\"}", "barcode value" "cs16138353212584806754fg1802", "barcode serialtype" "barcode", "barcode ptformat" "qrcodeserial", "barcode ptsubformat" "qr_code" }, "localization" [ { "language" "ko", "attributes" { "title" "oo 항공 탑승권", "providername" "oo 항공", "user" "홍 길동" } } ] } ] } } grouped bus boarding passes { "card" { "type" "boardingpass", "subtype" "buses", "data" [ { "refid" "ref-202211300001", "createdat" 1669782394000, "updatedat" 1669782394000, "language" "en", "attributes" { "title" "samsung bus boarding pass", "transittype" "bus", "groupingid" "grp-20221130001", "providerlogo" "https // /logoimage png", "providerlogo darkurl" "https // /logoimagedark png", "providername" "samsung bus", "user" "galaxy kim", "usertype" "adult", "transitoperator" "samsung transport co ", "seatnumber" "7-a", "reservationnumber" "rsvno-202211300001", "transitclass" "premium", "transitfare" "12,500 won", "boardingtime" 1671926400000, "boardingtime utcoffset" "utc+09 00", "departname" "east-seoul bus terminal", "departgate" "14", "estimatedoractualstartdate" 1671928200000, "estimatedoractualstartdate utcoffset" "utc+09 00", "arrivename" "suwon bus terminal", "bgcolor" "#f1c232", "fontcolor" "dark", "applinklogo" "https // /applinklogo png", "applinkname" "samsung bus", "applinkdata" "https //www samsung-bus com", "csinfo" "{\"call\" \"0000-0000\",\"email\" \"samsungwallet@samsungwallet com\",\"website\" \"https //www samsungwallet com/cs/\"}", "barcode value" "161383532125848067541802", "barcode serialtype" "barcode", "barcode ptformat" "qrcodeserial", "barcode ptsubformat" "qr_code" }, "localization" [ { "language" "ko", "attributes" { "title" "삼성버스 탑승권", "providername" "삼성버스", "user" "김 은하", "transitfare" "12,500 원" } } ] }, { "refid" "ref-202211300002", "createdat" 1669782394000, "updatedat" 1669782394000, "language" "en", "attributes" { "title" "samsung bus boarding pass", "transittype" "bus", "groupingid" "grp-20221130001", "providerlogo" "https // /logoimage png", "providerlogo darkurl" "https // /logoimagedark png", "providername" "samsung bus", "user" "samsung sam", "usertype" "child", "transitoperator" "samsung transport co ", "seatnumber" "7-b", "reservationnumber" "rsvno-202211300002", "transitclass" "preminum", "transitfare" "9,000 won", "boardingtime" 1671926400000, "boardingtime utcoffset" "utc+09 00", "departname" "east-seoul bus terminal", "departgate" "14", "estimatedoractualstartdate" 1671928200000, "estimatedoractualstartdate utcoffset" "utc+09 00", "arrivename" "suwon bus terminal", "bgcolor" "#f1c232", "fontcolor" "#000000", "applinklogo" "https // /applinklogo png", "applinkname" "samsung bus", "applinkdata" "https //www samsung-bus com", "csinfo" "{\"call\" \"0000-0000\",\"email\" \"samsungwallet@samsungwallet com\",\"website\" \"https //www samsungwallet com/cs/\"}", "barcode value" "161383532125848067541802", "barcode serialtype" "barcode", "barcode ptformat" "qrcodeserial", "barcode ptsubformat" "qr_code" }, "localization" [ { "language" "ko", "attributes" { "title" "삼성버스 탑승권", "providername" "삼성버스", "user" "사만다 삼성", "transitfare" "9,000 원" } } ] } ] } }
tutorials mobile
blogmembership card. in this article, we show how you can create a loyalty card in the wallet partners portal. we also provide guidelines to implement the card, so that you can integrate the loyalty card into your application. card setup before adding the card to samsung wallet, create your card in the wallet partners portal. log in to the wallet partners portal. select wallet cards from the sidebar and then navigate to create wallet card. follow the instructions in the general information section to complete the form. select "loyalty card" from the wallet card template menu. select your location from the main (headquarters) location menu. if you get a "country not supported" error during a later phase, contact samsung developer support. after completing the form, save the card. all created cards are listed in the manage wallet card view. you can view, edit, and delete the card information from this view. finally, launch the card. card specification once a card is created in the wallet partners portal, the card can be implemented in the partner application so that the user can purchase and use it. to do so, implement the "add to samsung wallet" button in your application. for this purpose, generate a card data token and create a final url. this url is integrated with the "add to samsung wallet" button to add the card to samsung wallet. for generating a card data token, you need to define the wallet card data. the loyalty card follows the specification below. name description title required. the main title of the loyalty card. in the sample card, this field has the value "card title". eventid optional. the event id. use this id to find and process an action to an event to all loyalty cards with the same id. groupingid optional. identifier to group related cards. subtitle1 optional. an auxiliary field for showing supporting information about your card. logoimage optional. logo image displayed in the card item. the image size must be a maximum of 256 kb. logoimage.darkurl optional. logo image displayed in the card item in dark mode. the image size must be a maximum of 256 kb. logoimage.lighturl optional. logo image displayed in the card item in light mode. the image size must be a maximum of 256 kb. providername required. provider name for the loyalty card. startdate optional. card validity start date. the date format is an epoch timestamp in milliseconds. enddate optional. card validity end date. the date format is an epoch timestamp in milliseconds. locations optional. list of locations where the card can be used. this information can be used to provide location-based service and samsung wallet can use this information to show maps, place names and addresses. you can find more about the location field and the json format in the documentation. noticedesc optional. the notices section can be used for any additional information for your card. you can use html tags without any css or script in this field. for the test card, this field contains the following list: <ul> <li>loyalty card notice. <a href="https://www.samsung.com/">learn more.</a></li> <li>loyalty card notice.</li></ul> csinfo optional. customer service information visible to the card user. this information is stored as key-value pairs with the following keys that correspond with the categories of information shown to the user: callemail website applinklogo required. application link logo url applinkname required. application link name applinkdata required. application link destination url bgimage optional. background image for the card bgcolor optional. background color for the card. if you use bgcolor together with bgimage, they are displayed in a predefined ratio. to only display a background image, omit the bgcolor value. the following image shows the difference between a scenario where both bgimage and bgcolor are used (left) to one where only bgimage is used (right). fontcolor optional. font color on the card art. barcode.value optional. barcode data and serial number. barcode.serialtype optional. barcode presentation type. for more details, see the presentation types (serialtype) table. barcode.ptformat optional. barcode presentation format. you can find all supported presentation formats in the presentation formats (ptformat) table. barcode.ptsubformat optional. barcode format. some commonly used barcode formats are listed in the barcode formats (ptsubformat) table. barcode.errorcorrectionlevel optional. qr code error correction level. four error correction levels are available: l/m/q/h. merchantid optional. merchant identifier. use this field if you have merchant id. merchantname optional. merchant name. amount optional. total amount of points or initial balance. it is recommended to use a one-letter currency symbol. use any of these formats: $1,000 or 1,000p. balance optional. available points or remaining balance. use the same format as the amount field. card json example the card data must be in the json format and needs to follow the specific structure. the example below shows a card data sample that we have used to implement the loyalty card used in this content. modify the card data as per your card information. find more about the card data format in the wallet cards documentation. { "card": { "type": "loyalty", "subtype": "others", "data": [ { "refid": "9400ae65-751b-4327-866c-37e8c228f1c4", "createdat": 1672574400000, "updatedat": 1672574400000, "language": "en", "attributes": { "title": "card title", "eventid": "event-001", "groupingid": "group-001", "orderid": "order-001", "subtitle1": "card subtitle", "logoimage": "https://kr-cdn-gpp.stg.mcsvc.samsung.com/devops/ops/partner-portal/test-tool/assets/img/ticket_movie.jpg", "logoimage.lighturl": "https://kr-cdn-gpp.stg.mcsvc.samsung.com/devops/ops/partner-portal/test-tool/assets/img/ticket_movie.jpg", "logoimage.darkurl": "https://kr-cdn-gpp.stg.mcsvc.samsung.com/devops/ops/partner-portal/test-tool/assets/img/ticket_movie.jpg", "providername": "provider name", "startdate": 1715533051242, "enddate": 1715833051242, "noticedesc": "<ul><li>loyalty card notice. <a href=\"https://www.samsung.com/\">learn more.</a></li><li>loyalty card notice.</li></ul>", "csinfo": "{\"website\":\"https://homepage.com/cs\",\"email\":\"cs@email.com\",\"call\":\"555 333 111\"}", "applinklogo": "https://play-lh.googleusercontent.com/znfa1roz7hpv9j-jiacbjmjudl2x-fnuwte0oyvbbcwvf5vpzoqqikbxgk7d-aptvag=w240-h480-rw", "applinkname": "loyalty card link", "applinkdata": "www.samsung.com", "bgimage": "https://djcpagh05u38x.cloudfront.net/wlt/us/stg/x1iwgocnroqa5dmwpykfkq/qupknpwntmqt7letkgufag.png", "bgcolor": "#ffffff", "fontcolor": "#ffffff", "locations": "[{\"lat\":48.861614505643196,\"lng\":2.380811870098114,\"address\":\"38 rue saint-maur, 75011 paris\",\"name\":\"atelier des lumieres\"}]", "amount": "$1,000", "balance": "$100", "barcode.value": "cs16138353212584806754fg1802", "barcode.serialtype": "qrcode", "barcode.ptsubformat": "qr_code", "barcode.ptformat": "qrcodeserial", "barcode.errorcorrectionlevel": "m", "merchantid": "123344433", "merchantname": "merchantname" } } ] } } test with the add to wallet test tool once the card data specification details and the json structure of the loyalty card are established, we can test the "add to samsung wallet" functionality. first, we use the add to wallet test tool as this tool provides minimal card data in json format by default. after that, you can modify the json data and test the cards as you want. follow the instructions below to use the add to wallet test tool. for more details, refer to the add to wallet test tool documentation. sign in to the add to wallet test tool. enter the private key in the enter partner private key field. select the loyalty card we have created and then enter the json in the data field. finally add the card to samsung wallet. create jwt token if testing with add to wallet test tool is successful, you can implement the "add to samsung wallet" functionality with your application or website and handle the card data token generation process on your server. finally, generate the url and integrate it with the "add to samsung wallet" button. for more details on the implementation, check out our implementing "add to wallet" in an android application article, which is a complete guide to implementing the "add to samsung wallet" button on an android application and handling the card data token generation process on the server side. conclusion once the implementation of both the application and server is completed, you can integrate the loyalty card with your production server and perform a full test on the loyalty card. after the test is done, an admin will check and set the card as active. while implementing your card, follow the steps shown in seamlessly integrate "add to wallet" for samsung wallet, as this article focuses on the common mistakes. if you have any questions or face difficulties implementing the card, you can contact samsung developer support. related resources integrate "add to samsung wallet" button into partner services implementing "add to wallet" in an android application seamlessly integrate "add to wallet" for samsung wallet
M. A. Hasan Molla
Learn Developers Podcast
docmembership, if you sign up with your samsung account and then further just to add, because we have such a good relationship with the samsung health team, all that data that you're doing, you can share between applications, you can have that sort of a large overview of your health profile within the samsung health application as well tony morelan 12 08 oh, that's wonderful so let's talk a bit about the development of the app what is the workflow? what is the process for you guys, when you created workout trainer? maria ly 12 17 i guess for starters, we use kind of agile development practices and a lot of brainstorming, we currently use android studio and we host all of our contents in the cloud and on top of that, obviously, we use the latest tools with within the samsung sdk id kind of environment tony morelan 12 40 sure, sure so when you first created the app, how long did it take? you know, is this an app that took, you know, a long time to create? or was this something that came pretty quickly and easily to you, maria ly 12 50 i would say that the first very early version of our app took about six months but as you guys know, app development is never as straightforward as you would like and you're always evolving your app and making it better and better and so throughout the years, we've added more features tightened up our flow improved our ui ux experience so you know, it all depends on what your app is aiming to do and offer, and try to use, you know, the best tools possible and rev on it and keep in mind that people like good user experience so even if it's a utility app, you have to think about your customers and get their feedback early on yeah, you tony morelan 13 33 know, the one thing that i will say about when i used to work at trainer was the ui was wonderful i mean, it's because you're in the middle of a workout and so you want something that is simple and easy to use with just a nice, clean interface and that's one of the things that stood out for me with workout trainer maria ly 13 47 well, thanks it's always a work in progress tony morelan 13 50 so let's talk about discoverability because i know that is one of the hardest parts i mean, it's one thing to go and create an app and build it and publish it but the hardest thing is to get people to actually see it and use it so what have you guys done related to discoverability? maria ly 14 05 for us, we have different channels to get discovered a lot of it has to do with be partners with certain discovery channels, but also with our community so for instance, you know, people can do workouts and invite their friends and challenge them to workouts so sort of creating that, like word of mouth has been very helpful for us get discovered through a grassroot approach and then also, you know, sometimes we have different partners where we can sell our app into verticals like within health care, or corporations, or specific areas, or times of the year for instance, samsung and symbols workout trainer can do sort of a collab or a promotion period tony morelan 14 55 yeah, yeah and i'm sure you guys are using the galaxy store badge is that correct to help promote it and weren't people directly to the app on galaxy store? yes, we are for sure wonderful and i'll make sure to include a direct link to that in the in the show notes for, not just that for, but for many of the other areas that we're talking about i loved what you said, as far as you know, inviting a friend and building that community because i know when it comes to workouts, a lot of times people don't have the motivation to do it themselves and they need to be held accountable so you know, if you find a friend that says, hey, if you work out all workout, and when you guys can work out together, you know, in sort of motivate each other to work out, that's what really gets you into a good routine as far as fitness so how many people would you say are using workout trainer, maria ly 15 43 we've seen over 30 million users come our way and, you know, on a day-to-day basis, we're seeing 10s of 1000s of workouts being completed and these are, you know, long form workouts so people are not just going into our app, and you know, jumping away, they're actually finding good content, relevant content for them to do and play for a long period of time, be it, you know, five to 20, to even, you know, 45 minutes long tony morelan 16 08 that's wonderful that is great and that is one of those key things when it comes to you for app developers, they want to create an experience where someone is not just coming in, you know, and like playing a game for a few minutes, and then they're gone retention is such a key component to creating a successful app how do you guys generate revenue, maria ly 16 29 we're going to trainer is a free application, and we offer in app purchase subscription that would be the pro plus membership option so that's offered at 699 a month and it's a reoccurring subscription and we also offer our one-on-one online training platform and the trainer sets the price and on average, it's between 50 to $200 a month, and we take a platform fee tony morelan 16 52 i love that that that you offer that that opportunity for people who want to really, you know, find that personal one on one trainer but yet your app also is available at an affordable price just for the general community i think that is that is great, because it makes it easy for people to give it a try and see if they like it and then decide maybe they want to, you know, get more involved with the app maria ly 17 13 oh, for sure and sometimes our trainers offer one on one training with free trials so we offer a free trial period as well tony morelan 17 19 oh, that's great that is that it's that's wonderful yeah so what advice would you give developers looking to bring their app to galaxy store? maria ly 17 29 oh, i would definitely encourage folks to get on the samsung platform because, as you guys know, around the world, like there are so many people that are using samsung devices, be it the smartphones, tablets, or the smartwatches and so being on the platform will just bring more visibility to your application and it's an opportunity to grow your user base naturally tony morelan 17 52 tell me what is in the future first gimble maria ly 17 55 so we've focused on creating great content and we're going to continue doing that working on providing a platform where people can access more multimedia content from trainer created content workouts created and led by your famous youtube fitness celebrities, and so forth so for us with workout trainer, we want to create and serve the best content for you so that personalized experience where you can have instant access to follow along content for your fitness journey tony morelan 18 28 that's, that's wonderful you know, this this past year, there's been a really big push for diversity and inclusion tell me what is kimble doing related to that? maria ly 18 38 i think from the start with scramble and growing our early team, i always wanted to have a group of great folks not just like industry, people, but trainers and everybody that has been involved to reflect the people who are actually using the application and so, you know, i was not specifically seeking out extreme diversity, but by just me wanting to talk to all kinds of folks from around the world trainers who had, you know, a focus on high intensity training versus pilates, yoga studio style backgrounds and we have so many different trainers demonstrating our exercises, our exercise database library, i believe has grown to be the largest out there with trainers who are very diverse, you know, they look like me and you and all the other folks who use the application so i hope that the application offers content that feels diverse in the type of content it provides, and also the friendly faces who are demonstrating the exercises tony morelan 19 47 that's great so recently, we did a blog feature on you for international women's day you know, being a woman leading a tech company tell me what advice would you give young women looking to start a career are in tech, maria ly 20 01 you know, more than ever before, women are breaking barriers so, you know, having their voices heard within tech within athletics within all sorts of fields, you know, having them be out there doing the work that they love living their best life and if that means, you know, being a leader in technology, or you know, a developer, an engineering manager, there are so many roles within tech that you could pursue and if you have an early appetite for some of the math and science classes, you know, a technology career could be for you so just pursue it and explore it, and you could be your own boss, even, there are so many opportunities now more than ever, i would say, where you can have the mentorship and support and encouragement from not just, you know, the leaders, the your male counterparts, the females in the space, who maybe have been there for a few years, even for me, you know, i do like advising and investing in women led companies in something that inspires me because i want to see the young females take charge and create amazing products for our future generation and, you know, my children even i'm excited for the future and what it can bring for all folks tony morelan 21 18 yeah, no, that's, that's wonderful in that blog, i'm going to link to it it was a great interview; you actually went into great detail on some of these areas that would really help inspire women and young women to really get started into this tech industry so maria, it was excellent to chat with you and learn much more about you know, workout trainer and all the great things that you guys are doing it's gimble let me ask you, what is it that you do for fun when you are not working? maria ly 21 45 well, i have two kids, they can be quite busy on my off hours, we are doing a lot of different activities for instance, over the weekend, i took my son to his first gymnastics class, and then we went skiing because we're in salt lake and it's the end of the season, he went out his first black even so just seeing the young guys, they're leading the charge there and i'm just trying to keep up in addition, when there's a little downtime, i do like to have some focus over for home cooked meal and a board game or two so i actually like playing strategy board games so that's one of my little-known passions as well tony morelan 22 25 that's wonderful that's wonderful i love a good time with friends, food and fun game activity well, hey, maria, it was great to have you on the podcast, i really enjoy you taking the time to chat maria ly 22 35 likewise, tony closing 22 37 looking to start creating for samsung download the latest tools to code your next app, or get software for designing apps without coding at all sell your apps to the world on the samsung galaxy store check out developer samsung com today and start your journey with samsung tony morelan 22 53 the samsung developers podcast is hosted by tony morelan and produced by jeanne hsu
Develop Samsung Internet
docmembership is approved, typically within 2 business days, return to https //pay samsung com/developers, click sign in and enter your samsung account id and password for site access as a new member registering your domain for the w3c service your domain is the url associated with your website, whether in test or production the service type specifically associates w3c with your domain once you create the service, you will be prompted to configure the domain you want associated with it to create a new service go to my projects > service management and click create a new service select for test to define the service for initial integration with samsung pay, then click next select w3c mobile web payments as the service type and click next enter a service name and select “united states” as the service country select a payment gateway from the list of supported pgs if your payment gateway uses the network token mode, upload the certificate signing request csr you obtained from your pg supported formats are csr or pem contact your pg for details otherwise, key management is already established for pgs supporting samsung pay’s gateway token mode; hence, click connect with to create a new service connection with the pg and click ok enter the payment domain name s for your website in the service domain field and click add for example, if your domain is mywebstore com but the checkout page is hosted on the subdomain payments mywebstore com, you’ll need to enter payments mywebstore com as the service domain in the portal for each additional domain name, click add notewhen entering the domain name on the portal, do not include an https // prefix confirm your agreement with the terms and conditions, then click next adding w3c payment requests objects to your website in order to accept payments from samsung pay, your website must adhere to the w3c payment request api specification you can get started with the basics by completing the steps that follow and making the appropriate substitutions for your website step 1 feature detect prior making a w3c payment request, it’s wise to run a feature detect to ensure the browser in use supports the w3c payment request api if not, you should fall back to your traditional/normal checkout page example if window paymentrequest { // use payment request api } else { // fallback to traditional checkout window location href = ‘/checkout/traditional’; } step 2 create the paymentrequest constructor the first step is to create a paymentrequest object by calling the paymentrequest constructor, which has the following parameters methoddata – contains a list of payment methods that the website supports e g , visa, amex, samsung pay details – contains information about the shopping cart purchases e g , total, tax, fees, etc options – details pertaining to shipping address, user contact information, etc example var request = new paymentrequest methoddata, // required payment method data details, // required information about transaction options // optional parameter for things like shipping, etc ; step 3 add samsung pay to the methoddata parameter the methoddata parameter contains a list of payment methods supported by the merchant to support samsung pay, you’ll need to add it as a supported payment method notebasic-card is an optional supportedmethod for credit and debit cards saved in the browser, the card details of which are returned directly to the website from the browser before configuring this method, make sure your website and pg can handle generic payment information received from the browser and process with required pci compliance, if applicable see the [w3c basic card payment specification][7] for additional details be aware, however, that if you intend to support a branded samsung pay button, only samsung pay can be enabled as a payment method within the paymentrequest object; basic-card or any other payment method cannot be included if you already offer a generic payment request method, you can continue to do so — and include samsung pay as a payment method within that paymentrequest object from a user experience standpoint, the two distinct pathways look like this standard w3c implementation a standard w3c implementation adds samsung pay to your standard paymentrequest object as one of many supportedmethods available for user selection tapping checkout or its equivalent launches the standard browser payment sheet for user selection of the payment method and/or to add a debit/credit card to the list of options selecting samsung pay as the payment method and tapping pay launches the samsung pay payment sheet branded samsung pay implementation a branded implementation displays a "buy with samsung pay" button in place of your standard checkout button tapping the button will skip directly to the samsung pay payment sheet for authentication unless you specify paymentoptions if paymentoptions is not null, the browser payment sheet is launched see paymentoptions in step 7 for additional guidance first launching your website's checkout page is recommended for branded implementations this is because the samsung pay payment sheet only provides the user's billing address, which means your website will need to capture the user's preferred shipping address, where applicable for physical delivery of purchased goods if no shipping address and/or other options are needed, set the paymentoptions parameter to null as mentioned above, if you populate paymentoptions, the browser payment sheet is automatically launched keeping the foregoing implementations in mind, let's look at how to construct the methoddata argument for the network token mode and gateway token mode, respectively the fields in methoddata comprise supportedmethods – required; specifies https //spay samsung com/ i e , the samsung pay app and other methods suppored by your website data – values specific to the method; for samsung pay, these include version specifies the data structure being used by the merchant; should always be set to 1 until further notice required productid the service id obtained from the samsung pay partner portal required for partner verification; see step #8 under registering your domain for the w3c service merchantgatewayparameter this is the userid value registered with your pg required for gateway token mode in addition, userid should be set in the request parameter for mada token if a merchan request mada token, this field is mandatory as this filed should be included in the payload for mada token, there is a 15-character length limit paymentprotocol defaults to “protocol_3ds,” the only protocol currently supported by samsung pay optional allowedcardnetworks specifies the card brands/networks accepted by the merchant and supported by the pg required merchantname the name of the merchant to be displayed on the payment sheet; must be identical to the merchant name registered on the samsung pay partner portal required ordernumber unique value for merchant use as an external reference id optional isrecurring specifies transaction on subscription basis optional; default = false billingaddressrequired determines if a billing address must be filled-in by the user optional; default = false shown next are examples of the methoddata parameter for each of the supported token modes please note that samsung pay's w3c support for card brands is currently limited to mastercard, visa and american express discover is scheduled for support soon example – network token mode var methoddata = [ { supportedmethods ['https //spay samsung com'], data { 'version' '1', // always 1 until further notice 'productid' '2bc3e6da781e4e458b18bc', // service id from partner portal 'allowedcardnetworks' ['mastercard','visa'], 'merchantname' 'shop samsung demo ', // merchantname must be identical to merchant name on portal 'ordernumber' '1233123', } }] example – gateway token mode var methoddata = [ { supportedmethods ['https //spay samsung com'], data { 'version' '1', // always 1 until further notice 'productid' '7qr7h9ws1872bc3e6da781', // service id from partner portal 'merchantgatewayparameter' {"userid" "acct_ 17irf7f6ypzj7wor"}, 'allowedcardnetworks' ['mastercard','visa'], 'merchantname' 'shop samsung demo ', //merchantname must be identical with merchant name on portal 'ordernumber' '1233123', } }] step 4 fill out the transaction details parameter the details parameter contains information about the transaction there are two major components a total, which reflects the total amount and currency to be charged, and an optional set of displayitems that indicate how the final amount was calculated this parameter is not intended to be a line-item list, but is rather a summary of the order’s major components subtotal, discounts, tax, shipping costs, etc example var details = { displayitems [ { label "total of all items", amount { currency "usd", value "65 00" }, // us$65 00 }, { label "friends & family discount", amount { currency "usd", value "-10 00" }, // -us$10 00 pending true // the price is not yet determined } ], total { label "total", amount { currency "usd", value "55 00" }, // us$55 00 } } step 5 check eligibility to display samsung pay button if you do not support basic-card and you try to call show in step 6 when samsung pay or any other supportedmethod is not present on the device, the returned promise will reject with the following error domexception the payment method is not supported you can, however, check beforehand to see if the user has an available/supported method set up this is done with the canmakepayment method, which tells you whether the user has a payment method that can fulfill the current payment request example – canmakepayment const paymentrequest = new paymentrequest supportedpaymentmethods, transactiondetails, options ; // if canmakepayment isn’t available, default to assume the method is supported const canmakepaymentpromise = promise resolve true ; // feature detect canmakepayment if request canmakepayment { canmakepaymentpromise = paymentrequest canmakepayment ; } canmakepaymentpromise then result => { if !result { // the user does not have a supported payment method // todo redirect to traditional checkout flow return; } // todo the user has a payment - call show } catch err => { // todo either fall back to traditional checkout or call show } ; notebranded samsung pay buttons can be found on the [samsung pay developers][8] portal under the resources tab direct cdn links will be available soon step 6 call the show method to display the payment sheet the payment sheet can be activated by calling its show method this method invokes the browser’s native ui so the user can examine the details of the purchase, add or change the information, and submit it for payment a promise, indicated by its then method and callback function, resolves what will be returned when the user accepts or rejects the payment request example – show request show then function paymentresponse { // process paymentresponse here paymentresponse complete "success" ; } catch function err { console error "uh oh, something bad happened", err message ; } ; step 7 handle the paymentresponse once the user approves the payment request by verifying the payment option and shipping option if provided , the show method’s promise resolves, resulting in a paymentresponse object comprised of the following fields methodname string indicating the chose payment method e g , visa details dictionary containing information for methodname shippingaddress shipping address of the user, if requested shippingoption id of the selected shipping option, if requested payeremail email address of the payer, if requested payerphone telephone number of the payer, if requested payername name of the payer, if requested here, it’s important to remember that the response from the payment request api must be submitted by the merchant in accordance with the pg’s integration model and apis in all cases, the samsung pay response is encapsulated within the paymentresponse details parameter, which comprises the following fields paymentcredential – contains the payment credential information necessary for processing the transaction with the pg in network token mode, this field includes 3ds data in gateway token mode, it includes token information network token mode type use “s” version 1 0 0; standard for payment authentication aka mastercard securecode, verified by visa, and american express safekey data encrypted payload value gateway token mode reference token id reference status authorized or rejected/declined billingaddress – contains the billing address and related attributes for the cardholder, possibly including country [iso3166] alpha-2 code; canonical form is upper case for example, “us” addressline[n] most specific part of the address; can include a street name, a house number, apartment number, a rural delivery route, descriptive instructions, or a post office box number region top level administrative subdivision of the country; can be a state, a province, an oblast, or a prefecture city city/town portion of the address dependentlocality dependent locality or sub-locality within a city; fused for neighborhoods, boroughs, districts, or uk dependent localities postalcode postal code or zip code, also known as pin code in india sortingcode bank sorting code; for example, in the british and irish banking industries, the sort code is a six-digit number, is usually formatted as three pairs of numbers, for example 12-34-56, identifying both the bank and the branch where the account is held languagecode [bcp47] language tag for the address, in canonical form; used to determine the field separators and the order of fields when formatting the address for display organization organization, firm, company, or institution at this address recipient name of the recipient or contact person this member may, under certain circumstances, contain multiline information; for example, it might contain “care of” information phone telephone number of the recipient or contact person paymentinfo – contains the payment information, including card_last4digits last four digits of the card’s dpan cardbrand currently, either mastercard or visa ordernumber merchant’s unique external reference id supplied in the original request’s methoddata parameter if the user pays with a credit card using the basic-card method, then the details response returned directly to your website from the browser will contain cardholdername, cardnumber, expirymonth, expiryyear, cardsecuritycode, billingaddress example request show then paymentresponse => { var paymentdata = { // payment method string, e g “amex” method paymentresponse methodname, // payment details contains payment information details paymentresponse details /* request details depends on pg token mode network - e g , first data; or gateway - e g , stripe ---------------------------------------------------------|------------------------------------------------------| * gateway token mode |* network token mode | * “details” { |* “details { | * “paymentcredential” { |* “method” “3ds”, | * “reference” “tok_1asceoyf6ypzj7f8se6grp0i”, |* “paymentcredential” { | * “status” “authorized” |* “type” “s”, | * }, |* “version” “100”, | * |* “data” “long_encrypted_payload_value”, | * |* }, | *--------------------------------------------------------|------------------------------------------------------| * “paymentinfo” { * “card_last4digits” “1489”, * “cardbrand” “mastercard”, * “ordernumber” “1233123”, * “billingaddress” { * “country” “usa”, * “addressline” [“chhccy”, “hdyxych”], * “region” “ca”, * “city” “mountain view”, * “dependentlocality” “”, * “postalcode” “94043”, * “sortingcode” “”, * “languagecode” “en”, * “organization” “”, * “recipient” “”, * “phone” “” * } * } * } * */ }; return fetch ‘/validatepayment’, { method ‘post’, headers { ‘content-type’ ‘application/json’ }, body json stringify paymentdata } then res => { if res status === 200 { return res json ; } else { throw ‘payment error’; } } then res => { paymentresponse complete “success” ; }, err => { paymentresponse complete “fail” ; } ; } catch err => { console error “error, something went wrong”, err message ; } ; once payment information is received from samsung pay, the website should submit the payment information to the merchant’s pg for transaction processing the ui will show a spinner while the request takes place when a response is received, the website should call complete to close the ui the website is then free to show an order complete or order confirmation page for user feedback as previously mentioned, you can simplify integration of network tokens by passing the encrypted payload directly to your pg and letting it handle decryption in all cases, how you handle a submitted network token depends on the payment gateway refer to your particular pg’s documentation for details paymentoptions is an optional parameter in thepaymentrequest constructor depending on your particular requirements, you may want additional information, such as the user’s shipping address for physical goods purchased and contact details for guest users paymentoptions currently comprises the following requestpayername true if payer name is required; otherwise, false requestpayeremail true if payer email address is required; otherwise, false requestpayerphone true if payer telephone number is required; otherwise, false requestshipping true if shipping address is required; otherwise, false shippingtype available label options “shipping/pickup/delivery” for indicating to user; solely for display purposes example var options = { requestpayeremail false, requestpayername true, requestpayerphone false, requestshipping true, shippingtype "delivery" } noteif any of the elements listed above are set to true, the browser payment sheet is launched; otherwise, the samsung pay payment sheet is displayed putting it all together let’s assemble the various code blocks into a prototype to demonstrate the w3c payment request api in action function onbuyclicked { const samsung_pay = 'https //spay samsung com'; if !window paymentrequest { // paymentrequest api is not available - forwarding to legacy form based experience location href = '/checkout'; } // setup var supportedinstruments = [{ supportedmethods [ samsung_pay ], // 'https //spay samsung com' data { "version" "1", "productid" "2bc3e6da781e4e458b18bc", //service id from partner portal "allowedcardnetworks" ['mastercard','visa'], "ordernumber" "1233123", "merchantname" "shop samsung demo ", //merchant name in partner portal "merchantgatewayparameter" {"userid" "acct_17irf7f6ypzj7wor"}, "isrecurring" false, "billingaddressrequired" false, "paymentprotocol" "protocol_3ds" } }]; var details = { displayitems [{ label 'original donation amount', amount { currency 'usd', value '65 00' } }, { label 'friends and family discount', amount { currency 'usd', value '-10 00' } }], total { label 'total due', amount { currency 'usd', value '55 00' } }; var options = { requestshipping true, requestpayeremail true, requestpayerphone true, requestpayername true }; // initialization var request = new paymentrequest supportedinstruments, details, options ; // when user selects a shipping address request addeventlistener 'shippingaddresschange', e => { e updatewith details, addr => { var shippingoption = { id '', label '', amount { currency ‘usd’, value ‘0 00’ }, selected true}; // shipping to us is supported if addr country === 'us' { shippingoption id = 'us'; shippingoption label = 'standard shipping in us'; shippingoption amount value = '0 00'; details total amount value = '55 00'; // shipping to jp is supported } else if addr country === 'jp' { shippingoption id = 'jp'; shippingoption label = 'international shipping'; shippingoption amount value = '10 00'; details total amount value = '65 00'; // shipping to elsewhere is unsupported } else { // empty array indicates rejection of the address details shippingoptions = []; return promise resolve details ; { // hardcoded for simplicity if details displayitems length === 2 { details displayitems[2] = shippingoption; } else { details displayitems push shippingoption ; } details shippingoptions = [shippingoption]; return promise resolve details ; } details, request shippingaddress ; } ; // when user selects a shipping option request addeventlistener 'shippingoptionchange', e => { e updatewith details => { // there should be only one option do nothing return promise resolve details ; } details ; } ; // show ui then continue with user payment info request show then result => { // post the result to the server return fetch '/pay', { method 'post', credentials ‘include’, headers { 'content-type' 'application/json' }, body json stringify result tojson } then res => { // only if successful if res status === 200 { return res json ; } else { throw 'failure'; } } then response => { // you should have received a json object if response success == true { return result complete 'success' ; } else { return result complete 'fail' ; } } then => { console log 'thank you!', result shippingaddress tojson , result methodname, result details tojson ; } catch => { return result complete 'fail' ; } ; } catch function err { console error 'uh oh, something bad happened ' + err message ; } ; } document queryselector '#start' addeventlistener 'click', onbuyclicked ; refer to the official w3c integration specs for additional details and definition testing once you have the code saved and loaded, you’re ready to test be sure to test your website or test domain on a device running samsung internet browser and with the samsung pay wallet app already set up and ready to go in accordance with the prerequisites cited above if you use a separate subdomain for your test environment, be sure to add it as an eligible service domain for the service you configured under registering your domain for the w3c service remember that any/all subdomains for production must also be added to the service, up to a maximum of 10 service domains again, please note that samsung pay’s webpay api currently supports mastercard and visa only support for american express and discover is under development and will be available soon be sure to test using the samsung internet and chrome mobile browser apps to test select samsung pay as the payment method by clicking on the branded samsung pay button branded implementations or the samsung pay radio button standard w3c implementations this should launch the samsung pay payment sheet authenticate payment validate your results end to end isolate issues in the log, debug, and test again contact your samsung pay rm to coordinate assistance with troubleshooting recommended test cases check if the samsung pay is available in the payment option on the website verify samsung pay logo on browser sheet verify order summary on the payment sheet verify “edit” and “pay” buttons on payment sheet verify purchased item in the summary verify the billing address on the payment sheet change the billing address try to change the card in payment sheet when only one card is enrolled in samsung pay try to change the card when multiple cards is enrolled in samsung pay verify the payment amount verify the payment options verify the payment completion screen verify merchant name on the payment sheet verify merchant domain name on the payments sheet verify “cancel” and “pay” buttons on browser sheet try to make payment with large amount larger than max allowed amount and verify the behavior make a payment using samsung pay with a card already added for the merchant’s website basic-card verify transaction notification after w3c purchase verify transaction notification after refund set payment options for shipping address and verify that browser payment sheet launches and captures shipping address input/changes by user verify that the shipping cost is updated based on a shipping address change and is reflected in the updated total amount release once your tests are successful and you are satisfied with the results, take the following steps to ready your integrated with samsung pay website for release go to the samsung pay developers portaland create a new release service sharing identical attributes with the service you successfully tested a click on service management, then click create new service b select for release pictured , then click next c select w3c mobile web payments as the service type, then click next d enter a "release" service name and select "united states" as the service country e select united states as the service country f select your payment gateway from the drop-down menu, then click connect with for gateway token mode or provide a valid csr for network token mode g enter your service domain and click add for each additional domain name, click add remember, when entering domain names on the portal, do not include a "https"//" prefix h confirm your agreement with the terms and conditions, then click next retrieve the service id from the service details page and enter copy-paste it into your website's methoddata object in place of the current testing service id when your service is approved by your samsung pay rm — as indicated in the status column of your service management dashboard — you're ready to release your integrated website to the public send queries concerning service package approval to webpayment@samsungpay com
Develop TV Seller Office
docmembership > device list" menu, you can select it immediately and add it to the duid list for the alpha test noteduid information means unique id in "tv menu > support > about this tv > smart hub information" what to check if duid registration for alpha test failstvs that do not support alpha testing, or that do not match the architecture of the alpha testing version, cannot be registered as tvs for alpha testing duids on these tvs are automatically excluded even if you attempt to register in addition, only tvs using the smart service apps panel entry, app download, tv plus viewing, etc within the last six months can be registered as duid for alpha testing if duid registration fails, please check 1 whether the tv is connected to the network and 2 if you have used tv smart service recently if you have not used a tv smart service in the last 6 months, try using it on that tv and registering the duid again after at least 8 hours after entering all of the information and clicking the "done" button, you are ready to start the alpha test, and the status of the version is changed to "alpha testing" in the "applications > distribute > alpha test" list, you can check the submitted application version and alpha test progress it may take a few minutes for the alpha version to be distributed, and you can only access it on the tvs whose duid you have registered to modify alpha test information during the alpha test, you can adjust the test period or add/delete test tv duids you can also start a new test with a version of the application that has already been alpha tested if you click the "edit" button on the "applications > distribute > alpha test" page, a page is opened where you can modify the alpha test settings you can advance the end date of an ongoing alpha test or extend it by up to 30 days an alpha test that has ended can be restarted by setting up a new test duration of up to 30 days from the present moment noteif you want to change the start date of an ongoing alpha test, simply quit the test and start over you can remove a test tv by clicking the "delete" button in the duid list for the alpha test, and you can add a tv by clicking the "add duid" button you can register up to 50 test tvs per alpha test what to check if duid registration for alpha test failstvs that do not support alpha testing, or that do not match the architecture of the alpha testing version, cannot be registered as tvs for alpha testing duids on these tvs are automatically excluded even if you attempt to register in addition, only tvs using the smart service apps panel entry, app download, tv plus viewing, etc within the last six months can be registered as duid for alpha testing if duid registration fails, please check 1 whether the tv is connected to the network and 2 if you have used tv smart service recently if you have not used a tv smart service in the last 6 months, try using it on that tv and registering the duid again after at least 8 hours edit the alpha test information and click the "done" button to apply it immediately to stop alpha test you can immediately end an alpha test in progress if you click the "close alpha test" button on the "applications > distribute > alpha test" page, the test is terminated immediately and the status of the version being tested is changed to "alpha test closed" you can also end the alpha test prematurely using the "edit" button to change the test end date submitting compatibility version whenever a new smart tv model is released or a new tizen version is released to upgrade the previous model group, samsung conducts its own compatibility tests to ensure that the applications being serviced by the existing model and the tizen version can be serviced normally by the new model and the tizen version this process takes place before new model groups and tizen versions are released to the tv seller office, reporting to the seller any compatibility issues that need to be fixed before the application is released to the new model and tizen versions these issues can be viewed in the "applications > compatibility defect" menu, and in order for the application to be eligible to be released on the new model, the seller must submit a version that fixes them through this process, samsung releases only applications with no serious defects on new models and new tizen versions to submit an application version that resolves a compatibility issue, click the "submit compatibility version" button on the "applications > distribute" page noteyou cannot submit a new version while the application service is stopped if the service has been suspended, resume it first when the page for submitting a compatibility version is provided, first select the version of the application to submit if the version you want to submit is not listed, click the "upload app" button to upload the application package file first noteyou cannot submit a version submitted for a beta or alpha test as a release version select the smart tv model group to release the application version a list of model groups suitable for the architecture of the app package is provided and you can choose from them you should know the following points when selecting model groups model groups with defects cannot be selected before all compatibility flaws have been fixed for more information, see the resolving compatibility defect guide model groups that have a previously submitted version with a number higher than the version you intend to release cannot be selected you cannot select a model group for which the version you want to release has already been released you cannot submit to a model group lower than the api version of the application package if the application has the samsung checkout payment function applied, it cannot be submitted to a model group that does not support samsung checkout in order to release an application to a model group subject to fcc regulations, caption and tts functions must be supported applications that do not support caption or tts functions cannot be submitted to model groups subject to fcc regulations for more information, see the entering application feature information guide if you click the "next" button after selecting the version and model group, the application information and pre-test for the selected model group will be executed, and if there is a problem that prevents the application from being submitted, you will be notified the application title written in the default language and the application title specified in the configuration file of the application package must be identical for more information, see the entering application title and description guide if the samsung checkout payment function is applied to the application, the related privilege api must be defined in the application package configuration file, and account information must be registered in the dpi system along with a record of testing in-app purchases at least once in a dpi sandbox environment for more information, see the entering billing information guide if the in-app ad feature is applied to the application, the related privilege api must be defined in the application package configuration file for more information, see the in-app ad information guide the "built in app" property cannot be changed once it is set, and a new app id must be created to change it if you have not clearly identified the properties, please consult with the app working group appwg vd@samsung com and then submit the application if the pre-test fails, the application cannot be submitted in such cases, review and fix the issues found before proceeding with the launch request again after the pre-test is passed, click the "done" button to complete the submission in the "applications > distribute > compatibility" list, you can check the submitted version of your application
We use cookies to improve your experience on our website and to show you relevant advertising. Manage you settings for our cookies below.
These cookies are essential as they enable you to move around the website. This category cannot be disabled.
These cookies collect information about how you use our website. for example which pages you visit most often. All information these cookies collect is used to improve how the website works.
These cookies allow our website to remember choices you make (such as your user name, language or the region your are in) and tailor the website to provide enhanced features and content for you.
These cookies gather information about your browser habits. They remember that you've visited our website and share this information with other organizations such as advertisers.
You have successfully updated your cookie preferences.