Filter
-
Content Type
-
Category
Mobile/Wearable
Visual Display
Digital Appliance
Platform
Recommendations
Filter
Develop Smart TV
docaudio in c++ importantdue to nacl deprecation by the chromium project, tizen tv will continue its support for nacl only until 2021-year products meanwhile, tizen tv will start focusing on high-performance, cross-browser webassembly from 2020-year products this topic describes the "audio in c++" sample application implementation samples audio this tutorial describes how to implement a simple audio playback application that can load and play multiple audio files the user can load wav sounds and start, pause, and stop their playback for information on how to access the sample application cheat sheet and run the application, see sample-based tutorials in the sample application source code, pay attention to the following member variables in the audioinstance class audio_ is a pp audio object header_ is a pointer to a wav file header file_data_bytes_ is the wav file data sound_instances_ is a vector of sound instances read from the wav file active_sounds_ is an array of the active sound instances file_names_ is a vector of wav file names initializing the instance and context to implement audio playback, you must initialize the instance and the audio context in the class constructor, initialize the required members, callback factory, and the logger class audioinstance audioinstance pp_instance instance pp instance instance , file_number_ 0 , active_sounds_number_ 0 , callback_factory_ this { file_names_ reserve knumberofinputsounds ; logger initializeinstance this ; } initialize the audio context define the audio buffer size by retrieving the recommended sample frame count for the given audio parameters, using the recommendsampleframecount function initialize the audio playback configuration object with the retrieved sample frame count initialize the pp audio instance with the audioconfig object and the audiocallback function pointer the audiocallback function implements the main audio playback logic it is called repeatedly during playback, and mixes the audio data from multiple files bool audioinstance init uint32_t /*argc*/, const char* /*argn*/[], const char* /*argv*/[] { // retrieve the recommended sample frame count sample_frame_count_ = pp audioconfig recommendsampleframecount this, pp_audiosamplerate_44100, sample_frame_count ; // create an audio resource configuration with a 44 1 khz sample rate // and the recommended sample frame count pp audioconfig audio_config = pp audioconfig this, pp_audiosamplerate_44100, sample_frame_count_ ; audio_ = pp audio this, // pointer to pp instance audio_config, audiocallback, this ; // argument of type void* for the audiocallback call return true; } implementing playback controls when a playback control button is clicked, the javascript application component uses the postmessage method to notify the native client nacl plugin in the nacl plugin, parse the received message using the handlemessage function and pass the data to the appropriate playback control function void audioinstance handlemessage const pp var& var_message { if var_message is_string { const std string message = var_message asstring ; if startswith message, kplaycommand { // start playback play getidfrommessage message, kplaycommand ; } else if startswith message, kpausecommand { // pause playback pause getidfrommessage message, kpausecommand ; } else if startswith message, kstopcommand { // stop playback stop getidfrommessage message, kstopcommand ; } else if startswith message, kloadcommand { // receive the file url and load it preparereadingfile message substr strlen kloadcommand ; } } } to implement the playback controls to load and read an audio file load the wav file to a data buffer using the preparereadingfile function in the readwave function, interpret the wav data copy the input string to a char vector, and cast the pointer for the data vector to the wavefileheader structure pointer this structure checks whether the header is correctly formatted if the header check succeeds, cast the address for the beginning of the rest of the data array to a smart pointer create a soundinstance object to contain the audio data push the soundinstance object to the sound_instances_ collection, from where it can be retrieved for playback void audioinstance readwave const std string& data { logger log "interpreting wave data of file %s", file_names_[file_number_] c_str ; // clean and create a buffer for interpreting file data file_data_bytes_ reset new char[data size + 1] ; // copy file data to the buffer std copy data begin , data end , file_data_bytes_ get ; file_data_bytes_[data size ] = '\0'; // read the header data header_ = reinterpret_cast<wavefileheader*> file_data_bytes_ get ; // check for malformed header std string header_error = checkforwaveheadererrors *header_ ; if !header_error empty { logger error "unsupported file %s - bad header \n%s", file_names_[file_number_] c_str , header_error c_str ; postmessage createcommandmessage kerrormessage, file_number_ ; return; } std unique_ptr<uint16_t> sample_data reinterpret_cast<uint16_t*> file_data_bytes_ get + sizeof wavefileheader ; // create a sound instance, fill its fields, and add it // to the sound instances vector std shared_ptr<soundinstance> instance new soundinstance file_number_, header_->num_channels, data size - sizeof wavefileheader / sizeof uint16_t , &sample_data ; sound_instances_ insert std pair<int, std shared_ptr<soundinstance> > instance->id_, instance ; // notify the javascript component postmessage createcommandmessage kfileloadedmessage, file_number_ ; logger log "file %s data loaded", file_names_[file_number_] c_str ; } to start playback check whether any sounds are currently active and playing if no sounds are active, start playback by using the startplayback function to initiate the audio callback loop flag the sound as active and increment the active sounds counter notify the javascript component that playback has started void audioinstance play int number { // start playing if nothing is active if active_sounds_number_ == 0 { audio_ startplayback ; logger log "playing started" ; } assert number - 1 >= 0 || number - 1 < knumberofinputsounds ; active_sounds_[number - 1] = true; ++active_sounds_number_; // notify the javascript component postmessage createcommandmessage kplaymessage, number ; } to pause playback flag the sound as inactive and decrement the active sounds counter if there are no active sounds, stop the audio callback loop using the stopplayback function notify the javascript component that playback has paused void audioinstance pause int number { // set the sound as inactive --active_sounds_number_; assert number - 1 >= 0 || number - 1 < knumberofinputsounds ; active_sounds_[number - 1] = false; // stop playing if nothing is active if active_sounds_number_ == 0 { audio_ stopplayback ; logger log "playing stopped" ; } // notify the javascript component postmessage createcommandmessage kpausemessage, number ; } to stop playback flag the sound as inactive and decrement the active sounds counter if there are no active sounds, stop the audio callback loop using the stopplayback function reset the sample_data_offset_ variable, so the file plays from the beginning the next time playback starts notify the javascript component that playback has stopped void audioinstance stop int number { // set the sound as inactive assert number - 1 >= 0 || number - 1 < knumberofinputsounds ; if active_sounds_[number - 1] { --active_sounds_number_; active_sounds_[number - 1] = false; } // stop playing if nothing is active if active_sounds_number_ == 0 { audio_ stopplayback ; logger log "playing stopped" ; } // reset the playback offset sound_instances_[number]->sample_data_offset_ = 0; // notify the javascript component postmessage createcommandmessage kstopmessage, number ; } implementing the audio callback loop the audio callback loop fills the audio buffer with sample data and mixes data from multiple sources in real time during playback, the audiocallback function is called regularly each iteration fills the buffer with the next chunk of data cast the pointer to the audioinstance object and buffer, and fill the buffer with zeroes to maintain the same overall volume level regardless of the number of sounds playing simultaneously, calculate a volume modifier the modifer is defined as the inverse square root of the active sound count fill the buffer with data for each soundinstance object in the sound_instances_ map check whether the end of the sound data has been reached write the data chunk located at the soundinstance object data offset to the buffer using the safeadd function this constrains the buffer values to between a minimum and maximum value for each sample increment the data offset in the soundinstance object the data offset allows the buffer to resume filling from the last position the next time the audiocallback function is called if the end of any soundinstance data is reached, notify the javascript component void audioinstance audiocallback void* samples, uint32_t buffer_size, void* data { // instance pointer is passed when creating audio resource audioinstance* audio_instance = reinterpret_cast<audioinstance*> data ; // fill the audio buffer int16_t* buff = reinterpret_cast<int16_t*> samples ; memset buff, 0, buffer_size ; assert audio_instance->active_sounds_number_ > 0 ; // compute the volume of the sound instances const double volume = 1 0 / sqrt audio_instance->active_sounds_number_ ; // prevent writing outside the buffer assert buffer_size >= sizeof *buff * max_channels_number * audio_instance->sample_frame_count_ ; for soundinstances iterator it = audio_instance->sound_instances_ begin ; it != audio_instance->sound_instances_ end ; ++it { std shared_ptr<soundinstance> instance it->second ; // main loop for writing samples to audio buffer for size_t i = 0; i < audio_instance->sample_frame_count_; ++i { // if there are samples to play if audio_instance->active_sounds_[instance->id_ - 1] && instance->sample_data_offset_ < instance->sample_data_size_ { audio_instance->safeadd &buff[2 * i], volume * int16_t instance->sample_data_[instance->sample_data_offset_] ; // for mono sound, each sample is passed to both channels, but for // stereo sound, samples are written successively to all channels if instance->channels_ == 2 { ++instance->sample_data_offset_; } audio_instance->safeadd &buff[2 * i + 1], volume * int16_t instance->sample_data_[instance->sample_data_offset_] ; ++instance->sample_data_offset_; } } // when the end of a sound is reached, stop playing it if instance->sample_data_offset_ == instance->sample_data_size_ { // pepper api calls are normally avoided in audio callbacks, // as they can cause audio dropouts when the audio callback thread // is swapped out // audio dropout is not a concern here because the audio has ended audio_instance->postmessage audio_instance->createcommandmessage kreturnstopmessage, instance->id_ ; } } }
Develop Samsung Wallet
docreservations”, “insurance”, “health”, “receipt”, “coupon_stamp”, “note”, “photo”, and “others” cardtemplate state string 15 optional wallet card's state* default 'draft' cardtemplate testingmodeoff string 1 optional testmode offeither 'y' or 'n'* default ‘n’available only when updating templates cardtemplate desc string 500 optional description { "cardtemplate" { "prtnrid" "4082825513190138240", "templaterefid" "2138240408282551319", "title" "wallet card title", "prtnrapppckgname" "prtnrapppckgname", "countrycode" "us", "desc" "desc", "cardtype" "generic", "subtype" "others", "applogoimg" "http //www yourdomain com/banner_logo_image png", "designtype" "generic 02", "nonetworksupportyn" "n", "category" "membership", "privacymodeyn" "n", "preventcaptureyn" "n" } }
Develop Smart TV
docreservation of rights; modification samsung reserves all rights not expressly granted in these sdk terms samsung may modify these sdk terms at any time by providing such revised sdk terms to you or posting the revised sdk terms on the site your continued use of the samsung tv app sdk shall constitute your acceptance to be bound by the terms and conditions of such revised terms severability should any term or provision of these sdk terms be deemed invalid, void or unenforceable either in its entirety or in a particular application, the remainder of these sdk terms shall remain in full force and legal effect governing law; jurisdiction; waiver of claims these sdk terms shall be governed by and construed in accordance with the laws of the republic of korea, without regard to conflict of law rules thereof the parties hereto expressly understand and agree that any action brought by you against samsung arising out of these sdk terms shall be brought exclusively in the courts located in seoul, korea, and any action brought by samsung against you arising out of these sdk terms shall, at the election of samsung, be brought in either the courts located in seoul, korea, or the applicable courts of the jurisdiction in which you reside the parties hereby consent to, and irrevocably submit themselves to, the exclusive personal jurisdiction and venue of such courts as set forth in this section the application of the united nations convention on contracts for international sale of goods is expressly excluded miscellaneous terms you may not assign these sdk terms without samsung's prior written consent the waiver by samsung of any breach or default shall not be deemed to be a waiver of any other breach or default the exercise or failure to exercise any remedy by samsung shall not preclude the exercise of that remedy at another time or of any other remedy at any time if any provision of these sdk terms is held to be invalid or unenforceable, that term shall be interpreted as closely as possible to its original intent as is consistent with its validity and enforceability, and the other provisions shall not be affected the headings are used for the convenience of the parties only and shall not affect the construction or interpretation of these sdk terms you expressly acknowledge that you have read these sdk terms and understand the rights, obligations, terms and conditions set forth herein by accessing and continuing to use the samsung tv app sdk, you expressly consent to be bound by its terms and conditions and grant to samsung the rights set forth herein i agree to this sdk license agreement download
Develop Smart TV
sdkreservation of rights; modification samsung reserves all rights not expressly granted in these sdk terms samsung may modify these sdk terms at any time by providing such revised sdk terms to you or posting the revised sdk terms on the site your continued use of the samsung tv app sdk shall constitute your acceptance to be bound by the terms and conditions of such revised terms severability should any term or provision of these sdk terms be deemed invalid, void or unenforceable either in its entirety or in a particular application, the remainder of these sdk terms shall remain in full force and legal effect governing law; jurisdiction; waiver of claims these sdk terms shall be governed by and construed in accordance with the laws of the republic of korea, without regard to conflict of law rules thereof the parties hereto expressly understand and agree that any action brought by you against samsung arising out of these sdk terms shall be brought exclusively in the courts located in seoul, korea, and any action brought by samsung against you arising out of these sdk terms shall, at the election of samsung, be brought in either the courts located in seoul, korea, or the applicable courts of the jurisdiction in which you reside the parties hereby consent to, and irrevocably submit themselves to, the exclusive personal jurisdiction and venue of such courts as set forth in this section the application of the united nations convention on contracts for international sale of goods is expressly excluded miscellaneous terms you may not assign these sdk terms without samsung's prior written consent the waiver by samsung of any breach or default shall not be deemed to be a waiver of any other breach or default the exercise or failure to exercise any remedy by samsung shall not preclude the exercise of that remedy at another time or of any other remedy at any time if any provision of these sdk terms is held to be invalid or unenforceable, that term shall be interpreted as closely as possible to its original intent as is consistent with its validity and enforceability, and the other provisions shall not be affected the headings are used for the convenience of the parties only and shall not affect the construction or interpretation of these sdk terms you expressly acknowledge that you have read these sdk terms and understand the rights, obligations, terms and conditions set forth herein by accessing and continuing to use the samsung tv app sdk, you expressly consent to be bound by its terms and conditions and grant to samsung the rights set forth herein i agree to this sdk license agreement download
Develop Smart Signage
sdkreservation of rights; modification samsung reserves all rights not expressly granted in these sdk terms samsung may modify these sdk terms at any time by providing such revised sdk terms to you or posting the revised sdk terms on the site your continued use of the samsung tv app sdk shall constitute your acceptance to be bound by the terms and conditions of such revised terms severability should any term or provision of these sdk terms be deemed invalid, void or unenforceable either in its entirety or in a particular application, the remainder of these sdk terms shall remain in full force and legal effect governing law; jurisdiction; waiver of claims these sdk terms shall be governed by and construed in accordance with the laws of the republic of korea, without regard to conflict of law rules thereof the parties hereto expressly understand and agree that any action brought by you against samsung arising out of these sdk terms shall be brought exclusively in the courts located in seoul, korea, and any action brought by samsung against you arising out of these sdk terms shall, at the election of samsung, be brought in either the courts located in seoul, korea, or the applicable courts of the jurisdiction in which you reside the parties hereby consent to, and irrevocably submit themselves to, the exclusive personal jurisdiction and venue of such courts as set forth in this section the application of the united nations convention on contracts for international sale of goods is expressly excluded miscellaneous terms you may not assign these sdk terms without samsung's prior written consent the waiver by samsung of any breach or default shall not be deemed to be a waiver of any other breach or default the exercise or failure to exercise any remedy by samsung shall not preclude the exercise of that remedy at another time or of any other remedy at any time if any provision of these sdk terms is held to be invalid or unenforceable, that term shall be interpreted as closely as possible to its original intent as is consistent with its validity and enforceability, and the other provisions shall not be affected the headings are used for the convenience of the parties only and shall not affect the construction or interpretation of these sdk terms you expressly acknowledge that you have read these sdk terms and understand the rights, obligations, terms and conditions set forth herein by accessing and continuing to use the samsung tv app sdk, you expressly consent to be bound by its terms and conditions and grant to samsung the rights set forth herein i agree to this sdk license agreement download
Develop Smart Hospitality Display
sdkreservation of rights; modification samsung reserves all rights not expressly granted in these sdk terms samsung may modify these sdk terms at any time by providing such revised sdk terms to you or posting the revised sdk terms on the site your continued use of the samsung tv app sdk shall constitute your acceptance to be bound by the terms and conditions of such revised terms severability should any term or provision of these sdk terms be deemed invalid, void or unenforceable either in its entirety or in a particular application, the remainder of these sdk terms shall remain in full force and legal effect governing law; jurisdiction; waiver of claims these sdk terms shall be governed by and construed in accordance with the laws of the republic of korea, without regard to conflict of law rules thereof the parties hereto expressly understand and agree that any action brought by you against samsung arising out of these sdk terms shall be brought exclusively in the courts located in seoul, korea, and any action brought by samsung against you arising out of these sdk terms shall, at the election of samsung, be brought in either the courts located in seoul, korea, or the applicable courts of the jurisdiction in which you reside the parties hereby consent to, and irrevocably submit themselves to, the exclusive personal jurisdiction and venue of such courts as set forth in this section the application of the united nations convention on contracts for international sale of goods is expressly excluded miscellaneous terms you may not assign these sdk terms without samsung's prior written consent the waiver by samsung of any breach or default shall not be deemed to be a waiver of any other breach or default the exercise or failure to exercise any remedy by samsung shall not preclude the exercise of that remedy at another time or of any other remedy at any time if any provision of these sdk terms is held to be invalid or unenforceable, that term shall be interpreted as closely as possible to its original intent as is consistent with its validity and enforceability, and the other provisions shall not be affected the headings are used for the convenience of the parties only and shall not affect the construction or interpretation of these sdk terms you expressly acknowledge that you have read these sdk terms and understand the rights, obligations, terms and conditions set forth herein by accessing and continuing to use the samsung tv app sdk, you expressly consent to be bound by its terms and conditions and grant to samsung the rights set forth herein i agree to this sdk license agreement download
Develop Samsung Wallet
docreservationnumber string 32 required number of the transit reservation 20 boardingpriority string 32 optional information on whether entitles the passenger to board before others i e , if the passengers are pregnant 21 boardingseqno string 32 optional boarding sequence number 22 boardinggroup string 8 optional value of boarding group or zone e g , b 23 boardingtime long 13 optional boarding time epoch timestamp in milliseconds 24 boardingtime utcoffset string 8 conditional utc offset of boarding time at the departure point * required if boardingtime exist 25 gateclosingtime long 13 optional boarding gate closing time epoch timestamp in milliseconds 26 gateclosingtime utcoffset string 8 conditional utc offset of gate closing time at the departure point * required if gateclosingtime exist 27 baggageallowance string 16 optional baggage allowance 28 departname string 32 conditional name of the departure point * required if subtype is airlines 29 departcode string 8 conditional code for the departure point * required if subtype is airlines 30 departterminal string 8 conditional terminal name of the departure point * required if subtype is airlines 31 departgate string 8 optional gate name of the departure point 32 estimatedoractualstartdate long 13 conditional departure time epoch timestamp in milliseconds, i e , the estimated time the aircraft plans to pull from the gate, or the actual time the aircraft already pulled from the gate * required if subtype is airlines 33 estimatedoractualstartdate utcoffset string 8 conditional utc offset of time at the departure point * required if estimatedoractualstartdate exists 34 arrivename string 32 conditional name of the arrival point * required if subtype is airlines 35 arrivecode string 8 conditional code for the arrival point * required if subtype is airlines 36 arriveterminal string 8 optional terminal name of the arrival point 37 arrivegate string 8 optional gate name of the arrival point 38 estimatedoractualenddate long 13 conditional arrival time epoch timestamp in milliseconds, i e , the estimated time the aircraft plans to reach the destination gate not the runway , or the actual time it reached the gate * required if subtype is airlines 39 estimatedoractualenddate utcoffset string 8 conditional utc offset of time at the arrival point * required if estimatedoractualenddate exists 40 locations string 1024 optional list of locations where the card can be used * see location format 41 bgcolor string 8 required color of the card art e g , #00ffff 42 fontcolor string 8 optional color of the font on the card art acceptable values dark, light 43 blinkcolor string 8 optional color of the blinking effect which indicates that a card cannot be captured in the indicator area e g , #00ffff 44 applinklogo string 256 required app link image url the file size should not exceed 256 kb 45 applinkname string 32 required app link name 46 applinkdata string 256 required information about the partner app link 47 extrainfo string 512 optional additional information to be delivered to customers * see additional information format 48 noticedesc string 5000 optional text of the notice * long content is allowed * see additional information format 49 csinfo string 512 optional providers’ customer service informationusing data in json format converted to escape string* allowed items call, email, or website* see below for an example 50 displaytsaprecheckyn string 1 optional flag whether to display the tsa precheck image either ‘y’ or ‘n’ image size 68x20 / 140x20 51 membershipstatuslevel string 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 52 barcode value string 4096 optional actual data that is delivered when the barcode/qr code is scanned 53 barcode serialtype string 32 optional presentation type e g , serialnumber, barcode, * see barcode format 54 barcode ptformat string 32 optional presentation format e g , barcode, qrcode, serial, *see barcode format 55 barcode ptsubformat string 32 optional presentation sub-format e g , code_128, qr_code, * see barcode format 56 barcode errorcorrectionlevel string 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 원" } } ] } ] } } event ticket 'event ticket' cards support event commodities for performances, sports, movies, entrances, and etc event tickets in wallet can provide additional information about the event and an alarm before the event time and expiration ticket cards support event commodities for performances, sports, movies, and entrance wallet card type wallet card subtype ticket performances, sports, movies, entrances, others -performances -movies -sports -entrances type value description attributes {fields} 1 title string 32 required main title e g , mlb ticket 2 category string 16 optional ticket category * this will be deprecated 3 eventid string 32 optional if full cancelation of the event occurs, find and process all tickets with this id 4 groupingid string 32 optional identifier used to group related cards 5 orderid string 32 optional a unique identifier for an order 6 mainimg string 256 required url for main ticket image the file size should not exceed 512 kb 7 subtitle1 string 32 optional the auxiliary field which displays supporting information 8 logoimage string 256 required logo image url to be displayed in the card item the file size should not exceed 256 kb 9 logoimage darkurl string 256 required logo image url in dark mode the file size should not exceed 256 kb 10 logoimage lighturl string 256 required logo image url in light mode the file size should not exceed 256 kb 11 wideimage string 256 optional wide horizontal image url displayed on the card information screen the file size should not exceed 256 kb 12 providername string 32 required ticket provider name 13 providerviewlink string 512 optional link to additional information from the provider* see links format 14 classification string 16 optional classification of tickets use onetime, regular, or annual * default onetime 15 holdername string 64 optional name of card holders 16 idphoto string 20k optional holder’s photo image data encoded base64 17 idphoto format string 32 optional image file formate g , jpeg, png * unsupported image formats may exist 18 idphoto status string 16 optional status of the dataallowed value unchanged 19 grade string 32 optional ticket grade 20 seatclass string 32 optional seat class 21 entrance string 64 optional entrance gate 22 seatnumber string 256 optional seat location 23 seatlayoutimage string 256 optional url of the seat layout image the file size should not exceed 512 kb 24 issuedate long 13 required issue date epoch timestamp in milliseconds 25 reservationnumber string 32 required reservation number 26 user string 64 optional name of person who made the reservation 27 certification string 16 optional ticket certification e g ,r, as a film rating 28 reactivatableyn string 1 optional flag whether the card is able to activate an expired ticket temporarily either 'y' or 'n' * default 'n' 29 preventcaptureyn string 1 optional flag whether this wallet card view prevents screen capture either 'y' or 'n'* default 'n' 30 nonetworksupportyn string 1 optional set whether to support to open the wallet card under 'no network' status either 'y' or 'n' * default 'n' 31 startdate long 13 required start date displayed start date epoch timestamp in milliseconds 32 startdate utcoffset string 8 optional utc offset of start date time at the event location 33 enddate long 13 optional end date displayed end date epoch timestamp in milliseconds * if null, the card will expire in 10 hours from startdate 34 enddate utcoffset string 8 optional utc offset of start date time at the event location 35 person1 string 512 optional number of persons by category * see classification format 36 locations string 1024 optional list of locations where the card can be used * see location format 37 noticedesc string 5000 required text of the notice * long content is allowed * see additional information format 38 groupinfo1 string 64 optional the first common information with the same groupingid 39 groupinfo2 string 64 optional the second common information with the same groupingid *it is recommended to set groupinfo1 first 40 groupinfo3 string 64 optional the third common information with the same 'groupingid' *it is recommended to set groupinfo1, groupinfo2 first 41 csinfo string 512 optional providers’ customer service informationusing data in json format converted to escape string * allowed items call, email, website, facebook, youtube, or instagram* see the example below 42 privacymodeyn string 1 optional whether or not to require user authentication when using the cardeither ‘y’ or ‘n’* default ‘n’ 43 applinklogo string 256 required app link image url the file size should not exceed 256 kb 44 applinkname string 32 required app link name 45 applinkdata string 256 required information about the partner app link 46 bgcolor string 8 optional color of the card art e g , #00ffff 47 fontcolor string 8 optional color of the font on the card art acceptable values dark, light 48 blinkcolor string 8 optional color of the blinking effect in the indicator areae g , #00ffff 49 barcode value string 4096 optional actual data that is delivered when the barcode/qr code is scanned 50 barcode serialtype string 32 optional presentation type e g , serialnumber, barcode * see barcode format 51 barcode ptformat string 32 optional presentation format e g , barcode, qrcode, serial * see barcode format 52 barcode ptsubformat string 32 optional presentation sub-format e g , code_128, qr_code * see barcode format 53 barcode errorcorrectionlevel string 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 54 barcode interval string 4 optional update interval if support for dynamic updatesepoch timestamp in milliseconds 55 provision data string 512 optional elements to complete provisioning* see provisioning for details 56 provision interval string 16 optional update interval if support for dynamic updates epoch timestamp in milliseconds 57 relcoupon{i} title string 32 conditional coupon title * required if this ticket has a related couponi 1~3 58 relcoupon{i} subtitle string 32 optional coupon subtitlei 1~3 59 relcoupon{i} providername string 32 conditional coupon provider name * required if this ticket has a related coupon i 1~3 60 relcoupon{i} imagefilesrc string 256 optional coupon image url the file size should not exceed 256 kb i 1~3 61 relcoupon{i} noticedescription string 1024 optional text of the notice * long content is allowed * see additional information format i 1~3 62 relcoupon{i} notificationtime long 13 optional coupon exposure time epoch timestamp in milliseconds i 1~3 63 relcoupon{i} value string 4096 conditional actual data that is delivered when the barcode/qr code is scanned i 1~3 64 relcoupon{i} serialtype string 32 required presentation typee g , serialnumber, barcode, * see barcode format i 1~3 65 relcoupon{i} ptformat string 32 conditional presentation formate g , barcode, qrcode, serial, * see barcode format i 1~3 66 relcoupon{i} ptsubformat string 32 conditional presentation sub-formate g , code_128, qr_code, * see barcode format i 1~3 67 relcoupon{i} errorcorrectionlevel string 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 i 1~3 example { "card" { "type" "ticket", "subtype" "entrances", "data" [ { "refid" "ent-ticket-0613001", "createdat" 1686657600000, "updatedat" 1686657600000, "language" "en", "attributes" { "title" "galaxy land entrance ticket", "subtitle1" "standard", "classification" "annual", "groupingid" "group-0613001", "orderid" "ent-0613001", "mainimg" "https // /main png", "logoimage" "https // /logo png", "providername" "galaxy entertainment", "logoimage darkurl" "https // /logo-dark png", "issuedate" 1686657600000, "reservationnumber" "glx-0613-001", "startdate" 1686657600000, "enddate" 1718280000000, "holdername" "kim eunha", "idphoto data" "base64-encoded{image-file-data}", "idphoto format" "png", "grade" "family", "person1" "{\"person\" [{\"category\" \"adult\", \"count\" 1 }]}", "locations" "[{\"lat\" 37 256518, \"lng\" 127 053516, \"address\" \"samsung-ro yeongtong-gu, suwon\", \"name\" \"galaxy land central park\"}]", "noticedesc" "{\"count\" 2,\"info\" [{\"title\" \"notice 1\",\"content\" [\"description 1-1\",\"description 1-2\"]},{\"title\" \"notice 2\",\"content\" [\"description 2-1\"]}]}", "groupinfo1" "adult 1", "groupinfo2" "standard", "groupinfo3" "family", "csinfo" "{\"call\" \"0000-0000\",\"email\" \"samsungwallet@samsungwallet com\",\"website\" \"https //www samsungwallet com/cs/\",\"instagram\" \"https //www instagram com/samsungwallet\",\"youtube\" \"https //www youtube com/@samsungwallet\",\"facebook\" \"https //www facebook com/samsungwallet\" }", "applinkname" "galaxy ticket", "applinklogo" "https // /applinklogo png", "applinkdata" "https //www applinkdata com", "bgcolor" "#e86d1f", "fontcolor" "light", "blinkcolor" "#e86d1f", "barcode value" "serial-0613-001", "barcode serialtype" "qrcode", "barcode ptformat" "qrcodeserial", "barcode ptsubformat" "qr_code" }, "localization" [ { "language" "ko", "attributes" { "title" "갤럭시 랜드 입장권", "holdername" "김은하", "person1" "{\"person\" [{\"category\" \"어른\", \"count\" 1 }]}", "locations" "[{\"lat\" 37 256518, \"lng\" 127 053516, \"address\" \"samsung-ro yeongtong-gu, suwon\", \"name\" \"갤럭시 랜드 센트럴 파크\"}]", "noticedesc" "{\"count\" 2,\"info\" [{\"title\" \"공지사항 1\",\"content\" [\"설명 1-1\",\"설명 1-2\"]},{\"title\" \"공지사항 2\",\"content\" [\"설명 2-1\"]}]}", "groupinfo1" "어른 1" } } ] } ] } } coupon 'coupon' cards support digitized redeemable voucher coupons in wallet for various channels can provide alarms before expiration and update usage status wallet card type wallet card subtype coupon others type value description attributes {fields} 1 title string 32 required main title e g , free coupon 2 orderid string 32 optional unique identifier for an order 3 mainimg string 256 required url for the main coupon image the file size should not exceed 512 kb 4 logoimage string 256 optional logo image url to be displayed in the card item the file size should not exceed 256 kb 5 logoimage darkurl string 256 optional logo image url in dark mode the file size should not exceed 256 kb 6 logoimage lighturl string 256 optional logo image url in light mode the file size should not exceed 256 kb 7 brandname string 32 optional brand name 8 expiry long 13 required expiration date in timestamp format issued data is cleaned up after it expires epoch timestamp in milliseconds 9 issuedate long 13 required issue date epoch timestamp in milliseconds 10 redeemdate long 13 optional date when the coupon is used epoch timestamp in milliseconds 11 noticedesc string 5000 optional text of notice * html is supported 12 editableyn string 1 required flag whether the coupon can be modified either 'y' or 'n' 13 deletableyn string 1 required flag whether the coupon can be deleted either 'y' or 'n' 14 displayredeembuttonyn string 1 required flag whether the use completion button is displayed either 'y' or 'n' 15 notificationyn string 1 required flag whether a notification related to the coupon is delivered either 'y' or 'n' 16 applinklogo string 256 required app link image url the file size should not exceed 256 kb 17 applinkname string 32 required app link name 18 applinkdata string 256 required information about the partner app link 19 preventcaptureyn string 1 optional flag whether this wallet card view prevents screen captureeither 'y' or 'n'* default 'n' 20 barcode value string 4096 conditional actual data that is delivered when the barcode/qr code is scanned 21 barcode value2 string 4096 conditional the secondary barcode data * required if ptformat is dualbarcode or dualbarcodeserial 22 barcode serialtype string 32 optional presentation type e g ,serialnumber, barcode * see barcode format 23 barcode ptformat string 32 optional presentation format e g , barcode, qrcode, serial * see barcode format 24 barcode ptsubformat string 32 optional presentation sub-format e g ,code_128, qr_code * see barcode format 25 barcode errorcorrectionlevel string 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 26 balance string 50 optional initial balance this is going to be shown as received it is recommended to use a one letter currency symbol e g , $1,000, 1,000p 27 summaryurl string 256 optional webpage url that show details, such as balance 28 usermessage string 256 optional message to forward 29 sender string 64 optional name of sender 30 redeemurl string 256 optional link to redeem coupons example { "card" { "type" "coupon", "subtype" "others", "data" [ { "refid" "ref-230712-0001", "createdat" 1612660039000, "updatedat" 1612660039000, "language" "en", "attributes" { "title" "free coupon", "mainimg" "https // /main png", "brandname" "samsung coupon", "expiry" 1637802725000, "issuedate" 1637457125000, "editableyn" "n", "deletableyn" "n", "displayredeembuttonyn" "y", "notificationyn" "y", "applinkname" "oo voucher", "applinklogo" "https // /applinklogo png", "applinkdata" "https //www oocoupon com", "barcode value" "cs16138353212584806754fg1802 ", "barcode serialtype" "barcode", "barcode ptformat" "qrcodeserial", "barcode ptsubformat" "qr_code" } } ] } } gift card 'gift card' cards support enrolling prepaid cards also known as gift certificate, gift voucher or gift token links urls to get balance and transactions history in real time is provided in the partners portal if a partner needs to integrate communication between samsung wallet server and the partner’s server to support the feature, the partner has to set the links in partners portal wallet card type wallet card subtype giftcard others type value description attributes {fields} 1 title string 32 required main title e g , samsung gift card 2 eventid string 36 optional if full cancelation of the event occurs, find and process all gift cards with this id 3 orderid string 36 optional a unique identifier for an order 4 subtitle1 string 32 optional the auxiliary field which displays supporting information 5 logoimage string 256 optional logo image url to be displayed in the card item the file size should not exceed 256 kb 6 logoimage darkurl string 256 optional logo image url in dark mode the file size should not exceed 256 kb 7 logoimage lighturl string 256 optional logo image url in light mode the file size should not exceed 256 kb 8 providername string 32 required gift card provider name 9 user string 64 optional name of person who holds the gift card 10 preventcaptureyn string 1 optional flag whether this wallet card view prevents screen capture either 'y' or 'n', the default value is 'n' 11 startdate long 13 optional start date display start date epoch timestamp in milliseconds 12 enddate long 13 optional end date display end date epoch timestamp in milliseconds 13 locations string 1024 optional list of locations where the gift card can be used * see location format 14 noticedesc string 5000 optional text of the notice * long content is allowed * see additional information format 15 csinfo string 512 optional providers’ customer service informationusing data in json format converted to escape string * allowed items call, email, or website* see the example below 16 applinklogo string 256 required app link image url the file size should not exceed 256 kb 17 applinkname string 32 required app link name 18 applinkdata string 256 required information about the partner app link 19 bgimage string 256 optional url for card art background image the recommended size for image resources is 888 x 555 px 20 mainimg string 256 optional url for gift card image the file size should not exceed 512 kb 21 bgcolor string 8 optional color of the card art e g ,#00ffff 22 fontcolor string 8 optional color of the font on the card art acceptable values dark, light 23 blinkcolor string 8 optional color of the blinking effect which indicates that a card cannot be captured in the indicator area e g , #00ffff 24 barcode value string 4096 optional actual data that is delivered when the barcode/qr code is scanned 25 barcode serialtype string 32 optional presentation type e g , serialnumber, barcode *see barcode format 26 barcode ptformat string 32 optional presentation format e g , barcode, qrcode, serial *see barcode format 27 barcode ptsubformat string 32 optional presentation sub-format e g , code_128, qr_code * see barcode format 28 barcode pin string 16 optional pin to show with a barcode 29 barcode errorcorrectionlevel string 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 30 merchantid string 36 optional merchant identifier 31 merchantname string 32 optional merchant name to display 32 amount string 32 optional initial balance this is going to be shown as received e g , $1,000 33 balance string 32 optional remaining balance this is going to be shown as received e g , $1,000 34 summaryurl string 256 optional web url that show details, such as balance or transactions history example { "card" { "type" "giftcard", "subtype" "others", "data" [ { "refid" "b3fdc982-28c9-47a3-b02f-d484779698a7", "createdat" 1672574400000, "updatedat" 1672574400000, "language" "en", "attributes" { "title" "samsung gift card", "eventid" "event-001", "logoimage" "https //gpp walletsvc samsung com/mcs/images/contents/wallet_intro_logo png", "logoimage darkurl" "https //gpp walletsvc samsung com/mcs/images/contents/wallet_intro_logo png", "providername" "samsung gift card provider", "user" "ms jane doe", "noticedesc" "<ul><li>gift card test</li></ul>", "csinfo" "{\"call\" \"0000-0000\",\"email\" \"samsungwallet@samsungwallet com\",\"website\" \"https //www samsungwallet com/cs/\" }", "applinklogo" "https //play-lh googleusercontent com/znfa1roz7hpv9j-jiacbjmjudl2x-fnuwte0oyvbbcwvf5vpzoqqikbxgk7d-aptvag=w240-h480-rw", "applinkname" "gift card link", "applinkdata" "https //www samsung com/", "bgcolor" "#0a1a4f", "fontcolor" "light", "blinkcolor" "#00ffff", "barcode value" "cs16138353212584806754fg1802", "barcode serialtype" "qrcode", "barcode ptformat" "qrcodeserial", "barcode ptsubformat" "qr_code" } } ] } } loyalty 'loyalty' cards support enrolling loyalty cards also known as membership links urls to get points in real time can be provided in the partners portal if a partner needs to integrate communication between samsung wallet server and the partner’s server to support the feature, the partner has to set the links in the partners portal wallet card type wallet card subtype loyalty others type value description attributes {fields} 1 title string 32 required main title e g ,samsung loyalty card 2 eventid string 36 optional if full cancelation of the event occurs, find and process all loyalty cards with this id 3 groupingid string 36 optional identifier used to group related cards 4 orderid string 36 optional a unique identifier for an order 5 subtitle1 string 32 optional the auxiliary field which displays supporting information 6 logoimage string 256 optional logo image url to be displayed in the card item the file size should not exceed 256 kb 7 logoimage darkurl string 256 optional logo image url in dark mode the file size should not exceed 256 kb 8 logoimage lighturl string 256 optional logo image url in light mode the file size should not exceed 256 kb 9 providername string 32 required loyalty card provider name 10 startdate long 13 optional start date display start date epoch timestamp in milliseconds 11 enddate long 13 optional end date display end date epoch timestamp in milliseconds 12 locations string 1024 optional list of locations where the card can be used * see location format 13 noticedesc string 5000 optional text of notice *html supported 14 csinfo string 512 optional providers’ customer service information using data in json format converted to escape string * allowed items call, email, website, facebook, pinterest, x, or instagram * see the example below 15 applinklogo string 256 required app link image url the file size should not exceed 256 kb 16 applinkname string 32 required app link name 17 applinkdata string 256 required information about the partner app link 18 bgimage string 256 optional background image for a card art the recommended size for image resources is 888 x 555 px 19 bgcolor string 8 optional color of the card art e g , #00ffff 20 fontcolor string 8 optional color of the font on the card art acceptable values dark, light 21 blinkcolor string 8 optional color of the blinking effect which indicates that a card cannot be captured in the indicator area e g , #00ffff 22 barcode value string 4096 optional actual data that is delivered when the barcode/qr code is scanned 23 barcode serialtype string 32 optional presentation type e g , serialnumber, barcode * see barcode format 24 barcode ptformat string 32 optional presentation format e g , barcode, qrcode, serial * see barcode format 25 barcode ptsubformat string 32 optional presentation sub-format e g , code_128, qr_code *see barcode format 26 barcode errorcorrectionlevel string 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 27 merchantid string 36 optional merchant identifier 28 merchantname string 32 optional merchant name to display 29 amount string 32 optional total amount of points or initial balance this is going to be shown as received it is recommended to use a one letter currency symbol e g , $ 1,000, 1,000p 30 balance string 32 optional available points or remaining balance this is going to be shown as received it is recommended to use a one letter currency symbol e g , $ 1,000, 1,000p 31 summaryurl string 256 optional webpage url that shows details, such as balance or transactions history example { "card" { "type" "loyalty", "subtype" "others", "data" [ { "refid" "b3fdc982-28c9-47a3-b02f-d484779698a8", "createdat" 1672574400000, "updatedat" 1672574400000, "language" "en", "attributes" { "title" "samsung loyalty card", "eventid" "event-001", "logoimage" "https //gpp walletsvc samsung com/mcs/images/contents/wallet_intro_logo png", "logoimage darkurl" "https //gpp walletsvc samsung com/mcs/images/contents/wallet_intro_logo png", "providername" "samsung loyalty card provider", "noticedesc" "<ul><li>loyalty card test</li></ul>", "csinfo" " {\"call\" \"0000-0000\",\"email\" \"samsungwallet@samsungwallet com\",\"website\" \"https //www samsungwallet com/cs/\",\"instagram\" \"https //www instagram com/samsungwallet\",\"pinterest\" \"https //www pinterest com/samsungwallet\",\"x\" \"https //www twitter com/samsungwallet\",\"facebook\" \"https //www facebook com/samsungwallet\" }", "applinklogo" "https //play-lh googleusercontent com/znfa1roz7hpv9j-jiacbjmjudl2x-fnuwte0oyvbbcwvf5vpzoqqikbxgk7d-aptvag=w240-h480-rw", "applinkname" "loyalty card link", "applinkdata" "https //www samsung com/", "bgcolor" "#0a1a4f", "barcode value" "cs16138353212584806754fg1802", "barcode serialtype" "qrcode", "barcode ptformat" "qrcodeserial", "barcode ptsubformat" "qr_code", "amount" "1,000p", "balance" "500p" } } ] } } digital ids 'digital id' cards are used to present identification for employees, students, drivers, guests, etc wallet card type wallet card subtype idcard employees, nationals, students, drivers, guests, others -employees -nationals -students -drivers type value description attributes {fields} 1 title string 32 required main title of cardse g , commercial access, employee badge 2 holdername string 64 required name of card holders 3 secondholdername string 64 optional second name of card holders 4 organization string 64 optional organization of card holders belongingi e , name of department, division, affiliation, association or team, name of college or school 5 position string 64 optional position of card holderse g , engineer, 5th grade 6 identifier string 64 required unique id valuei e , unique card number assigned to the card holdere g , s 123 456 789 012 x 7 idnumber string 64 optional representative value for an idi e , id number, document number, card/roll number assigned by the institution or collegee g , b19mba115 8 idstatus string 64 optional card holder's statusex full time student, graduate, exchange, post-graduate, under-graduate 9 address string 256 optional address of card holders 10 placeoflocation string 64 optional place of location associated with the cardholder 11 idphoto string 128k optional holder’s photo image data encoded base64the file size should not be greater than 128 kb 12 idphoto format string 32 optional image file formate g , jpeg, png* unsupported image formats may exist 13 idphoto status string 16 optional status of the dataallowed value unchanged 14 document string 1024k optional first document of identity 15 document format string 32 optional document format- allowed value pdf, jpeg, png 16 document status string 16 optional status of the dataallowed value unchanged 17 issuedate long 13 required issue date epoch timestamp in milliseconds 18 birthdate string 16 optional date of birth 19 gender string 16 optional gender of card holders 20 classification string 16 optional classified identity type 21 expiry long 13 optional expiry date in timestamp format issued data is cleaned up after it expires epoch timestamp in milliseconds 22 contacts string 32 optional personal contact information such as phone number 23 logoimage string 256 optional logo image url to be displayed in card item the file size should not exceed 256 kb 24 logoimage darkurl string 256 optional logo image url in dark mode the file size should not exceed 256 kb* if this value does not exist, logoimage will be substituted 25 logoimage lighturl string 256 optional logo image url in light mode the file size should not exceed 256 kb* if this value does not exist, logoimage will be substituted 26 logotext string 16 optional text as an alternative to logoimage 27 providername string 32 required content provider namei e , partnering institute 28 issuername string 32 optional place of issue or issuing authority name 29 extrainfo string 512 optional additional informationi e , bloodgroup, guardianname, govrefid* see additional information format 30 noticedesc string 5000 optional text of the notice * long content is allowed * see additional information format 31 csinfo string 512 required providers’ customer service information using data in json format converted to escape string * allowed items call, email, or website* see the example below 32 privacymodeyn string 1 optional whether or not to require user authentication when using the card either ‘y’ or ‘n’* default ‘n’ 33 applinklogo string 256 optional app link image url the file size should not exceed 256 kb 34 applinkname string 32 optional app link name 35 applinkdata string 256 optional information about the partner app link 36 locations string 1024 optional list of locations where the card can be used* see location format 37 coverimage string 256 optional card cover image urlthe file size should not exceed 512 kb the recommended size for image resources is 888 x 555 px 38 bgimage string 256 optional card background image urlthe file size should not exceed 512 kb the recommended size for image resources is 888 x 555 px 39 bgcolor string 8 optional color of the card art support hex color code e g , #015aaa 40 fontcolor string 8 optional color of the font on the card art allowed value black, white 41 blinkcolor string 8 optional color of the blinking effect in the indicator area support hex color code e g , #015aaa 42 preventcaptureyn string 1 optional flag whether this wallet card view prevents screen capture either 'y' or 'n' * default 'n' 43 barcode value string 4096 optional actual data that is delivered when the barcode/qr code is scanned 44 barcode serialtype string 32 optional presentation type e g , serialnumber, barcode, * see barcode format 45 barcode ptformat string 32 optional presentation format e g , barcode, qrcode, serial, * see barcode format 46 barcode ptsubformat string 32 optional presentation sub-format e g , code_128, qr_code, * see barcode format 47 barcode errorcorrectionlevel string 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 * default l 48 barcode interval string 4 optional update interval if support for dynamic updates epoch timestamp in milliseconds 49 authentication string 64 optional authentication data which meets choose options * see authentication for details 50 provision data string 512 optional elements to complete provisioning* see provisioning for details 51 provision interval string 16 optional update interval if support for dynamic updatesepoch timestamp in milliseconds example { "card" { "type" "idcard", "subtype" "employees", "data" [ { "refid" "identitycard-bpo1r3e5-3313-0991-z404-sq12994414u8", "createdat" 1658385817000, "updatedat" 1658385817000, "language" "en", "attributes" { "title" "employee id card", "holdername" "kim samsung", "secondholdername" " samsung ", "organization" "digital wallet, mx", "position" "professional", "identifier" "2306070003", "idphoto" "{base64 encoded image data}", "idphoto format" "jpeg", "document" "{base64 encoded pdf data}", "document format" "pdf", "issuedate" "1658385817000", "expiry" "1765855665000", "logoimage" "https // /logo png", "providername" "samsung electronics", "extrainfo" "{\"count\" 1,\"info\" [{\"title\" \"shortcode\",\"content\" [\"404457\"]}]}", "noticedesc" "{\"count\" 2,\"info\" [{\"title\" \"notice1\",\"content\" [\"description1\",\"description2\"]},{\"title\" \"notice2\",\"content\" [\"description1\",\"description2\"]}]}", "csinfo" "{\"call\" \"555 123-4567\", \"email\" \"cs@email com\", \"website\" \"https //homepage com/cs\"}", "applinkname" "samsung electronics", "applinklogo" "https // /applinklogo png", "applinkdata" "https //www applinkorweblink com", "coverimage" "https // /card/cover png", "bgimage" "https // /card/background png", "fontcolor" "dark", "barcode value" "5728306720836720763017601", "barcode serialtype" "qrcode", "barcode ptformat" "qrcode", "barcode ptsubformat" "qr_code", "barcode interval" "300000", "authentication" "samsung@samsung com", "provision data" "{\"appkey\" \"abcdefaei;fadaf=\",\"telno\" \"01012345678\",\"provider\" \"sec\",\"id\" \"0000000000000000\",\"authkey\" \"a3b7fgj0ea\"}" }, "localization" [ { "language" "ko", "attributes" { "title" "사원증", "holdername" "김삼성", "secondholdername" "kim samsung", "providername" "삼성전자" } } ] } ] } } pay as you go 'pay as you go' card supports a system that pays just before using the cost for the service wallet card type wallet card subtype payasyougo evcharges, others type value description attributes {fields} 1 title string 32 required main title of cardse g , samsung charge card 2 subtitle1 string 32 optional the auxiliary field which displays supporting information 3 logoimage string 256 optional logo image url to be displayed in the card item the file size must not be greater than 256 kb 4 logoimage darkurl string 256 optional logo image url in dark mode the file size should not exceed 256 kb* if this value does not exist, logoimage will be substituted 5 logoimage lighturl string 256 optional logo image url in light mode the file size must not be greater than 256 kb * if this value does not exist, logoimage will be substituted 6 providername string 32 optional content provider name 7 holdername string 64 optional name of card holders 8 preventcaptureyn string 1 optional flag whether this wallet card view prevents screen capture either ‘y’ or ‘n’, the default value is ‘n’ 9 startdate long 13 optional start date display start date epoch timestamp in milliseconds 10 enddate long 13 optional end date display end date epoch timestamp in milliseconds 11 locations string 1024 optional list of locations where the card can be used * see location format 12 noticedesc string 5000 required text of the benefits using data in json format converted to escape string* see additional information information format 13 csinfo string 512 optional providers’ customer service information using data in json format converted to escape string * allowed items call, email, website, youtube, instagram, privacynotice, or termsandcondition* see the example below 14 applinklogo string 256 required app link image url the file size must not be greater than 256 kb 15 applinkname string 32 required app link name 16 applinkdata string 256 required information about the partner app link 17 bgimage string 256 optional url for card art background image 18 bgcolor string 8 optional color of the card art e g , #00ffff 19 fontcolor string 8 optional color of the font on the card art supported colors are white or black #000000 or #ffffff 20 blinkcolor string 8 optional color of the blinking effect which indicates that a card cannot be captured in the indicator area e g , #00ffff 21 barcode value string 4096 conditional barcode data, serial number * required if serialtype isn’t 'none' 22 barcode serialtype string 32 required presentation type barcode/qr/serial/none * see barcode format 23 barcode ptformat string 32 conditional presentation format * see barcode format* required if serialtype isn’t 'none' 24 barcode ptsubformat string 32 conditional 25 barcode pin string 16 optional pin to show with a barcode 26 identifier string 64 optional unique id value such as a membership number 27 grade string 32 optional grade value 28 authentication string 64 optional authentication data which meets choose options * see authentication for details 29 provision data string 512 optional elements to complete provisioning* see provisioning for details 30 transactions string 4096 optional transaction history * long content is allowed * see transactions format 31 summaryurl string 256 optional webpage url that show details, such as transactions example { "card" { "type" "payasyougo", "subtype" "evcharges", "data" [ { "refid" "b3fdc982-28c9-47a3-b02f-d484779698a7", "createdat" 1672574400000, "updatedat" 1672574400000, "language" "en", "attributes" { "title" "ev charge card", "logoimage" "https //gpp walletsvc samsung com/mcs/images/contents/wallet_intro_logo png", "logoimage darkurl" "https //gpp walletsvc samsung com/mcs/images/contents/wallet_intro_logo png", "providername" "ev-samsung", "holdername" "ms jane doe", "preventcaptureyn" "y", "enddate" 1772574400000, "noticedesc" "{\"count\" 2,\"info\" [{\"title\" \"포인트 적립\",\"content\" [\"결제금액 1000원당 포인트가 적립됩니다 \"]},{\"title\" \"포인트 사용방법\",\"content\" [\"적립하신 포인트의 유효기간은 발생일로부터 5년입니다 \",\"유효기간이 지난 포인트는 소멸됩니다 \"]}]}", "csinfo" " {\"call\" \"0000-0000\",\"website\" \"https //www samsungwallet com/cs/\",\"instagram\" \"https //www instagram com/samsungwallet\",\"youtube\" \"https //www youtube com/@samsungwallet\",\"privacynotice\" \"https //privacy samsungwallet com/\",\"termsandcondition\" \"https //www samsungwallet com/tnc\" }", "applinklogo" "https //play-lh googleusercontent com/znfa1roz7hpv9j-jiacbjmjudl2x-fnuwte0oyvbbcwvf5vpzoqqikbxgk7d-aptvag=w240-h480-rw", "applinkname" "ev charge link", "applinkdata" "https //www samsungev com/", "bgcolor" "#0a1a4f", "fontcolor" "#ffffff", "blinkcolor" "#00ffff", "barcode value" "1234000067890000", "barcode serialtype" "qrcode", "barcode ptformat" "qrcodeserial", "barcode ptsubformat" "qr_code", "barcode pin" "1234", "identifier" "ev-001", "grade" "prime", "authentication" "sdaiwegjhewoghewoihgewo", "provision data" "asd2hfih9gwejdahgi4uaewhgeo6whgo12ewhgoewahg1iawpriuq7hg5wel", "transactions" "{\"transactions\" [{\"date\" \"2023-09-10 12 00 00\",\"description\" \"ev-samsung suwon\"},{\"date\" \"2023-09-20 18 00 00\",\"description\" \"ev-samsung gangnam\"}]}" } } ] } } generic card 'generic card' is defined for registering various forms of cards that aren't defined as other types partners can customize the items on the generic card to display by connecting them with card data wallet card type wallet card subtype generic others type value description attributes {fields} 1 title string 32 required main title 2 subtitle string 32 optional the auxiliary field which displays supporting information 3 providername string 32 required provider name 4 eventid string 32 optional event identifier 5 groupingid string 32 optional identifier used to group related cards 6 startdate long 13 required start date display start date epoch timestamp in milliseconds 7 startdate relativenotitime string 4 optional the relative time from startdate in minutes to provide a notification to the usere g , 5, 10, 15, 30, 60, and up to 2880 8 enddate long 13 optional end date display end date epoch timestamp in milliseconds 9 enddate relativenotitime string 4 optional the relative time from enddate in minutes to provide a notification to the usere g , 5, 10, 15, 30, 60, and up to 2880 10 logoimage string 256 optional logo image url to be displayed in card item the file size should not exceed 256 kb 11 logoimage darkurl string 256 optional logo image url in dark mode the file size should not exceed 256 kb* if this value does not exist, logoimage will be substituted 12 logoimage lighturl string 256 optional logo image url in light modethe file size should not exceed 256 kb* if this value does not exist, logoimage will be substituted 13 bgimage string 256 optional card background image urlthe file size should not exceed 512 kbthe recommended size for image resources is 888 x 555 px 14 text{i} string 64 optional text item i 1~12 15 image1 string 128k optional image itemuse only type 3 16 image1 lighturl string 256 optional image item in light mode 17 image1 darkurl string 256 optional image item in dark mode 18 image1 status string 16 optional image item status 19 serial{i} value string 4096 optional actual data that is delivered when the barcode/qr code is scanned i 1~2 20 serial{i} serialtype string 32 optional presentation typee g , serialnumber, barcode, * see barcode format 21 serial{i} ptformat string 32 optional presentation formate g , barcode, qrcode, serial, * see barcode format 22 serial{i} ptsubformat string 32 optional presentation sub-formate g , code_128, qr_code, * see barcode format 23 serial{i} errorcorrectionlevel string 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 24 noticedesc string 1024 required notice description * long content is allowed * see additional information format 25 csinfo string 512 optional providers’ customer service information using data in json format converted to escape string* allowed items calls, emails, or websites 26 privacymodeyn string 1 optional whether or not to require user authentication when using the cardeither ‘y’ or ‘n’* default ‘n’ 27 bgcolor string 8 optional color of the card art e g , #00ffff 28 fontcolor string 8 optional color of the font on the card art acceptable values dark, light 29 nonetworksupportyn string 1 optional sets whether to support to open the wallet card under 'no network' status either 'y' or 'n'* default 'n' 30 applinklogo string 256 required app link image url the file size should not exceed 256 kb 31 applinkname string 32 required app link name 32 applinkdata string 256 required information about the partner app link 33 locations string 1024 optional list of locations where the card can be used * see location format example { "card" { "type" "generic", "subtype" "others", "data" [ { "createdat" 1661745824345, "updatedat" 1661745824345, "language" "en", "refid" "refid-012345", "attributes" { "title" "samsung generic card", "subtitle" "personal members", "providername" "samsung", "startdate" 1661751274000, "startdate utcoffset" "utc+9", "enddate" 1761778000000, "enddate utcoffset" "utc+9", "enddate relativenotitime" "1440", "text1" "13047623", "text2" "silver", "text3" "suwon station branch", "text4" "031 000-1235", "image1" "https //www samsung com/images/image1 png", "image1 darkurl" "https //www samsung com/images/dark png", "image1 lighturl" "https //www samsung com/images/light png", "serial1 value" ">1180mm2241b7c 0000000000000298060000000000 0 090870907 ", "serial1 serialtype" "qrcode", "serial1 ptformat" "qrcode", "serial1 ptsubformat" "qr_code", "bgcolor" "#ff5000", "fontcolor" "dark", "noticedesc" "{\"count\" 2,\"info\" [{\"title\" \"notice1\",\"content\" [\"description1\",\"description2\"]},{\"title\" \"notice2\",\"content\" [\"description1\",\"description2\"]}]}", "csinfo" "{\"calls\" [{\"key\" \"emergency\",\"value\" \"82 123-4567\"},{\"key\" \"customer service\",\"value\" \"82 123-9876\"}],\"emails\" [{\"key\" \"cs team\",\"value\" \"cs@atwsample com\"}],\"websites\" [{\"key\" \"faq\",\"value\" \"https //atwhomepage com/faq\"},{\"key\" \"support\",\"value\" \"https //atwhomepage com/support\"}]}", "applinkdata" "https //www samsung com/", "applinklogo" "https //www samsung com/logo png", "applinkname" "samsung" }, "localization" [ { "language" "ko", "attributes" { "title" "삼성 제네릭 카드", "subtitle" "개인 멤버스", "providername" "삼성", "text2" "실버 등급", "text3" "수원역점" } } ] } ] } }
Learn Developers Podcast
docreservation system or students can access the campus outside of those class times via just the online reservation system so they could come on campus and obviously limited numbers due to covid but following those cdc guidelines, they could still access and utilize the audio lab or the photo studio or the fashion lab and get that, i guess, hands on piece sure, in addition to what they're learning in a remote format tony morelan 11 34 yeah so i will say i was very impressed with how quickly you guys pivoted when covid hit i mean, it seemed like it was within just a matter of days that, that we all had to figure out, okay, how are we? how do we can, you know, change our direction so that we can still, you know, help these students? so i was really impressed with how quickly you guys did pivot that, amy lee 11 57 you know, that was something that we really kind of all pulled together on so, you know, prior to initial lockdowns last year, students attended courses just on ground and of course, the majority of our employees were based at campuses so as with other higher education institutions in just a matter of weeks, you're right, it, it really was weeks that we were able to shift our entire operation to this virtual format and ai virtual learning was designed to really provide students with as much flexibility in their learning and as much content and engagement as we could possibly, you know, get in there for them to be exposed to tony morelan 12 41 yeah, definitely so i'd like to jump right into the collaboration between samsung and the art institutes yeah, because that's when i first met you when i came out to miami to help teach a workshop can you tell me how that association first began? amy lee 12 58 so you're exactly right it began with samsung reaching out to the art institutes and saying, hey, we have these really great game developer and watch design developer workshops and could we bring that to your students? and we of course, said, yes, i'd love to expose them to industry that's, that's what i live for, is bringing sort of real-world application into their classroom environment so we started off with workshops we had workshops in miami, and we had workshops in atlanta, and we were working on a workshop for houston and dallas and covid hit but in those workshops, gosh, i want to say we had over 220 students between both of those locations yeah you know, take that sort of immersive, you know, one day one-and-a-half-day workshop, and they loved it oh, yeah tony morelan 13 53 so that was where, like i mentioned that when i first met you and all the faculty at the art institute, when it came out to miami, i helped teach a themes ui, designing class to the students and it honestly was a great time seeing what the students did i think one of the best stories that came out of that was that we had students from all different departments at your campus there, right so we had students that were there in design, or they were doing culinary or they were doing fashion and we held a little contest at the end of the day, we were going to select which team designed what we thought was the most compelling phone ui theme and surprisingly, it was the fashion yeah, the fashion design group who these people are working with textiles and fabrics but it was neat to see how they took that sort of concept and brought it into a you know, a digital phone ui theme amy lee 14 49 but that's part of fashion right? so wearables is something that we talk about in their curriculum yeah and is it you know, and an athletic sort of fitness wearable, is it a fashion wearable? is it technology wearables? and? and how are they going to incorporate that and design for it? for a wide variety of uses? tony morelan 15 11 yeah, definitely and i think also, another highlight for me was i was given the opportunity to review a lot of the students personal portfolios so this is just their portfolio of work, you know, whether they were assignments that they've done, or some of them already had been working as graphic designers, and they were showing me some of their projects from the past and, you know, to be able to sit down with those students and share a bit of my knowledge, that was a really nice tie that was, it was a great moment for me amy lee 15 38 yeah, we have a lot of great partnerships and industry pros who are on campus all the time, sort of imparting their knowledge and allowing the students the opportunity to share their work, which is what really excites them and keeps their sort of passion and flames, you know, fueled so that they can see where they're going to progress once they're, you know, done with school and what they're going to be able to do in the industry tony morelan 16 00 and i think what we liked the most was that, you know, we were given an opportunity to sit down with these students at the beginning of their career and show them about how easy it is to develop for samsung i mean, there's this sort of stigma that, you know, i have to learn how to code by the tools that we were showing at that time, for phone ui designing, and also for watch face designing students didn't have to know how to code so it was easy for us to come in to a group of students that were taking classes in culinary in fashion design and other areas of art, that maybe are not developers that know how to code, right, but we're giving them an opportunity to actually create for samsung, amy lee 16 41 i agree i think one of those interesting things you mentioned culinary, i remember talking to the culinary student, he was like, i want to design a watch for a chef, you know, what are my times for? you know, my eggs are my deep fryer and can i build that into this watch design so that i can, you know, use it? tony morelan 16 58 that's great in the kitchen it was great yeah so we had so much success at those workshops that we decided to offer an actual course, correct this would be a samsung, this was watch face designing and as you'd mentioned, we were in the middle of just about ready to launch this and then covid hit 17 15 and lockdown tony morelan 17 16 yes and we all had to figure out how are we going to take this in person? i think it was a six-week course at the time, right? i worked pretty closely with some of your faculty there on how we could turn this into an online course and it was actually very successful i was really impressed with the students in their eagerness to learn this new tool and take that in the actually designed some pretty nice-looking watch faces amy lee 17 42 yeah, you're right so the workshops evolved into the course and, you know, working with you and other members at samsung, we had faculty we had some of our dean's, we had, you know, programmatic experts to really take what samsung had in these half day workshops to expand it into what does a student really need to do to flesh out a full, you know, credit bearing course within our curriculum that would, you know, benefit them and expose them to technology and industry in a more real world application so, we pivoted very quickly again, it was going to be on ground it went to this virtual learning format we stretched it to 11 weeks in the end yes, i was just looking at the calendar, tony and we're coming up on the one-year mark of offering this class and we have had over 128 students i think is when i last looked at it wow come through and take that class tony morelan 18 46 that's amazing and it's still a class that is being offered criminalists amy lee 18 48 yeah, it's on the schedule that tony morelan 18 50 is that is great so we've talked about ui designing for phones we've talked about watch face designing to understand there's actually another area that my counterpart diego yeah, another evangelists that he helped teach game development amy lee 19 03 he actually did last quarter on the quarter system so last quarter, diego partnered with our team production, one into class for game art and design and he was in that class, we had our first instance, i think we had 18 students and he really spent so much quality time with them, talking about the samsung platform and how they could get their indie games, potentially published the process behind there and then the students got to ask their questions, you know, so they had, you know, diego as the expert, and he offered to again, as you did look at their work, give them feedback, and really kind of fulfill that publishing fire of how they're going to go about that and get that game noticed tony morelan 19 52 you know, a lot of the students when they're starting out, they haven't had that opportunity to have real world game development experience what we were able to as a collaboration with samsung, where diego was able to give them that insight on what it is like to actually develop a game in the industry, amy lee 20 09 right, right so you're right, they kind of work in a bit of a vacuum and, you know, they look at different places where they can publish and, and how they can, you know, go about getting their game notice but, again, having this partnership with samsung has been so valuable for them because they could learn a little bit more, i guess about tips and tricks and sort of an inroad, and getting into the galaxy store for potential publishing tony morelan 20 36 it wasn't just about creating the game, they actually had to do more than that, which was put together their business plan and also talk about how are they going to promote this game? amy lee 20 45 correct? who is their target audience? what age bracket are they going after? where are they going to publish it? all of those types of things? what's their logo? what's their, you know, font choice? what are their colors? you know, how does it play on different platforms? is it you know, a phone? is it for console? you know, all those different things? tony morelan 21 04 yeah, that's great it's all part of marketing your brand so diego also participated in your ai live? 21 12 yes tony morelan 21 13 so tell us a little bit about what is ai live amy lee 21 16 so ai live again, was kind of born out of the pandemic, to be honest with you, but a way for us to continue to connect industry professionals, even highlight faculty and alumni of the art institutes to our students so in the past, we all had guest lectures on campus with pandemic, we couldn't do that so ai live was born, you can check out ai live on our youtube channel and see all of those recordings, and diego did participate so he was an industry professional and talked about samsung, and the partnership and the developer program and game publishing and he's one of our more popular views actually on the channel tony morelan 22 05 i want to kind of go back a little bit also and just touch a little bit more on covid you know, financially, it's really hit a lot of people very hard because a lot of people have been out of work to covid does the art institute, do they have any sort of financial aid or any way that they can assist with students in tuition? amy lee 22 21 sure so at the art institutes financial aid is available to those who qualify, we are always here to help students understand everything they need to know, to help fund their creative education we're always looking for ways to make education more affordable so we offer full and partial scholarships to eligible new and continuing students and one of our internal institutional grants is called the art grant and the art grant gives students the chance to earn tuition of up to $17,340 for a bachelor's degree, which is an average of about 18% of tuition, and up to $5,845, which about 13% for an associate's degree program, of course, we offer all the traditional va funds for veterans all the title for programs and those types of things tony morelan 23 17 wow, that is that is really nice to hear what are you guys doing in the way of recruiting new students? sure so amy lee 23 22 we have an admissions team who helps students in each step of the process, and there's a four-step process to getting started so first is the interview and that's going to be where the students would meet with their enrollment counselor during the interview process, they're going to share stories of the art institutes mission, how we help creative individuals launch their careers and do what they love talk about range of services provided and that sort of thing next step would be to apply and we're serious about creative education and students applications tell us that they're serious, too so once accepted, we work with the student to make sure that they're on track to start classes third step is financial aid and scholarships where a financially aids rep would help the students explore their options, scholarships to help fund step four would be orientation and that's really the final step so new student orientation and my team plays a big part in that but orientation is really that chance to explore the campus, which takes place digitally right now we do a virtual orientation, but it's the students opportunity to learn everything from policy and procedures to time management to how to log into their classes, meet with their academic directors to make sure that they're well prepared to start school and know what to expect and how to move very quickly in our very fast paced, you know, environment of how we're learning today tony morelan 24 57 yeah, that's great to be able to put that information out there for the students to really get a good understanding of what it is that they're about to embark on absolutely once a student has completed their degree at the art institute, what is it that you guys can do with help with placing them into the workforce? amy lee 25 13 sure so again, that falls under mentorship and career readiness, which diego help navigate our students within our team of mentors so our department student, mentor, ship and career readiness partners with our students, as they, you know, select courses to register up through that career transition piece, they can seek guidance from us in tending a myriad of workshops so over the course of a quarter, we host workshops on resume writing, interview techniques, salary negotiation, if they, you know, really want to do freelance or be an entrepreneur, you know, pointing them in the right direction for business planning resources, or connecting them with a copyright or contract attorney to do a workshop on intellectual property, and, you know, all of those resources and building blocks that they're going to need to be successful after, after school, we have a job board, of course, we have a lot of self-directed resources, we have on demand resources we have in person resources, all of those wonderful things to connect them with, i can say, i don't know, on the job board, i probably approve 20 to 25 jobs a day really have employers reaching out, you know, to the art institutes to say, hey, i want to hire a graduate of yours, or where can i post this job? sure tony morelan 26 39 that's great so you really do have a nice program when it comes to career readiness amy lee 26 42 we try we really do try to help, you know, set them up tony morelan 26 45 yeah so can you tell me about some of the major accomplishments that your graduates have gone on to do after they have graduated from the art institute? amy lee 26 53 i would say, you know, again, check out our ai live series on youtube, you can actually hear from them firsthand but some of the more recent interviews from some of our alumni, and some of the upcoming ones that we'll be launching by the end of march, you can check out joshua leonard he is a 2018 graduate from the art institute of atlanta, and he is a character animator for netflix wow and we're very proud of him and all of his accomplishments he's one of our most recent ones you can look for upcoming on ai live simone qi she's a 2012 graduate from the art institute of dallas she does branding and advertising for a lot of fortune 500 companies, advertising now she's opened up her own creative studio in dallas, and then culinary jamika pessoa she was on the next food network star in 2009 she's a weekly contributor on the dr oz new series the dish on oz, and she's a 2005 culinary graduate from our atlanta campus wow so tony morelan 28 04 you really do have some, some notable alumni, you amy lee 28 07 we're very proud of them we're proud of all of them but you know, if you want to hear some of the highlights, you know, those are some good ones to check out tony morelan 28 14 oh, definitely well, so can you talk about future plans, any upcoming announcements with the school? amy lee 28 20 yeah miami, international university of art and design, global campus, will most likely officially i'll do some air quotes their official launch in its first full academic year, which would be 2021-2022, which would commence in the fall could be sooner but that would be an online education platform so where we previously spoke about, you know, virtual and hybrid and, you know, we're not totally online, miami, international university of art and design global campus would be an online modality for education oh, wow tony morelan 28 59 so this obviously came out of the what, how covid has impacted your school and where you had to pivot? you now realize, you know what, we're going to offer this just permanently as an ongoing right offering that is that's great amy lee 29 11 definitely a need tony morelan 29 13 and yeah, definitely so what's the best way for people to learn about the art institutes amy lee 29 18 so i would go to the website, you know, that's, that's where anyone interested in our programs can visit us online and it's www dot art institutes with an s edu you can also check out some of our virtual open house events, and upcoming virtual open house events may the eighth of 2021, from 11am, eastern 10am central, and you know, those are all great ways to interact with our departments, our faculty, hear stories, see resources, and really learn more about the art institutes tony morelan 29 54 that's excellent so when you're not working and helping these students plan their careers what is it that you do for fun? amy lee 30 02 you know, my husband and i love to take the motorcycle out on the weekends and the texas hill country so go for long rides until i can't sit on the back of that bike anymore love to be out with my dogs, my fur babies i'm an avid artist at heart my undergraduate degree is in fine arts so i paint quite a bit, refinishing some piece of furniture or painting something so that's what tony morelan 30 31 i do and i will say every time that i've met you, you've had a different hairstyle a different hairstyle i mean, right now you have this beautiful slosh of pink coming right through your bangs and i can tell you are a very artsy person, a perfect person to represent the art institutes amy lee 30 50 well, thank you i do change my hair quite frequently i think i've been every color of the rainbow tony morelan 30 55 that's great well, amy, thank you very much for being on the podcast i really appreciate it amy lee 30 59 thank you for having me tony was a pleasure closing 31 02 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 checkout developer samsung com today and start your journey with samsung the pow! podcast is brought to you by the samsung developer program and produced by tony morelan
Distribute Galaxy Store
docapp distribution guide for the benefit of its developers and customers, samsung ensures the applications apps meet high standards of quality samsung, at its sole discretion and without the consent of any other parties, reserves the right to publish, withhold publication, and remove from publication in the samsung galaxy store all applications apps submitted for publication and being published if an app meets all samsung publication policy requirements, but they do not comply with the local laws or customs of one or more publication countries in the app registration, those countries may be removed from the app’s publication while the app is published in galaxy store, if users find app content or functions to be objectionable to users, to no longer comply with local laws of publication countries, or to no longer comply with samsung publication policy, samsung can stop app publication all apps must meet the requirements in order to pass publication review for apps to be available in galaxy store for download, and have paid app and in-app item sales supported 1 performance this section relates to app operations 1 1 functionality 1 1 1 app installation, launch, termination, and uninstallation must succeed without errors 1 1 2 app features must not crash or cause functional problems 1 1 3 apps must not include hidden features 1 1 4 trial or beta version binaries must not be submitted 1 1 5 for apps that require user login, login info such as user id and password for a user account to be used to test the app must be provided during app registration 1 1 6 apps must not include malware or viruses 1 1 7 apps must not generate icon shortcuts or bundles 1 1 8 apps must not initiate or support automatic updates 1 1 9 apps must not interfere with the behavior of other apps 1 1 10 samsung in-app purchase iap is recommended to sell in-app products such as items and subscriptions for your safety and convenience 1 2 usability 1 2 1 apps must be valuable, entertaining, unique, or informative 1 2 2 apps must be unique in features and design multiple similar apps must not be submitted 1 2 3 apps must not contain an excessive number of advertisements, web clippings, website links, or videos that degrade the user experience 1 2 4 app graphics must be visible 1 2 5 app text must be readable and not be truncated or distorted 1 2 6 app screens must fill the device display screen 1 2 7 paid apps must not have unreasonably high prices 1 2 8 apps that offer app download inside the app are not allowed 1 3 metadata notemetadata refers to information about an app such as title, description, tags, screenshot and seller name 1 3 1 app metadata must be appropriate for users of all ages 1 3 2 if app registration specifies two or more publication countries, app metadata must support english as the default language 1 3 3 app registration preview images, screenshot images, and descriptions must accurately show and describe app functionality 1 3 4 if an app provides in-app item purchases or advertisements, this must be accurately shown and described in the app registration preview images, screenshot images, and descriptions 1 3 5 app metadata must not include irrelevant, misleading, or fraudulent keywords 1 3 6 app registration must specify the age rating and categories that are appropriate for the app noteif app registration does not specify them, samsung can change them appropriately 1 3 7 metadata must not promote other app stores, or mobile platforms 1 3 8 urls must not cause functional problems and the web resources of urls must not contain content that violates app distribution guide requirements including, but not limited to, malware and inappropriate or no content 1 4 hardware compatibility 1 4 1 apps must not make sounds in silent mode 1 4 2 apps must not change default settings of the user device 1 4 3 apps must not restart the user device 1 4 4 apps must not cause problems for embedded device features including, but not limited to, bluetooth, g-sensor, wi-fi, camera, call, volume/hold key, alarm, and sms/mms 1 4 5 apps must not cause problems for hardware and system events 1 4 6 apps must not crash when the user device is rotated and when device accessories including, but not limited to, earphones are plugged into or unplugged from the device 1 4 7 apps must not consume excessive battery current, generate excessive heat, or rapidly drain the user device battery 2 app content and behavior this section relates to app material and actions noteif app content violates local laws or customs, samsung may suspend app publication or remove countries from app publication 2 1 sexual content 2 1 1 apps must not visually or audibly present or encourage overt sexual concepts or content including, but not limited to, explicit nudity, exposed male or female genitalia, pornography, pedophilia, bestiality, sexually explicit behavior, and sexually suggestive poses 2 1 2 apps must not visually or audibly present or encourage exploitative sexual behavior including, but not limited to, sexual abuse, sexual assault, and bestiality 2 1 3 apps must not provide a method to access websites that have a sexual emphasis including, but not limited to, adult friend finder and dating websites 2 2 violence 2 2 1 apps must not visually or audibly present or encourage murder, suicide, torture, or abuse 2 2 2 apps must not visually or audibly present or encourage violence or criminal behavior that could instigate a crime 2 2 3 apps must not visually or audibly present or encourage violent threats toward people or animals 2 2 4 apps must not visually or audibly present or encourage recklessly gruesome content including, but not limited to, excessive bleeding 2 2 5 apps must not visually or audibly present or encourage use in the real world of weapons, bombs, terrorist actions, or other dangerous objects 2 2 6 apps must not contain content that could lead to self-harm, choking, serious injury, or death 2 3 alcohol, tobacco, and drugs 2 3 1 apps must not visually or audibly present or encourage the illegal use of alcohol, tobacco including electronic cigarettes , or drugs 2 3 2 apps must not visually or audibly present or encourage the sale of alcohol, tobacco including electronic cigarettes , or drugs to minors 2 3 3 apps must not encourage excessive consumption of or make unnecessary references to alcohol, tobacco, or drugs 2 3 4 apps that present medical information to users must notify users that the medical information could be inaccurate 2 3 5 app content must not contain unauthorized drugs, regulated drugs, dietary supplements, or products with names or designs that can cause user confusion 2 4 defamation and vulgarity 2 4 1 apps must not visually or audibly present content that could defame by slander or libel individual persons or groups of people based on race, gender, sexual preference or identity, ethnicity, nationality, disability, religion, political identity, or ideology 2 4 2 apps must not visually or audibly present excessively unpleasant, repellent, obscene, or vulgar language or expressions 2 4 3 apps must not visually or audibly present offensive, discriminatory, or inflammatory content about specific religious, social, or political parties, groups, or concepts 2 4 4 apps must not visually or audibly present content that reasonable public consensus may find to be improper or inappropriate 2 4 5 apps must meet all applicable censorship requirements of the countries the apps are published in including, but not limited to, political, social, conflict, and security censorship 2 5 games and gambling 2 5 1 apps must not offer or provide users with real money, electronic money, or prizes that have any monetary value including, but not limited to, gift cards and household appliances 2 5 2 apps must not promote or enable gambling including, but not limited to, lotteries, casino activities, sweepstakes, and sports betting 2 5 3 for game apps with an 19+ age restriction that are published in south korea, the apps must be granted game rating and administration committee grac rating certificate noteon a case-by-case basis and subject to applicable laws and other criteria, local samsung subsidiaries may approve apps 2 6 user-generated content 2 6 1 apps with user-generated content must have a mechanism to filter restricted content from the app 2 6 2 apps with user-generated content must provide measures to resolve intellectual property infringement 2 6 3 apps with user-generated content must provide users with a method and instructions to report to the app’s registering person or entity issues of restricted content or intellectual property infringement 2 7 advertisements 2 7 1 ads must be clearly identified as ads and must not harm app or device usability 2 7 2 ads must provide close and skip buttons and make them clearly visible 2 7 3 the content of ads must be appropriate for the app’s age rating 2 7 4 apps must not contain or present ads that have the following types of content • violence toward or abuse of humans or animals • sexual content including, but not limited to, pornography, pedophilia, and bestiality • websites that have a sexual emphasis or adult toys, videos, or products including, but not limited to, adult friend finder and dating websites • ads in kids category apps that contain content that is not appropriate for children • obscene, vulgar, or inappropriate language • defamatory, libelous, slanderous, or unlawful content • promotion of or unnecessary references to alcohol, tobacco including electronic cigarettes , and drugs • offensive references or discrimination towards individual persons or groups of people based on race, gender, sexual preference or identity, ethnicity, nationality, disability, religion, political identity, or ideology • overtly political communication • illegal activities, services, or substances • description, depiction, or encouragement of illegal substances • illegal, false, or deceptive investment or money-making advice, promotions, or opportunities • system notifications, push notifications, or similar notifications without user consent • pharmaceutical products that are not certified in the countries that the apps are published in • content that reasonable public consensus may find to be improper or inappropriate 3 legal this section relates to lawful matters in addition to the requirements below, apps must comply with the local laws of the country of sale be sure to check each country’s local laws 3 1 privacy 3 1 1 apps that access, collect, use, transmit, or share user data including, but not limited to, user location, calendar, and sms/mms information must comply with all applicable local laws, the european union’s general data protection regulation gdpr and the samsung service terms and conditions 3 1 2 apps that access, collect, use, transmit, or share user data must display a user data privacy policy in their apps and provide the url of the policy during app registration in seller portal 3 1 3 the app privacy policy must include the following information • collected user data items and types • purposes of using user data • list of third-parties with which the app shares user data and shared data types • user data items and data types that the app shares with third-parties • user data retention period and user data deletion for example, upon account deletion or app uninstallation • method of notifying users when the privacy policy is revised • user data-related privileges such as reading, revising, or deleting data that can be requested by users 3 1 4 when the user data privacy policy is revised, users must be notified when the privacy policy url is changed, the privacy policy url in the app registration must be updated 3 1 5 apps must not access, collect, use, transmit, or share user data without legitimate user consent in accordance with local laws 3 1 6 apps must not require that the user grant more permissions or provide more personal information than the minimum necessary for the app to successfully support its features 3 1 7 apps must not display advertisements or push messages based on user data without first getting user consent to do so 3 1 8 apps must not initiate or support security warnings or malicious means that try to get user data 3 2 intellectual property copyright, trademark etc 3 2 1 apps must not copy aspects of any app published in galaxy store 3 2 2 apps must not support the download of any other app by a direct method from inside the app for example, through an apk 3 2 3 apps must not display, depict, or use any samsung identifiers including, but not limited to, samsung brand names, logos, trademarks, and service marks 3 2 4 apps must not contain any reference that suggests that the app or its registering person or entity has a relationship with samsung or misleads users about any samsung device 3 2 5 apps that include free and open source software foss must comply with applicable open source software license terms and conditions 3 2 6 apps must not include, present, or use any material whose use is protected by the laws of any country that the app is published in including, but not limited to, copyrighted, trademarked, and patented material without first getting the permission of the rightful owner, maintain evidence of the permission, and must present a copy of the permission to samsung app content must not contain protected or slightly modified material without the owner’s consent, including, but not limited to • business names, trademarks, service marks, colors, fonts, or logos that can mislead users • watch brand names or logos, styles, or inspired designs • sports club names or logos, or official colors or design • names, images, and other content protected by intellectual property rights and publicity rights for example, from movies, tv, and game guides • fan-made content • protected logos or brand names of products including, but not limited to automobiles, motorcycles, handbags, and cameras • images of products including, but not limited to, automobiles, motorcycles, cameras, and handbags when the product brand can be identified • images of private buildings not visible from a public space, and copyrighted images of any building or structure for example, st peter’s basilica, illuminated eiffel tower, and the empire state building • works, names, photos, likenesses, or signatures of any person or celebrity generally, while they are living or less than 70 years after their death 3 2 7 for apps that include, present, or use material protected by the laws of the countries that the app is published in, or support a method to share or download material not owned by the person or entity who registered the app, the person or entity must first get the permission of the rightful owner, maintain evidence of the permission, and must present a copy of the permission to samsung noteif you find protected material inappropriately inside a galaxy store app or inappropriately available via a galaxy store app, please directly contact the app seller to resolve the issue in the case that the seller cannot be reached, you can report the violation here 3 3 kids category 3 3 1 apps published in the kids category of galaxy store • must comply with applicable children’s privacy laws and statutes of the countries that the apps are published in including, but not limited to, the children’s online privacy protection act coppa and european union’s general data protection regulation gdpr • must be designed for children under 13 years of age • must not contain links to outside of the app 3 4 miscellaneous 3 4 1 apps must comply with all local laws of the countries that the apps are published in 3 4 2 apps must observe and comply with all legal requirements and local customs of the countries that the apps are published in 3 4 3 for apps published in south korea • apps must comply with the act on promotion of information and communications network utilization and information protection, and all other relevant republic of korea laws • app registration must specify the required and optional permissions and describe why and how they are used • in-app payments/purchases apps offering forms or methods of randomized virtual items for purchase, such as but not limited to loot boxes or loot crates, must disclose the odds of receiving those items to customers prior to purchase noteyou can download the guideline on the disclosure of probability information in game rating and administration committee grac 3 4 4 apps must not visually or audibly present or encourage any type of the following content • overtly political communication • illegal activities, services, or substances • illegal, false, or deceptive investment or money-making advice, promotions, or opportunities • pharmaceutical products that are not certified in the countries that the apps are published in
Develop Samsung Pay
docinitiate in-app payment the main classes and interfaces involved here are samsungpay– class for a merchant app to get samsung pay sdk information and the status of samsung pay on the device paymentmanager – class to provide payment/transaction functionality cardinfolistener – interface for requestcardinfo result callbacks from samsung wallet customsheettransactioninfolistener – interface for transaction success/failure callbacks from samsung wallet; payment information is provided with a success callback and must be used by the merchant app for processing the payment the flow pictured next captures the essential online payment api process between merchant apps integrated with the samsung pay sdk and samsung wallet and the merchant’s payment gateway pg reflected in the diagram above are the following operations check the ready status of samsung pay start the payment manager to establish the service binding and verify the merchant app get payment card information and the payment amount, including updates get/update the user’s billing and shipping addresses, including an updated payment amount if shipping charges will be incurred authenticate the user submit payment information to pg verify transaction success or failure token modes network vs gateway to complete the payment, the merchant’s designated payment gateway pg handles one of two types of tokens gateway tokens indirect or network tokens direct the samsung pay sdk supports both types the essential difference between the two types is who decrypts the token information network tokens require that the merchant app handles decryption of the token bundle or work with the pg to handle decryption, whereas gateway token decryption is handled by the pg via the samsung-pg interface server check with your pg to determine its specific requirements for payment processing regardless of the pg model employed, direct or indirect, the goal is to offer samsung pay as a secure payment method within your merchant app the most common use case involves the following general steps to make a purchase, the user selects to “buy” or got to checkout after adding items to a shopping cart now in checkout, the user selects a payment option; for example, either the merchant’s “standard” method or samsung pay upon selecting samsung pay, the user is presented with a payment sheet that allows for card selection and shipping address confirmation with the option to add/modify information for this order, whereupon the user * makes payment card selection from the list of enrolled cards * chooses to change or add the delivery address * enters required address information in the form presented and saves it * authenticates the payment method, amount, and delivery with a biometric verification fingerprint, iris… or pin checking registered/enrolled card information before displaying the samsung pay button, a partner app can query card brand information for the user’s currently enrolled payment cards in samsung wallet to determine if payment is supported with the enrolled card for example, if a merchant app accepts one card brand exclusively but the user has not registered any cards matching this brand in samsung wallet, the merchant app needs to determine whether or not to display the samsung pay button for this purchase checkout to query the card brand, use the requestcardinfo api method of the paymentmanager class the requestfilter is optional bundle data reserved for future use the merchant app does not need to set a value for it now however, before calling this method, cardinfolistener must be registered so its listener can provide the following events onresult - called when the samsung pay sdk returns card information from samsung wallet; returns information about enrolled cards or is empty if no card is registered onfailure - called when the query fails; for example, if sdk service in the samsung wallet app ends abnormally the following snippet shows how to retrieve the list of supported card brands from samsung pay val serviceid = "partner_app_service_id" val bundle = bundle bundle putstring samsungpay partner_service_type, spaysdk servicetype inapp_payment tostring val partnerinfo = partnerinfo serviceid, bundle val paymentmanager = paymentmanager context, partnerinfo paymentmanager requestcardinfo bundle , cardinfolistener // get card brand list //cardinfolistener is for listening requestcardinfo callback events val cardinfolistener cardinfolistener = object cardinfolistener { // this callback is received when the card information is received successfully override fun onresult cardresponse list<cardinfo> { var visacount = 0 var mccount = 0 var amexcount = 0 var dscount = 0 var brandstrings = "card info " var brand spaysdk brand? for i in cardresponse indices { brand = cardresponse[i] brand when brand { spaysdk brand americanexpress -> amexcount++ spaysdk brand mastercard -> mccount++ spaysdk brand visa -> visacount++ spaysdk brand discover -> dscount++ else -> { /* other card brands */ } } } brandstrings += " vi = $visacount, mc = $mccount, ax = $amexcount, ds = $dscount" log d tag, "cardinfolistener onresult $brandstrings" toast maketext context, "cardinfolistener onresult" + brandstrings, toast length_long show } /* * this callback is received when the card information cannot be retrieved * for example, when sdk service in the samsung wallet app dies abnormally */ override fun onfailure errorcode int, errordata bundle { //called when an error occurs during in-app cryptogram generation toast maketext context, "cardinfolistener onfailure " + errorcode, toast length_long show } } creating a transaction request upon successful initialization of the samsungpay class, the merchant app needs to create a transaction request with payment information noteas of sdk v2 0 00, the normal payment sheet is deprecated all merchant apps must now use the custom payment sheet, which offers more dynamic controls for tailoring the ui look and feel with additional customer order and payment data merchant app developers choosing to temporarily continue offering the normal sheet will need to configure their android manifest to reflect the pre-2 0 00 version of the sdk used to implement their app’s existing normal sheet, although this is not recommended in all cases, merchant app developers should update their apps with the latest version of the sdk as soon as possible to avoid timing out using an earlier version of the sdk when responding to samsung pay callbacks using the custom payment sheet to initiate a payment transaction with samsung pay’s custom payment sheet, your merchant app must populate the following mandatory fields in customsheetpaymentinfo merchant name - as it will appear in samsung pay’s payment sheet, as well as the user's card account statement amount - the constituent transaction properties currency, item price, shipping price, tax, total price which together determine the total amount the user is agreeing to pay the merchant cautionnot populating the mandatory fields throws an illegalargumentexception optionally, the following fields can be added to the payment information merchant id- can be used for the merchant’s own designated purpose at its discretion unless the merchant uses an indirect pg like stripe or braintree if an indirect pg is used, this field must be set to the merchant’s payment gateway id fetched from the samsung pay developers portal merchant id is mandatory if a merchant request mada token, this filed should be included in the payload order number - usually created by the merchant app via interaction with a pg this number is required for refunds and chargebacks in the case of visa cards, the value is mandatory the allowed characters are [a-z][a-z][0-9,-] and the length of the value can be up to 36 characters address - the user’s billing and/or shipping address see applying an addresscontrol for details allowed card brands - specifies card brands accepted by the merchant if no brand is specified, all brands are accepted by default if at least one brand is specified, all other card brands not specified are set to "card not supported’ on the payment sheet here’s the 'customsheetpaymentinfo' structure class customsheetpaymentinfo parcelable { private val version string? = null private val merchantid string? = null private val merchantname string? = null private val ordernumber string? = null private val addressinpaymentsheet addressinpaymentsheet = addressinpaymentsheet do_not_show private val allowedcardbrand list<spaysdk brand>? = null private val cardinfo cardinfo? = null private val iscardholdernamerequired = false private val isrecurring = false private val merchantcountrycode string? = null private val customsheet customsheet? = null private val extrapaymentinfo bundle? = null } your merchant app sends this customsheetpaymentinfo to samsung wallet via the applicable samsung pay sdk api methods upon successful user authentication in direct mode, samsung wallet returns the above "payment info" structure and a result string the result string is forwarded to the pg by your merchant app to complete the transaction it will vary based on the pg you’re using noteif you want to add any other information for any card brand, you can add them in the extrapaymentinfo bundle the following example demonstrates how to populate customsheet in the customsheetpaymentinfo class see sample merchant app using custom payment sheet below for example usage of each customsheet control /* * make user's transaction details * the merchant app should send customsheetpaymentinfo to samsung wallet via * the applicable samsung pay sdk api method for the operation being invoked */ private fun makecustomsheetpaymentinfo customsheetpaymentinfo { val brandlist = arraylist<spaysdk brand> // if the supported brand is not specified, all card brands in samsung wallet are // listed in the payment sheet brandlist add paymentmanager brand visa brandlist add paymentmanager brand mastercard brandlist add paymentmanager brand americanexpress /* * make the sheetcontrols you want and add them to custom sheet * place each control in sequence with amountboxcontrol listed last */ val customsheet = customsheet customsheet addcontrol makebillingaddresscontrol customsheet addcontrol makeshippingaddresscontrol customsheet addcontrol makeplaintextcontrol customsheet addcontrol makeshippingmethodspinnercontrol customsheet addcontrol makeamountcontrol val extrapaymentinfo = bundle /* * you can add transaction type for mada card brand * the supported values are purchase and preauthorization * if you don't set any value, the default value is purchase */ extrapaymentinfo putstring spaysdk extra_online_transaction_type, spaysdk transactiontype preauthorization tostring val customsheetpaymentinfo = customsheetpaymentinfo builder setmerchantid "123456" setmerchantname "sample merchant" // merchant requires billing address from samsung wallet and // sends the shipping address to samsung wallet // show both billing and shipping address on the payment sheet setaddressinpaymentsheet customsheetpaymentinfo addressinpaymentsheet need_billing_send_shipping setallowedcardbrands brandlist setcardholdernameenabled true setrecurringenabled false setcustomsheet customsheet setextrapaymentinfo extrapaymentinfo build return customsheetpaymentinfo } requesting payment with a custom payment sheet the startinapppaywithcustomsheet method of the paymentmanager class is applied to request payment using a custom payment sheet in samsung wallet the two methods are defined as follows startinapppaywithcustomsheet - initiates the payment request with a custom payment sheet the payment sheet persist for 5 minutes after the api is called if the time limit expires, the transaction fails updatesheet - must be called to update current payment sheet as of api level 1 5, a merchant app can update the custom sheet with a custom error message refer to updating sheet with custom error message when you call the startinapppaywithcustomsheet method, a custom payment sheet is displayed on the merchant app screen from it, the user can select a registered card for payment and change the billing and shipping addresses, as necessary the result is delivered to customsheettransactioninfolistener, which provides the following events onsuccess - called when samsung pay confirms payment it provides the customsheetpaymentinfo object and the paymentcredential json string customsheetpaymentinfo is used for the current transaction it contains amount, shippingaddress, merchantid, merchantname, ordernumber api methods exclusively available in the onsuccess callback comprise getpaymentcardlast4dpan – returns the last 4 digits of the user's digitized personal/primary identification number dpan getpaymentcardlast4fpan – returns the last 4 digits of the user's funding personal/primary identification number fpan getpaymentcardbrand – returns the brand of the card used for the transaction getpaymentcurrencycode – returns the iso currency code in which the transaction is valued getpaymentshippingaddress – returns the shipping/delivery address for the transaction getpaymentshippingmethod – returns the shipping method for the transaction for pgs using the direct model network tokens , the paymentcredential is a json object containing encrypted cryptogram which can be passed to the pg pgs using the indirect model gateway tokens like stripe, it is a json object containing reference card reference – a token id generated by the pg and status i e , authorized, pending, charged, or refunded refer to payment credential sample for details oncardinfoupdated - called when the user changes the payment card in this callback, updatesheet method must be called to update current payment sheet onfailure - called when the transaction fails; returns the error code and errordata bundle for the failure here’s how to call the startinapppaywithcustomsheet method of the paymentmanager class /* * customsheettransactioninfolistener is for listening callback events of in-app custom sheet payment * this is invoked when card is changed by the user on the custom payment sheet, * and also with the success or failure of online in-app payment */ private val transactionlistener = object customsheettransactioninfolistener { // this callback is received when the user changes card on the custom payment sheet in samsung pay override fun oncardinfoupdated selectedcardinfo cardinfo, customsheet customsheet { /* * called when the user changes card in samsung wallet * newly selected cardinfo is passed so merchant app can update transaction amount * based on different card if needed , */ val amountboxcontrol = customsheet getsheetcontrol amount_control_id as amountboxcontrol amountboxcontrol updatevalue product_item_id, 1000 0 //item price amountboxcontrol updatevalue product_tax_id, 50 0 // sales tax amountboxcontrol updatevalue product_shipping_id, 10 0 // shipping fee amountboxcontrol updatevalue product_fuel_id, 0 0, "pending" // additional item status amountboxcontrol setamounttotal 1060 0, amountconstants format_total_price_only // grand total customsheet updatecontrol amountboxcontrol // call updatesheet with amountboxcontrol; mandatory try { paymentmanager updatesheet customsheet } catch e java lang illegalstateexception { e printstacktrace } catch e java lang nullpointerexception { e printstacktrace } } /* * this callback is received when the payment is approved by the user and the transaction payload * is generated payload can be an encrypted cryptogram network token mode or the pg's token * reference id gateway token mode */ override fun onsuccess response customsheetpaymentinfo, paymentcredential string, extrapaymentdata bundle { /* * called when samsung pay creates the transaction cryptogram, which merchant app then sends * to merchant server or pg to complete in-app payment */ try { val dpan = response cardinfo cardmetadata getstring spaysdk extra_last4_dpan, "" val fpan = response cardinfo cardmetadata getstring spaysdk extra_last4_fpan, "" toast maketext context, "dpan " + dpan + "fpan " + fpan, toast length_long show } catch e java lang nullpointerexception { e printstacktrace } toast maketext context, "transaction onsuccess", toast length_long show } override fun onfailure errorcode int, errordata bundle { // called when an error occurs during cryptogram generation toast maketext context, "transaction onfailure $errorcode", toast length_long show } } private fun startinapppaywithcustomsheet { // show custom payment sheet try { val bundle = bundle bundle putstring samsungpay partner_service_type, spaysdk servicetype inapp_payment tostring val partnerinfo = partnerinfo serviceid, bundle paymentmanager = paymentmanager context, partnerinfo // request payment using samsung wallet paymentmanager startinapppaywithcustomsheet makecustomsheetpaymentinfo , transactionlistener } catch e illegalstateexception { e printstacktrace } catch e numberformatexception { e printstacktrace } catch e nullpointerexception { e printstacktrace } catch e illegalargumentexception { e printstacktrace } } when an address is provided by samsung wallet, onaddressupdated is called whenever address information is updated in the custom payment sheet you can use the updatesheet method to update the shipping fee or any other relevant information in the payment sheet set the errorcode to determine if the address provided by samsung wallet app is invalid, out of delivery, or does not exist for example, when the merchant does not support the product delivery to the designated location billing address from samsung wallet is not valid for tax recalculation for all such cases, the merchant app should call updatesheet with one of the following error codes error_shipping_address_invalid error_shipping_address_unable_to_ship error_shipping_address_not_exist error_billing_address_invalid error_billing_address_not_exist the sample code included below under applying the address control demonstrates how to use the updatesheet method for 'addresscontrol' in the payment sheet payment credential sample the paymentcredential is the resulting output of the startinapppaywithcustomsheet method the structure varies depending on the pg you’re using and the integration model—direct or indirect the following paymentcredential is for a visa card for pg using direct network token mode – e g first data, adyen, cybs sample paymentcredential json output using jwe-only { "billing_address" {"city" "billingcity","country" "usa","state_province" "ca","street" "billingaddr1","zip_postal_code" "123456"}, "card_last4digits" "1122", "3ds" {"data" "eyjhbgcioijsu0exxzuilcjrawqioijcak91a1h2afv4wu5wofiwvgs2y25oactzwwfqzxhiehrvz0vfdhlhyy9npsisinr5cci6ikppu0uilcjjagfubmvsu2vjdxjpdhldb250zxh0ijoiulnbx1blssisimvuyyi6ikexmjhhq00ifq fg2oouvhdgkkivyba2s5kturpwueujkzeyxz7n6kalhqahszv3p5jabaoj-rokcznfjdg3qierzjktu7zxst9gwv4oclahpfdw64w0x6ttaxeyjiivkjug-edxxtwajeyeikgc68wehf1cltsqg4zlwi6upvcaywdppbn0hl0c5wcf5az4wabytv_fda5ahguypne70keqrtwdlacw9mzejx2xth7msd9ohoulr8luq-7gha17jhoobwgmoq9q0haocnm0ljwiuhkoryyu-njulnbkk8fzus_aiumgdv2yn9ygfqilmculb0vwuf0yekx6isgaxi0zqhliusjkcz_w auzzxog46lnrtk3q qe2llws30vzh-zduue8b045cnfrm2p-rjzgbnzchels3v26n64cfg1av5mtp5f-fswbj3ntp5x4v1nk8fmdy0uspxzemfvl5badgac7w9frxt6x5xv1fqu6-q-zkbxcb9bygownt983bckoe1bd5djxfbodlrc4j68ikdjc5m3lebdx6hv0aqzkmilch-jevl3awqykbny4vj7m3fizw7u1prli2zfwukxdfs4vwv3bpm4qudemvnhxj qtymdmn4ne93juljnmwkjg","type" "s","version" "100"}, "merchant_ref" "merchantid", "method" "3ds", "recurring_payment" false } decrypt using the merchant’s private key below is sample private key -----begin rsa private key----- miieowibaakcaqea4lzyjqr+dqd/xleoxct9jwtjxhd2ptjke9djtmijki0h2oc2ghow4ujhhy/1jvft2+zcnjtoxuvlp+76/dwa3bcwfrj+fpp6x5kkylpb+djdyo1ttumltnqcwymjb3u7jbc+xr4vkfrzqjxke7xhn/sbb82ue8c3smzvkynuji<…> -----end rsa private key----- the decrypted output will be similar to this { "amount" "1000", "currency_code" "usd", "utc" "1490266732173", "eci_indicator" "5", "tokenpan" "1234567890123456", "tokenpanexpiration" "0420", "cryptogram" "ak+zkbpmcorcabcd3agraoacfa==" } processing the payload depending on the structure of the payment processing api provided by your pg, your merchant app can send either of these directly to the pg entire paymentcredential output extracted “3ds” part only consult your pg documentation for specific guidance when using indirect model e g stripe in indirect gateway token mode, paymentcredential is the pg’s token reference id and its status here’s a sample of the json output { "reference" "tok_18rje5e6szui23f2mefakep7", "status" "authorized" } for stripe, your merchant app should be able to pass this token object directly to charge or another appropriate payment processing api provided by the pg
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.