Abonelik Yönetim Servisleri

Sistemde var olan ödeme abonelikleri listeleme, detaylarını çekebilme ve iptal etme işlemlerini yapmayı sağlayan entegrasyon servisleridir.

Abonelik işlemleri Entegrasyonu SOAP servisi olarak, https://www.wirecard.com.tr/services/SubscriberManagementService.asmx adresindeki web servisin metotları kullanılabilir. Bu metotlar ve işlevleri aşağıdaki gibidir.
  • SelectSubscriber: Abonelik Listeleme
  • SelectSubscriberDetail: Abonelik Detayı Görüntüleme
  • DeactivateSubscriber : Abonelik İptal Etme

Abonelik Listeleme

"SelectSubscriber" metodu vasıtası ile üye iş yerine ait abonelikler listelenebilir. Metoda ait parametreler vasıtası ile filtreleme yapılabilir. Bir parametrenin değeri boş gönderilirse o parametre kriteri göz ardı edilecektir.

Servis Girdi Parametreleri

Servis içinde ileticek Girdi (Input) Parametreleri
Parametre Adı Açıklama
Token

Token Bilgileri. Aşağıdaki İç tabloda iç parametreleri anlatılmıştır.

Input

Input Bilgileri. Aşağıdaki İç tabloda iç parametreleri anlatılmıştır.

Token Bilgileri
Parametre Adı Veri Tipi Açıklama
UserCode String

Wirecard tarafından atanan üye iş yeri numarasıdır.

Pin String

Wirecard tarafından atanan pin

Input Bilgileri
Parametre Adı Veri Tipi Açıklama
ProductId Int

Aboneliğin hangi ürün üzerinden yapıldığını belirtir. ‘0’ değeri belirli bir ürün üzerinden abonelik yapılmadığını gösterir.

GSM String

Aboneliğin hangi GSM numarasını tarafından yapıldığını belirtir.(5XXXXXXXXX formatında olmalı)

OrderChannelId Int

Aboneliğin yapıldığı satış kanalını belirtir;
‘100’ Pro API
‘101’ Basic API
‘102’ SMS
‘103’ Direct API
‘104’ API Plus

Active Int

Aboneliğin aktif/pasif bilgisini belirtir;
‘1’ Aktif
‘0’ Pasif
‘-1’ Hepsi

SubscriberType Int

Abonelik türünü belirtir;
‘2’ Aylık Abonelik
‘3’ Haftalık Abonelik

StartDateMin DateTime

Abonelik başlangıç tarihini belirtir.(alt sınır)

StartDateMax DateTime

Abonelik başlangıç tarihini belirtir.(üst sınır)

LastSuccessfulPaymentDateMin DateTime

Aboneliğe ait son başarılı ödeme tarihini belirtir.(alt sınır)

LastSuccessfulPaymentDateMax DateTime

Aboneliğe ait son başarılı ödeme tarihini belirtir.(üst sınır)

Servis Çıktı Parametreleri

Parametre Adı Veri Tipi Açıklama
StatusCode Int

Sonuç kodu.

ErrorCode String

Hata kodunu belirtir.

ErrorMessage String

Hata kodu açıklamasını belirtir.

Subscribers List

İlgili kriterlere göre dönen abonelik kayıtları. Bu Liste içerisinde "Subscriber" elemanı bulunmaktadır. "Subscriber" elemanı detayları aşağıdaki iç tabloda iç parametreleri anlatılmıştır.

Subscriber Bilgileri
Parametre Adı Veri Tipi Açıklama
SubscriberId Guid

Abonelik Id'si

GSM String

Aboneliğin yapıldığı GSM numarası

StartDate Datetime

Aboneliğin başlangıç tarihi

SubscriberTypeId Int

Abonelik türü

PaymentCategoryId Int

Abonelik kategorisi

  • ‘1’ Fiziksel Ürün
  • ‘2’ Oyun
  • ‘3’ Dijital İçerik
  • ‘4’ Servis
  • ‘5’ Sosyal Ağ/Arkadaşlık
  • ‘6’ Aidat/Otomat
  • ‘7’ Bahis
  • ‘8’ Sigorta
  • ‘10’ Kamu - Bilet - Fastfood
  • ‘11’ Cep Sigorta
  • ‘12’ Kutu Oyun
  • ‘14’ Mobil Uygulama / Mobil Market
  • ‘15’ Eğitim
  • ‘16’ Bağış (sadece Turkcell aboneleri bağış ödemesi yapabilir)
  • ‘19’ Sağlık
  • ‘20’ White Label Adult

BasePrice Double

Abonelik bedeli

BaseUnitPrice Double

Kredi miktarını belirtir.

ProductId Int

Aboneliğin ait olduğu ürün Id'si

ProductName String

Aboneliğin ait olduğu ürün adı

OrderChannelId Int

Aboneliğin yapıldığı satış kanalı

Active bool

Aboneliğin aktiflik durumu;
"True": Aktif
"False": Pasif

LastSuccessfulPaymentDate Datetime

Aboneliğe ait son başarılı ödeme tarihi

GsmOperator Int

Aboneliğin yapıldığı numaranın ait olduğu operatör;
1: Turkcell
3: Avea
7: Vodafone

Örnek Servis Çağrı Kodları


//Request
            _subscriberManagementService = new SubscriberManagementServiceSoapClient();
            #region Token
            MAuthToken token = new MAuthToken();
            token.UserCode = base.settings.UserCode;
            token.Pin = base.settings.Pin;
            #endregion
            #region MSelectSubscriberInput
            MSelectSubscriberInput input = new MSelectSubscriberInput();
            input.ProductId = 0;
            input.GSM =gsm;
            input.OrderChannelId = orderChannelId;
            input.Active = activeTypeId;
            input.SubscriberType = subscriberTypeId;
            input.StartDateMin = startDateMin;
            input.StartDateMax = startDateMax;
            input.LastSuccessfulPaymentDateMin = lastSuccessfulPaymentDateMin;
            input.LastSuccessfulPaymentDateMax = lastSuccessfulPaymentDateMax;
            #endregion
            var result = _subscriberManagementService.SelectSubscriber(token, input);
            return View(result);

//Request       
            com._3pay.services.SubscriberManagementService service = new com._3pay.services.SubscriberManagementService();
            com._3pay.services.SubscriberManagementServiceSoap port = service.getSubscriberManagementServiceSoap();
            
            com._3pay.services.MAuthToken token = new com._3pay.services.MAuthToken();
            com._3pay.services.MSelectSubscriberInput input = new com._3pay.services.MSelectSubscriberInput();
             
            token.setUserCode(settings.userCode);
            token.setPin(settings.pin);
             
            input.setProductId(0);
            input.setGSM(request.getParameter("gsmNumber"));
            input.setOrderChannelId(Integer.parseInt(request.getParameter("orderChannelId")));
            input.setActive(Integer.parseInt(request.getParameter("activeTypeId")));
            input.setSubscriberType(Integer.parseInt(request.getParameter("subscriberTypeId")));
            input.setStartDateMin(request.getParameter("startDateMin"));
            input.setStartDateMax(request.getParameter("startDateMax"));
            input.setLastSuccessfulPaymentDateMin(request.getParameter("lastSuccessfulPaymentDateMin"));
            input.setLastSuccessfulPaymentDateMax(request.getParameter("lastSuccessfulPaymentDateMax"));
             
            com._3pay.services.MSelectSubscriberOutput result= port.selectSubscriber(token, input);


//Request
            $token = new Token();
            $token->UserCode =  $settings->UserCode; 
            $token->Pin =  $settings->Pin;
            $input= new input();
            $input->ProductId=0;
            $input->GSM=$_POST["gsmNumber"];
            $input->OrderChannelId=$_POST["orderChannelId"];
            $input->Active=$_POST["activeTypeId"];
            $input->SubscriberType=$_POST["subscriberTypeId"];
            $input->StartDateMin=date('c',strtotime($_POST["startDateMin"]));
            $input->StartDateMax=date('c',strtotime($_POST["startDateMax"])); 
            $input->LastSuccessfulPaymentDateMin=date('c',strtotime($_POST["lastSuccessfulPaymentDateMin"]));
            $input->LastSuccessfulPaymentDateMax=date('c',strtotime($_POST["lastSuccessfulPaymentDateMax"]));
            $result = $client->SelectSubscriber(array(
                "token" =>  (array) $token,
                "input" =>  (array) $input
            ));

//Request
           #region Input 
           input_request=Input()
           input_request.ProductId=0 
           input_request.Gsm=request.POST.get('gsm') 
           input_request.OrderChannelId=request.POST.get('orderChannelId') 
           input_request.Active=request.POST.get('activeTypeId')  
           input_request.SubscriberType=request.POST.get('subscriberTypeId')  
           input_request.StartDateMin=parser.parse(request.POST.get('startDateMin')) 
           input_request.StartDateMax=parser.parse(request.POST.get('startDateMax')) 
           input_request.LastSuccessfulPaymentDateMin=parser.parse(request.POST.get('lastSuccessfulPaymentDateMin')) 
           input_request.LastSuccessfulPaymentDateMax=parser.parse(request.POST.get('lastSuccessfulPaymentDateMax')) 
           #endregion
           #region Token
           token_request= Token()
           token_request.UserCode=config.UserCode
           token_request.Pin=config.Pin
           #region EndToken
           req= SubscriberSelectRequest() 
           message =  req.execute(token_request,input_request) #Soap servis çağrısının başlatıldığı kısım. 

//Request
           #region Token
           token= Token.new
           token.UserCode= @settings.UserCode
           token.Pin=@settings.Pin 
           #endregion
           #region Input
           input= Soapinput.new
           input.ProductId=0
           input.Gsm = params[:gsm]
           input.OrderChannelId = params[:orderChannelId]
           input.Active= params[:activeTypeId]
           input.SubscriberType=params[:subscriberTypeId]
           input.StartDateMin= DateTime.parse(params[:startDateMin])
           input.StartDateMax= DateTime.parse(params[:startDateMax])
           input.LastSuccessfulPaymentDateMin=DateTime.parse(params[:lastSuccessfulPaymentDateMin])
           input.LastSuccessfulPaymentDateMax= DateTime.parse(params[:lastSuccessfulPaymentDateMax])
           #endregion
           req=Selectsubscriber.new
           subscriberlist_result= req.execute(input,token) # soap servis çağrısının başladığı kısmı temsil etmektedir.

//Request               
           const data = ({
                token:{
                    UserCode:settings.userCode,
                    Pin:settings.pin
                },
                input:{
                    ProductId: request.ProductId,
                    GSM : request.GSM,
                    OrderChannelId:request.OrderChannelId,
                    Active:request.Active,
                    SubscriberType:request.SubscriberType,
                    StartDateMin : startDateMin,
                    StartDateMax : startDateMax,
                    LastSuccessfulPaymentDateMin : lastSuccessfulPaymentDateMin,
                    LastSuccessfulPaymentDateMax :lastSuccessfulPaymentDateMax
                }     
           })
                
           wirecard.SelectSubscriber(data).then(requestResult => {
                    res.json(requestResult)
                    }).catch(err => {
                        console.log(err)
           })
 

//Request 
           <?xml version="1.0" encoding="UTF-8" ?>
           <SelectSubscriber>
           <token>
               <UserCode>Wirecard Tarafından Verilen Değer</UserCode>
               <Pin>Wirecard Tarafından Verilen Değer</Pin>
           </token>
           <input>
               <ProductId>0</ProductId>
               <GSM>Sorgulanacak GSm numarası</GSM>
               <OrderChannelId>104</OrderChannelId>
               <Active>-1</Active>
               <SubscriberType>2</SubscriberType>
               <StartDateMin>2018-01-01</StartDateMin>
               <StartDateMax>2018-01-05</StartDateMax>
               <LastSuccessfulPaymentDateMin>2018-01-01</LastSuccessfulPaymentDateMin>
               <LastSuccessfulPaymentDateMax>2018-01-05</LastSuccessfulPaymentDateMax>
           </input>
           </SelectSubscriber>
//Response
           <?xml version="1.0" encoding="UTF-8" ?>
           <SelectSubscriberResult>
               <StatusCode>0</StatusCode>
               <Subscribers>
                   <Subscriber>
                       <SubscriberId>587401ab-3c72-422b-9fcf-96cb55d0d732</SubscriberId>
                       <GSM>Cep telefon bilgisi</GSM>
                       <StartDate>2018-01-02T11:24:43.28</StartDate>
                       <SubscriberTypeId>4</SubscriberTypeId>
                       <PaymentCategoryId>1</PaymentCategoryId>
                       <BasePrice>0.01</BasePrice>
                       <BaseUnitPrice>1</BaseUnitPrice>
                       <ProductId>0</ProductId>
                       <ProductName>Test ürünü</ProductName>
                       <OrderChannelId>104</OrderChannelId>
                       <Active>false</Active>
                       <LastSuccessfulPaymentDate>2018-01-02T11:24:43.28</LastSuccessfulPaymentDate>
                       <GsmOperator>3</GsmOperator>
                       <CancelKeyword>439</CancelKeyword>
                   </Subscriber>
               </Subscribers>
           </SelectSubscriberResult>  
                    

Abonelik Detayı Görüntüleme

"SelectSubscriberDetail" metodu kullanılarak bir aboneliğin detayını getirir. Kullanılması için abonelik ID’sinin biliniyor olması gereklidir. Gerekli ID, SelectSubscriber metoduyla alınabilir.
Aşağıdaki parametreler XML formatında "SelectSubscriberDetail" metoduna iletilerek sorgulama işlemi yapılır.

Servis Girdi Parametreleri

Input Bilgileri
Parametre Adı Veri Tipi Açıklama
Token Token Sınıfı

Token Bilgileri. Aşağıdaki İç tabloda iç parametreleri anlatılmıştır.

SubscriberId Guid

Abonelik Id'si

Token Bilgileri
Parametre Adı Veri Tipi Açıklama
UserCode String

Wirecard tarafından atanan üye iş yeri numarası

Pin String

Wirecard tarafından atanan pin

Servis Çıktı Parametreleri

Parametre Adı Veri Tipi Açıklama
StatusCode Int

Sonuç kodu.

ErrorCode String

Hata kodunu belirtir.

ErrorMessage String

Hata kodu açıklamasını belirtir.

Subscribers List

İlgili kriterlere göre dönen abonelik kayıtları. Bu Liste içerisinde "Subscriber" elemanı bulunmaktadır. "Subscriber" elemanı detayları aşağıdaki iç tabloda iç parametreleri anlatılmıştır.

Subscriber Bilgileri
Parametre Adı Veri Tipi Açıklama
SubscriberId Guid

Abonelik Id'si

GSM String

Aboneliğin yapıldığı GSM numarası

StartDate Datetime

Aboneliğin başlangıç tarihi

SubscriberTypeId Int

Abonelik türü

PaymentCategoryId Int

Abonelik kategorisi

BasePrice Double

Abonelik bedeli

BaseUnitPrice Double

Abonelik kontör bedeli

ProductId Int

Aboneliğin ait olduğu ürün Id'si

ProductName String

Aboneliğin ait olduğu ürün adı

OrderChannelId Int

Aboneliğin yapıldığı satış kanalı

Active bool

Aboneliğin aktiflik durumu
"True": Aktif
"False": Pasif

LastSuccessfulPaymentDate Datetime

Aboneliğe ait son başarılı ödeme tarihi

GsmOperator Int

Aboneliğin yapıldığı GSM numarasının ait olduğu operatör
1: Turkcell
3: Avea
7: Vodafone

Payments -

Aboneliğe ait ödeme kayıtları
Payments Bilgileri aşağıdaki iç tabloda açıklanmıştır

Payments
Parametre Adı Veri Tipi Açıklama
PaymentDate DateTime

Ödeme tarihini belirtir

IsPaid bool

Ödemenin başarılı olup olmadığını belirtir
"True" Başarılı
"False" Başarısız

OrderObjectId Guid

Ödemenin ait olduğu siparişin Id'sini belirtir

Örnek Servis Çağrı Kodları


//Request
            _subscriberManagementService = new SubscriberManagementServiceSoapClient();
            MAuthToken token = new MAuthToken();
            token.UserCode = base.settings.UserCode;
            token.Pin = base.settings.Pin;
            var guid = new Guid(subscriberId.ToString());
            var response = _subscriberManagementService.SelectSubscriberDetail(token, guid);
            return View(response);

//Request      
            com._3pay.services.SubscriberManagementService service = new com._3pay.services.SubscriberManagementService();
            com._3pay.services.SubscriberManagementServiceSoap port = service.getSubscriberManagementServiceSoap();
            com._3pay.services.MAuthToken token = new com._3pay.services.MAuthToken();
            token.setUserCode(settings.userCode);
            token.setPin(settings.pin);
            java.lang.String subscriberId = request.getParameter("subscriberId");
            com._3pay.services.MSubscriberDetailOutput result = port.selectSubscriberDetail(token, subscriberId);

//Request
            $token = new Token();
            $token->UserCode =  $settings->UserCode; 
            $token->Pin =  $settings->Pin;
            $subscriberId=$_POST["subscriberId"];
            $result = $client->SelectSubscriberDetail(array(
                "token" =>  (array) $token,
                "subscriberId" =>   $subscriberId
            ));

//Request
            input_request=Input()
            input_request.subscriberId=request.POST.get('subscriberId') 
            #endregion
            #region Token
            token_request= Token()
            token_request.UserCode=config.UserCode
            token_request.Pin=config.Pin
            #region EndToken 
            req= SubscriberDetailRequest()
            message= req.execute(token_request,input_request) #Soap servis çağrısının başlatıldığı kısım. 

//Request
            #region Token
            token= Token.new
            token.UserCode= @settings.UserCode
            token.Pin=@settings.Pin 
            #endregion
            req=Selectsubscriberdetail.new
            subscriberdetail_result= req.execute(params[:subscriberId],token) # soap servis çağrısının başladığı kısmı temsil etmektedir.

//Request
            const data = ({
                token:{
                    UserCode:settings.userCode,
                    Pin:settings.pin
                },
                subscriberId:subscriberId
            })
                    
            wirecard.SelectSubscriberDetail(data).then(requestResult => {
                res.json(requestResult)
                }).catch(err => {
                console.log(err)
            })  

 

//Request 
            <?xml version="1.0" encoding="UTF-8" ?>
            <SelectSubscriberDetail>
                <token>
                    <UserCode></UserCode>
                    <Pin></Pin>
                </token>
                <subscriberId>587401ab-3c72-422b-9fcf-96cb55d0d732</subscriberId>
            </SelectSubscriberDetail>
//Response
            <?xml version="1.0" encoding="UTF-8" ?>
            <SelectSubscriberDetailResult>
                <StatusCode>0</StatusCode>
                <ErrorCode></ErrorCode>
                <ErrorMessage>Operation Successful</ErrorMessage>
                <Subscriber>
                    <SubscriberId>587401ab-3c72-422b-9fcf-96cb55d0d732</SubscriberId>
                    <GSM></GSM>
                    <StartDate>2018-01-02T11:24:43.28</StartDate>
                    <SubscriberTypeId>4</SubscriberTypeId>
                    <PaymentCategoryId>1</PaymentCategoryId>
                    <BasePrice>0.01</BasePrice>
                    <BaseUnitPrice>1</BaseUnitPrice>
                    <ProductId>0</ProductId>
                    <ProductName></ProductName>
                    <OrderChannelId>104</OrderChannelId>
                    <LastSuccessfulPaymentDate>2018-01-02T11:24:43.28</LastSuccessfulPaymentDate>
                    <GsmOperator>3</GsmOperator>
                    <Active>false</Active>
                    <CancelKeyword>439</CancelKeyword>
                    <Payments>
                        <Payment>
                            <PaymentDate>2018-01-16T00:00:00</PaymentDate>
                            <IsPaid>false</IsPaid>
                            <OrderObjectId>00000000-0000-0000-0000-000000000000</OrderObjectId>
                        </Payment>
                    </Payments>
                </Subscriber>
            </SelectSubscriberDetailResult>  
                    

Aboneliği İptal Etme

"DeactivateSubscriber" metodu vasıtası ile yapılan bu işlem ilgili aboneliği pasif duruma getirir. Aboneliğin ödeme tarihi geldiğinde tahsilat yapılmaz. Pasif duruma çekilen abonelerin manuel olarak tekrar kayıt olması gerekmektedir.
Aşağıdaki parametreler XML formatında "DeactivateSubscriber" metoduna iletilerek abonelik iptal etme işlemi yapılır.

Servis Girdi Parametreleri

Servis içinde ileticek Girdi (Input) Parametreleri
Parametre Adı Veri Tipi Açıklama
Token Token Sınıfı

Token Bilgileri. Aşağıdaki İç tabloda iç parametreleri anlatılmıştır.

SubscriberId Guid

Abonelik Id'si

Token Bilgileri
Parametre Adı Veri Tipi Açıklama
UserCode String

Wirecard tarafından atanan üye iş yeri numarası

Pin String

Wirecard tarafından atanan pin

Servis Çıktı Parametreleri

Servis içinde ileticek Girdi (Input) Parametreleri
Parametre Adı Veri Tipi Açıklama
StatusCode Int

Sonuç kodu. ‘0’ döndüğünde aboneliğin başarılı bir şekilde pasife çekildiğini belirtir.

ErrorCode String

Abonelik pasife çekilememişse hata kodunu belirtir.

ErrorMessage String

Hata kodu açıklamasını belirtir.

Örnek Servis Çağrı Kodları


//Request
            _subscriberManagementService = new SubscriberManagementServiceSoapClient();
            MAuthToken token = new MAuthToken();
            token.UserCode = base.settings.UserCode;
            token.Pin = base.settings.Pin;
            var guid = new Guid(subscriberId.ToString());
            var response = _subscriberManagementService.DeactivateSubscriber(token, guid);
            return View(response);

//Request
            com._3pay.services.SubscriberManagementService service = new com._3pay.services.SubscriberManagementService();
            com._3pay.services.SubscriberManagementServiceSoap port = service.getSubscriberManagementServiceSoap();
            com._3pay.services.MAuthToken token = new com._3pay.services.MAuthToken();
            token.setUserCode(settings.userCode);
            token.setPin(settings.pin);
            java.lang.String subscriberId = request.getParameter("subscriberId");
            com._3pay.services.MOperationOutput result = port.deactivateSubscriber(token, subscriberId);

//Request
            $token = new Token();
            $token->UserCode =  $settings->UserCode; 
            $token->Pin =  $settings->Pin;
            $subscriberId=$_POST["subscriberId"];
            $result = $client->DeactivateSubscriber (array(
                "token" =>  (array) $token,
                "subscriberId" =>   $subscriberId
                ));

//Request              
            input_request=Input()
            input_request.subscriberId=request.POST.get('subscriberId') 
            #region Token
            token_request= Token()
            token_request.UserCode=config.UserCode
            token_request.Pin=config.Pin
            #region EndToken 
            req= SubscriberDeactivateRequest()
            message= req.execute(token_request,input_request) #Soap servis çağrısının başlatıldığı kısım. 

//Request
            #region Token
            token= Token.new
            token.UserCode= @settings.UserCode
            token.Pin=@settings.Pin
            #endregion
            req=Deactivesubscriber.new
            subscriberdeactive_result= req.execute(params[:subscriberId],token) # soap servis çağrısının başladığı kısmı temsil etmektedir.

//Request
            const data = ({
                token:{
                    UserCode:settings.userCode,
                    Pin:settings.pin
                },
                subscriberId:subscriberId
            })              
                
            wirecard.DeactivateSubscriber(data).then(requestResult => {
                res.json(requestResult)
            }).catch(err => {
                console.log(err)
            })
 

//Request 
            <?xml version="1.0" encoding="UTF-8" ?>
            <DeactivateSubscriber>
                <token>
                    <UserCode></UserCode>
                    <Pin></Pin>
                </token>
                <subscriberId>587401ab-3c72-422b-9fcf-96cb55d0d732</subscriberId>
            </DeactivateSubscriber>
//Response
            <?xml version="1.0" encoding="UTF-8" ?>
            <DeactivateSubscriberResult>
                <StatusCode>0</StatusCode>
                <ErrorCode>M310004</ErrorCode>
                <ErrorMessage>Warning: Subscriber deactivated before.</ErrorMessage>
            </DeactivateSubscriberResult> 
                    

Abonelik Ücret Değişim Servisi

Abonelik Ücret Değişim Servisi, Wirecard üzerinde başlatılan aboneliklerin ücret değişimini sağlamak amacıyla kullanılır.

Aşağıdaki parametreler XML formatında "ChangePriceBySubscriber" metoduna iletilerek, aboneliklerin ücret değişimini sağlayabilirsiniz.

Servis Girdi Parametreleri

Servis içinde ileticek Girdi (Input) Parametreleri
Parametre Adı Veri Tipi Açıklama
ServiceType String

Sabit değer: "SubscriberManagementService"

OperationType String

Sabit değer: "ChangePriceBySubscriber"

Token Token Sınıfı

Token Bilgileri. Aşağıdaki İç tabloda iç parametreleri anlatılmıştır.

SubscriberId Guid

Abonelik Id'si

ValidFrom Datetime

Geçerlilik tarihi. YYYYMMDD formatında iletilmelidir.

Price Double

Abonelik Ücreti

Description string

Abonelik Açıklaması

Token Bilgileri
Parametre Adı Veri Tipi Açıklama
UserCode String

Wirecard tarafından atanan üye iş yeri numarası

Pin String

Wirecard tarafından atanan pin

Servis Çıktı Parametreleri

Servis içinde ileticek Girdi (Input) Parametreleri
Parametre Adı Veri Tipi Açıklama
StatusCode Int

Sonuç kodu. ‘0’ döndüğünde aboneliğin başarılı bir şekilde pasife çekildiğini belirtir.

ResultCode String

Sonuç kodunu temsil eder.

ResultMessage String

Sonuç kodunun açıklamasını temsil eder.

Örnek Servis Çağrı Kodları


//Request
            var request = new ChangePriceBySubscriberRequest();
            request.ServiceType = "SubscriberManagementService";
            request.OperationType = "ChangePriceBySubscriber";
            request.SubscriberId = subscriberId;
            request.ValidFrom = validFrom;
            request.Price = price;
            request.Description = "Ödeme Güncelleme";

            #region Token
            request.Token = new Token();
            request.Token.UserCode = settings.UserCode;
            request.Token.Pin = settings.Pin;
            #endregion
            var response = ChangePriceBySubscriberRequest.Execute(request, settings);

//Request              
                SubScriberChangePriceRequest subScriberChangePrice = new SubScriberChangePriceRequest();  
                
                subScriberChangePrice.ServiceType = "SubscriberManagementService";
                subScriberChangePrice.OperationType = "ChangePriceBySubscriber";
              
                subScriberChangePrice.Description = "Odeme Guncelleme";
               
                subScriberChangePrice.Price = request.getParameter("price"); 
                subScriberChangePrice.SubscriberId = request.getParameter("subscriberId");
                subScriberChangePrice.ValidFrom="20190703";
                subScriberChangePrice.Token = new Token();
                subScriberChangePrice.Token.UserCode = settings.userCode;
                subScriberChangePrice.Token.Pin = settings.pin;
                
                String subScriberChangePriceResponse = subScriberChangePrice.execute(subScriberChangePrice,settings); //"Abonelik ücreti güncelleme servisi başlatılması için gerekli servis çağırısını temsil eder."

//Request
            $settings=new Settings();
            $request = new SubscriberChangePriceRequest();
	        $request->ServiceType = "SubscriberManagementService";
            $request->OperationType = "ChangePriceBySubscriber";
            $request->Token= new Token();
            $request->Token->UserCode=$settings->UserCode;
            $request->Token->Pin=$settings->Pin;
            $request->BaseUrl = $settings->BaseUrl;
            $request->SubscriberId = $_POST["subscriberId"];
            $request->Price = $_POST["price"];
            $request->Description ="Odeme değiştirme";
            $request->ValidFrom =$date;
            $response = SubscriberChangePriceRequest::execute($request); // Ücret değişimi için gerekli olan servis çağrısının başlatılması için gerekli servis çağırısını temsil eder.

//Request
           req=SubscriberChangePriceRequest()
           req.ServiceType="SubscriberManagementService"
           req.OperationType="ChangePriceBySubscriber"
           req.SubscriberId=request.POST.get('subscriberId')
           req.Price=request.POST.get('price')
           req.Description="Abonelik ucreti degisimi"
           req.ValidFrom=validFrom.strftime('%Y%m%d')
           #region Token
           req.Token=Token()
           req.Token.UserCode=config.UserCode
           req.Token.Pin=config.Pin
           #endregion
           message = req.execute(req,config) # Xml servis çağrısının başlatıldığı kısım

//Request
            req= Subscriberchangeprice.new
            req.ServiceType = "SubscriberManagementService"
            req.OperationType = "ChangePriceBySubscriber"
            req.Description = "Odeme Degistirme"
            req.Price=params[:price] 
            req.SubscriberId=params[:subscriberId] 
            req.ValidFrom=validFrom
            #region Token
            req.Token = Token.new
            req.Token.UserCode = @settings.UserCode
            req.Token.Pin = @settings.Pin 
            #endregion
          
            returnData= req.execute(req,@settings) # xml servis çağrısının başladığı kısım
                   
//Request
        const data={
           "ServiceType": request.ServiceType,
            "OperationType": request.OperationType,
            "Token": {
                "UserCode":settings.userCode,
                "Pin": settings.pin
            },
            "Price":request.Price,
            "SubscriberId":request.SubscriberId,
            "ValidFrom":request.ValidFrom,
            "Description":request.Description
        }
                 
        wirecard.SubScriberChangePrice(data).then(requestResult => {
            res.json(requestResult)
        }).catch(err => {
            console.log(err)
        })
 

//Request 
    <?xml version="1.0" encoding="utf-8" ?>

    <WIRECARD>
        <ServiceType>SubscriberManagementService</ServiceType>
        <OperationType>ChangePriceBySubscriber</OperationType>
        <Token>
            <UserCode></UserCode>
            <Pin></Pin>
        </Token>
        <SubscriberId></SubscriberId>
        <ValidFrom></ValidFrom>
        <Price></Price>
        <Description></Description>
    </WIRECARD>
//Response
    <?xml version="1.0" encoding="UTF-8" ?>

    <Result>
        <Item Key="StatusCode" Value="" />
        <Item Key="ResultCode" Value=" " />
        <Item Key="ResultMessage" Value=" " />
    </Result>
                    

SMS İçeriği İletim Servisi

Wirecard'a gelen SMS’ler, SMS-Keyword Yönlendirme kurgusunu kullanan şirketler için üye işyerine iletilmektedir.
Bu iletim, üye işyeri tarafından geliştirilecek bir web servis üzerinden yapılmaktadır. Söz konusu web servis, "ReceiveMOMessage" adlı bir metoda sahip olmalıdır.

Geliştirilen servisin formatı aşağıdaki URL’deki yapıda olmalıdır:
https://www.wirecard.com.tr/proxy/CReceiveMOMessageService.asmx?op=ReceiveMOMessage
Web servisin adresi integration@3pay.com adresine iletilerek Wirecard sisteminde tanımlanması sağlanır.
Wirecard tarafından ReceiveMOMessage metodu çağırılarak müşterinin 7979’a gönderdiği SMS içeriğine ilişkin veriler, üye işyerinin web servisine gönderilecektir.
Bu web servisteki ReceiveMOMessage metoduna aşağıdaki değerler XML formatında iletilir.

Servis Girdi Parametreleri

Servis içinde ileticek Girdi (Input) Parametreleri
Parametre Adı Veri Tipi Açıklama
Input Input Sınıfı

Input Bilgileri. Aşağıdaki İç tabloda iç parametreleri anlatılmıştır.

Input Bilgileri
Parametre Adı Veri Tipi Açıklama
ReceivedSMSId Guid

Müşteriden Wirecard'a iletilen SMS’in Id’si

SenderGSM String

Gönderen GSM numarası

ReceiverGSM String

Alıcı GSM numarası

OriginalContent String

SMS içeriği

FixedContent String

Güncellenmiş SMS içeriği. Asıl SMS içeriğinin Türkçe karakter bulundurmayan, büyük harfe çevrilmiş ve boşluklardan arındırılmış versiyonu.

DateReceived DateTime

SMS tarihi

GsmOperator Int

SMS’in gönderildiği GSM operatörü;
‘1’ Turkcell
‘7’ Vodafone
‘3’ AVEA

GsmType Int

SMS’in gönderildiği GSM türü;
‘0’ Bilinmiyor
‘1’ PostPaid
‘2’ PrePaid

ReceiveMOMessage metodu, aşağıdaki gibi bir response değerini Wirecard'a dönmelidir:
CReceiveMOMessageOutput Bilgileri
Parametre Adı Veri Tipi Açıklama
StatusCode Int

İşlem Sonuç bilgisi iletim durumunu belirtir.
‘0’ gönderilirse İşlem Sonuç bilgisinin alındığını belirtir.
‘1’ gönderilirse İşlem Sonuç bilgisinin alınmadığını belirtir.

ErrorCode String

İşlem Sonuç bilgisi iletiminde hata oluştuğu durumda "(StatusCode=1)" açıklayıcı bir değer gönderilir. İşlem Sonuç bilgisi iletimi başarılı olduğunda boş gönderilir.

ErrorMessage String

SMS bilgisi iletiminin açıklama mesajı;
SMS bilgisi iletimi başarılı ise ‘Message Received Successfully.’ şeklinde gönderilir.
SMS bilgisi iletimi başarısız ise ilgili exception içeriği veya açıklayıcı bir hata mesajı gönderilir.

Bilgi SMS’i Gönderim Servisi

Bilgi SMS’i Gönderim Servisi, müşteriye üye işyeri tarafından bir ödeme işemiyle ilgili 7979’dan ücretsiz bilgilendirme SMS’i gönderilmesini sağlar.

Bilgi Sms'i Entegrasyonu SOAP servisi olarak aşağıdaki adresleri kullanabilir:
Üye işyeri, bilgi gönderiminde 7979 numarasını kullanacaksa https://www.wirecard.com.tr/vas/msendsmsservice.asmx adresindeki web servis, projeye referans olarak eklenir.
Üye işyeri, kendine ait kısa numarayı kullanacaksa https://www.wirecard.com.tr/vas/MCustomSendSMSService.asmx adresindeki web servis, projeye referans olarak eklenir.

Servis Girdi Parametreleri

Servis içinde ileticek Girdi (Input) Parametreleri
Parametre Adı Açıklama
Token

Token Bilgileri. Aşağıdaki İç tabloda iç parametreleri anlatılmıştır.

Input

Input Bilgileri. Aşağıdaki İç tabloda iç parametreleri anlatılmıştır.

Token Bilgileri
Parametre Adı Veri Tipi Açıklama
UserCode String

Wirecard tarafından atanan üye iş yeri numarasıdır.

Pin String

Wirecard tarafından atanan pindir.

Input Bilgileri
Parametre Adı Veri Tipi Açıklama
Gsm String

SMS’in gönderileceği GSM numarasını belirtir.(5XXXXXXXXX formatında)

Content String

Gönderilecek SMS’in içeriğini belirtir.(Türkçe karakter kullanılmamalı)

RequestGsmOperator Int

Bu parametre daima ‘0’ olarak gönderilecektir.

RequestGsmType Int

Bu parametre daima ‘0’ olarak gönderilecektir.

Servis Çıktı Parametreleri

İşl
Parametre Adı Veri Tipi Açıklama
SendSMSObjectId Guid

SMS’in Id'sini belirtir.

StatusCode Int

SMS’in gönderim durumunu belirtir. ‘0’ olduğu durumlarda SMS başarı ile gönderilmiştir.

ErrorCode String

SMS gönderimi, hata kodunu belirtir. Operatör tarafından gönderilir.

ErrorMessage String

SMS gönderimi, hata açıklamasını belirtir. İlgili hata koduna ait açıklama yer alır.

Örnek Servis Çağrı Kodları


//Request
            _sendSmsService = new MSendSMSServiceSoapClient();
            MAuthToken token= new MAuthToken();
            token.UserCode = base.settings.UserCode;
            token.Pin = base.settings.Pin;
            MSendSMSInput input= new MSendSMSInput();
            input.Gsm = gsm;
            input.Content = content;
            input.RequestGsmOperator = 0;
            var response = _sendSmsService.SendSMS(token, input);

//Request
            com.mikro_odeme.services.MSendSMSService service = new com.mikro_odeme.services.MSendSMSService();
            com.mikro_odeme.services.MSendSMSServiceSoap port = service.getMSendSMSServiceSoap();
   
            com.mikro_odeme.services.MAuthToken token = new com.mikro_odeme.services.MAuthToken();
            com.mikro_odeme.services.MSendSMSInput input = new com.mikro_odeme.services.MSendSMSInput();
                          
            token.setUserCode(settings.userCode);
            token.setPin(settings.pin);
            input.setGsm(request.getParameter("gsm"));
            input.setContent(request.getParameter("content"));
            input.setRequestGsmOperator(0);
            input.setRequestGsmType(0);
                          
            com.mikro_odeme.services.MSendSMSOutput result = port.sendSMS(token, input);

//Request
            $token = new Token();
            $token->UserCode =  $settings->UserCode; 
            $token->Pin =  $settings->Pin;
            $input= new input();
            $input->Gsm=$_POST ["gsm"];
            $input->Content=$_POST ["content"];
            $input->RequestGsmOperator=0;
            $input->RequestGsmType=0;
            $result = $client->SendSMS( array(
                "token" =>  (array) $token,
                "input" =>  (array) $input
            ));

//Request
            input_request= Input()
            input_request.Gsm=request.POST.get('gsm') 
            input_request.Content=request.POST.get('content')
            input_request.RequestGsmOperator=0
            input_request.RequestGsmType=0
            #region Token
            token_request= Token()
            token_request.UserCode=config.UserCode
            token_request.Pin=config.Pin
            #region EndToken
            req= SendInformationSmsRequest() 
            message =  req.execute(token_request,input_request) #Soap servis çağrısının başlatıldığı kısım.

//Request
            #region Token
            token= Token.new
            token.UserCode= @settings.UserCode
            token.Pin=@settings.Pin 
            #endregion
            #region Input
            input= Soapinput.new
            input.Gsm = params[:gsm]
            input.Content = params[:content]
            input.RequestGsmOperator = 0
            input.RequestGsmType = 0
            #endregion
        
            req=Sendinformationsmsrequest.new
            subscriberdetail_result= req.execute(input,token) # soap servis çağrısının başladığı kısmı temsil etmektedir.

//Request
            const data = ({
            token:{
                UserCode:settings.userCode,
                Pin:settings.pin
            },
            input:{
                Gsm: gsm,
                Content : content,
                RequestGsmOperator:0,
                RequestGsmType:0}          
            })
                
            wirecard.SendInformationSmsService(data.gsm,data.content).then(requestResult => {
                res.json(requestResult)
            }).catch(err => {
                console.log(err)
            })
 

//Request 
            <?xml version="1.0" encoding="UTF-8" ?>
            <SendSMS>
                <token>
                    <UserCode></UserCode>
                    <Pin></Pin>
                </token>
                <input>
                    <Gsm></Gsm>
                    <Content>Bilgilendirme Smsi</Content>
                    <RequestGsmOperator>0</RequestGsmOperator>
                    <RequestGsmType>0</RequestGsmType>
                </input>
            </SendSMS>
//Response
            <?xml version="1.0" encoding="UTF-8" ?>
            <SendSMSResponse xmlns="http://services.mikro-odeme.com/">
                <SendSMSResult>
                    <SendSMSObjectId>197696e4-f25c-448e-8a50-3d1c1f6e1d6c</SendSMSObjectId>
                    <StatusCode>1</StatusCode>
                    <ErrorCode></ErrorCode>
                    <ErrorMessage></ErrorMessage>
                </SendSMSResult>
            </SendSMSResponse>
                    

İşlem Sonuç Servisleri

İşlem Sonuç Servisi, tüm kurgular için işlemlerin sonucunu Wirecard tarafından üye işyerine iletilmesini sağlar. Bu servisin kullanımı için üç yöntem mevcuttur:

  • Birinci yöntem, üye işyerine ait bir e-mail adresine işlem sonuçlarının, e-mail halinde gönderilmesidir.
  • İkinci yöntem, HTTP/GET ile işlem sonuçlarının iletileceği bir web sayfası hazırlanmasıdır. Wirecard sistemi tarafından bu sayfa çağırılarak, gerekli parametreler iletilir.
  • Üçüncü yöntem, üye işyeri tarafından bir web servis hazırlanmasıdır. Wirecard sistemi bu web servisin ilgili metodunu çağırarak işlem sonuçlarını iletir.

Tüm yöntemlerde ilgili e-mail adresi/sayfa adresi/web servis adresi integration@3pay.com adresine bildirilmelidir. İşlem Sonuç Servisi’ne bağlanacak IP’lerin güvenlik önlemi amacıyla kısıtlanması istenirse, Wirecard'ın kullanacağı IP adresleri aşağıdaki gibidir:

  • 46.34.90.215
  • 46.34.90.216
  • 212.154.83.11

Email Yöntemi

Üye İşyeri ÜYE_İŞYERİ_NO ÜYE_İŞYERİ_ADI
Gsm 5XXXXXXXXX (Operatör Adı)
İşlem Tarihi GG.AA.YYYY SS:DD:SS
Fiyat XX,XX TL
Durum İşlem Başarılı/İşlem Başarısız
Satış Kanalı Satış Kanalı İsmi
Satış Türü Tekil Satış/Haftalık Abonelik/Aylık Abonelik
Satılan Ürün Ürün İsmi
Pin (Pin gönderiliyorsa, gönderilen pin)
Gelen SMS Müşterinin Gönderdiği SMS İçeriği
Hata Kodu 1000
Hata Mesajı Islem Basarili

Web Sayfası Yöntemi

Üye İşyeri tarafından hazırlanan web sayfasının parametreleri aşağıdaki gibi olmalıdır:
        
        http://www.websitesi.com/servissayfasi.php
        ?order=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
        &gsm=5XXXXXXXXX
        &status=0
        &state=100
        &date=14.03.2012+17%3a11%3a59
        &errorcode=1000
        &errormsg=Islem+Basarili
        &price=2,49
        &sms=EVET
        &category=2
        &saletype=1
        &subscriber=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
        &operator=1
        &gsmtype=1
        &productid=1
        &productdesc=Your+product+desc
        &mpay=XXXXX
        &channel=XXX
        
        

Bu Http Parametrelerinin anlamları aşağıdaki gibidir.

state Ödemenin sonucunu belirtir.
100 başarılı işlem sonucunu belirtir.
100’den büyük değerler işlemin başarısız olduğunu belirtir.
order İşlemin ID’sini belirtir.
gsm İşlemin yapıldığı GSM numarasını belirtir
status Sipariş durum kodunu belirtir. ‘0’ dönerse siparişin başarılı bir şekilde oluşturulduğunu belirtir. Ödemenin başarılı olduğu anlamına gelmez.
date İşlem tarihini bulundurmaktadır.
errorcode Sipariş hata kodunu belirtir. Operatör tarafından gönderilir. Siparişe ait ödemenin hata kodudur.
errormsg Sipariş hata açıklamasını belirtir. İlgili hata koduna ait açıklama. Siparişe ait ödemenin hata açıklamasıdır.
price İşlemin toplam tutarı
sms Gönderilen SMS’in içeriğini belirtir
category Sipariş ile ilgili ürünün/servisin kategorisi
saletype Ödeme yöntemi:
- ‘1’ Tek çekim
- ‘2’ Aylık abonelik (iletilen miktar her ay otomatik çekilir)
- ‘3’ Haftalık abonelik (iletilen miktar her hafta otomatik çekilir)
- ‘4’ 2 haftalık abonelik
- ‘5’ 3 aylık abonelik
- ‘6’ 6 aylık abonelik
- ‘7’ aylık denemeli (ilk ay ücretlendirme yapılmaz)
- ‘8’ haftalık denemeli (ilk hafta ücretlendirme yapılmaz)
- ‘9’ 2 haftalık denemeli (ilk 2 hafta ücretlendirme yapılmaz)
- ‘10’ 3 aylık denemeli
- ‘11’ 6 aylık denemeli
- ‘13’ 30 günlük
subscriber Yapılan işlem bir abonelik işlemi ise, bu aboneliğin idsini belirtir. Aboneliğin tüm periyodik ödemelerinin işlemlerinde aynı SubscriberId gönderilir. Abonelikli olmayan işlemlerde ‘00000000-0000-0000-0000-000000000000’ gönderilir.
operator Siparişi oluşturan numaranın GSM operatörü:
- ‘1’ Turkcell
- ‘7’ Vodafone
- ‘3’ AVEA
- ‘4’ Kredi Kartı
- ‘20’ TTNET
gsmtype Siparişi oluşturan numaranın GSM türü:
- ‘0’ Bilinmiyor
- ‘1’ PostPaid
- ‘2’ PrePaid
productid Ürün ID’si.
productdesc Ürünün açıklaması
mpay Yapılan işlem başlatılırken iletilen, üye işyeri tarafından tanımlanan Id. (abonelik işlemlerindeki dönemsel ödemelerde mpay gönderilmez.)
channel Mobil Ödeme işleminin gerçekleştiği kanal:
- ‘100’ Pro API
- ‘101’ Basic API
- ‘102’ SMS
- ‘103’ Direct API
- ‘104’ API Plus
- ‘111’ Abonelik yenilemesi

Mobil Web Servis Yöntemi

İşlem sonuçlarının Wirecard tarafından gönderilmesi için üye işyeri tarafından bir web servis geliştirilmelidir. Bu web servis "ReceiveOrderResult" adlı bir metoda sahip olmalıdır.

Servis Girdi Parametreleri

Servis içinde ileticek Girdi (Input) Parametreleri
Parametre Adı Veri Tipi Açıklama
Input Input Sınıfı

Input Bilgileri. Aşağıdaki İç tabloda iç parametreleri anlatılmıştır.

Input Bilgileri
Parametre Adı Veri Tipi Açıklama
OrderObjectId Guid

İşlemin Id'sini belirtir.

GSM string

İşlemin yapıldığı GSM numarasını belirtir.

MPAY string

Yapılan işlem başlatılırken iletilen, üye işyeri tarafından tanımlanan Id. (abonelik işlemlerindeki dönemsel ödemelerde mpay gönderilmez)

SMSContent string

Gönderilen SMS’in içeriğini belirtir.

TotalPrice double

İşlemin toplam tutarı

TotalUnitPrice double

İşlemin toplam kontör tutarı

State int

İşlemin sonucunu belirtir.
100 başarılı işlem sonucunu belirtir.
100’den büyük değerler işlemin başarısız olduğunu belirtir.

StatusCode int

Sipariş durum kodunu belirtir. ‘0’ dönerse siparişin başarılı bir şekilde oluşturulduğunu belirtir. Ödemenin başarılı olduğu anlamına gelmez.

ErrorCode string

Sipariş hata kodunu belirtir. Operatör tarafından gönderilir. Siparişe ait ödemenin hata kodudur.

ErrorMessage string

Sipariş hata açıklamasını belirtir. İlgili hata koduna ait açıklama. Siparişe ait ödemenin hata açıklamasıdır.

PaymentDateTime DateTime

İşlem tarihini bulundurmaktadır.

GsmOperator int

Siparişi oluşturan numaranın GSM operatörü
‘1’ Turkcell
‘7’ Vodafone
‘3’ AVEA
‘4’ Kredi Kartı

GsmType int

Siparişi oluşturan numaranın GSM türü
‘0’ Bilinmiyor
‘1’ PostPaid
‘2’ PrePaid

SubscriberId Guid

Yapılan işlem bir abonelik işlemi ise, bu aboneliğin idsini belirtir. Aboneliğin tüm periyodik ödemelerinin işlemlerinde aynı SubscriberId gönderilir.

Products CSaleProduct

CSaleProduct Bilgileri. Aşağıdaki İç tabloda iç parametreleri anlatılmıştır.

OrderChannelId int

Mobil Ödeme işleminin gerçekleştiği kanal:
‘100’ Pro API
‘101’ Basic API
‘102’ SMS
‘103’ Direct API
‘104’ API Plus
‘111’ Subscription renewal

PaymentTypeId int

Ödeme yöntemi:
‘1’ Tek çekim
‘2’ Aylık abonelik (iletilen miktar her ay otomatik çekilir)
‘3’ Haftalık abonelik (iletilen miktar her hafta otomatik çekilir)
‘4’ 2 haftalık abonelik
‘5’ 3 aylık abonelik
‘6’ 6 aylık abonelik
‘7’ aylık denemeli (ilk ay ücretlendirme yapılmaz)
‘8’ haftalık denemeli (ilk hafta ücretlendirme yapılmaz)
‘9’ 2 haftalık denemeli (ilk 2 hafta ücretlendirme yapılmaz)
‘10’ 3 aylık denemeli
‘11’ 6 aylık denemeli
‘13’ 30 günlük

PaymentCategoryId int

Sipariş kategorisi:
‘1’ Fiziksel Ürün
‘2’ Oyun
‘3’ Dijital İçerik
‘4’ Servis
‘5’ Sosyal Ağ/Arkadaşlık
‘6’ Aidat/Otomat
‘7’ Bahis
‘8’ Sigorta
‘10’ Kamu - bilet - fastfood
‘11’ Cep Sigorta
‘12’ Kutu Oyun
‘14’ Mobil Uygulama / Mobil Market
‘15’ Eğitim
‘16’ Bağış
‘19’ Sağlık
‘20’ White Label Adult

Pin string

Pinli kurgu kullanılıyorsa kullanıcıya gönderilen PIN değerini belirtir.

CSaleProduct Bilgileri
Parametre Adı Veri Tipi Açıklama
ProductId int

Daima ‘0’ olarak iletilmelidir.

ProductCategory int

Sipariş ile ilgili ürünün/hizmetin kategorisi:

  • ‘1’ Fiziksel Ürün
  • ‘2’ Oyun
  • ‘3’ Dijital İçerik
  • ‘4’ Servis
  • ‘5’ Sosyal Ağ/Arkadaşlık
  • ‘6’ Aidat/Otomat
  • ‘7’ Bahis
  • ‘8’ Sigorta
  • ‘10’ Kamu - bilet - fastfood
  • ‘11’ Cep Sigorta
  • ‘12’ Kutu Oyun
  • ‘14’ Mobil Uygulama / Mobil Market
  • ‘15’ Eğitim
  • ‘16’ Bağış (sadece Turkcell aboneleri bağış ödemesi yapabilir)
  • ‘19’ Sağlık
  • ‘20’ White Label Adult

ProductDescription string

Ürünün açıklaması

BasePrice double

Ürünün fiyatı

BaseUnitPrice double

Ürünün kontör miktarı

Unit int

Ürün adedi

"ReceiveOrderResult" metodu çağırıldığında, aşağıdaki gibi bir XML değerini Wirecard'a response olarak dönmelidir.
CReceiveOrderResultOutput Bilgileri
Parametre Adı Veri Tipi Açıklama
StatusCode int

İşlem Sonuç bilgisi iletim durumunu belirtir.
‘0’ gönderilirse İşlem Sonuç bilgisinin alındığını belirtir.
‘1’ gönderilirse İşlem Sonuç bilgisinin alınmadığını belirtir.

ErrorCode string

İşlem Sonuç bilgisi iletiminde hata oluştuğu durumda(StatusCode=1) açıklayıcı bir değer gönderilir. İşlem Sonuç bilgisi iletimi başarılı olduğunda boş gönderilir.

ErrorMessage string

İşlem Sonuç bilgisi iletiminin açıklama mesajı,
İşlem Sonuç bilgisi iletimi başarılı ise ‘Message Received Successfully.’ şeklinde gönderilir.
İşlem Sonuç bilgisi iletimi başarısız ise ilgili exception içeriği veya açıklayıcı bir hata mesajı gönderilir.

Kredi Kartı Sonuç Servisi

Kredi Kartı sonuç servisi, WIRECARD ile satıcı arasında bir bildirim köprüsü olarak kullanılır.
Kredi Kartı sonuç servisi, Wirecard'ın kredi kartı işlemlerinin birçoğuyla ilgili bilgileri SOAP tabanlı bir web servisi aracılığıyla üye işyeri ile paylaşmasına izin verir. Bu web servis Wirecard tarafından belirlenen standartlara göre satıcı tarafından hazırlanmalıdır. Bu web servis "ReceiveTransactionResult " adlı bir metoda sahip olmalıdır.

Servis Girdi Parametreleri

Servis içinde ileticek Girdi (Input) Parametreleri
Parametre Adı Veri Tipi Açıklama
input Input Sınıfı

Input Bilgileri. Aşağıdaki İç tabloda iç parametreleri anlatılmıştır.

Input Bilgileri
Parametre Adı Veri Tipi Zorunluluk Açıklama
StatusCode Int Evet

İşlem Sonucu.
0 Başarılı İşlem
1 Başarısız İşlem

ResultCode String Hayır

Wirecard sonuç kodunun açıklaması

ResultMessage String Hayır

Wirecard işlem açıklaması

OrderId String Evet

Ödeme işleminin benzersiz numarası.
Bu değer wirecard servisleri tarafından otomatik olarak gönderilir.

MPAY String Hayır

Ödeme işleminde gönderilen değer aynen buraya tekrardan yansıyacaktır.

Price Double Evet

Tahsil Edilen Ücret.

Transaction Date Datetime Evet

Ödeme işleminin tarih ve saati

ServiceTypeCode String Hayır

İşlemin gerçekleştiği servisin türü.
Örneğin: CCProxy/Sale türü için "CCProxy" olmalıdır

TransactionTypeCode String Hayır

Gerçekleşen işlemin servis türü.
Örneğin: CCProxy/Sale işlemi için "Sale" olmalıdır.

ExtraParam String Hayır

İşlem ile ilgili ek parametreleri ifade eder.
Bu alan boş geçilebilir.

"ReceiveOrderResult" metodu çağırıldığında, aşağıdaki gibi bir XML değerini Wirecard'a response olarak dönmelidir.
ReceiveTransactionResultResult Bilgileri
Parametre Adı Veri Tipi Açıklama
StatusCode int

İşlem Sonuç bilgisi iletim durumunu belirtir.
‘0’ gönderilirse İşlem Sonuç bilgisinin alındığını belirtir.
‘1’ gönderilirse İşlem Sonuç bilgisinin alınmadığını belirtir.

ResultCode string

Üye işyeri tarafından belirlenen isteğe bağlı sonuç kodu

ResultMessage string

Üye işyeri tarafından belirlenen işlem sonuç mesajı

Web Sayfası Yöntemi

Üye İşyeri tarafından hazırlanan web sayfasının parametreleri aşağıdaki gibi olmalıdır:
Copy        
        http://www.websitesi.com/servissayfasi.php ?subscriptionid=a6fb0e3c-e30c-4ace-8ffe-b03d492ba7f1
        &msisdn=5321112233
        &gsmoperator=Turkcell
        &createdate=05.09.2014+14%3a30%3a57
        &enddate=05.09.2014+14%3a30%3a57
        &productid=0
        &price=1

            
        

Bu Http Parametrelerinin anlamları aşağıdaki gibidir.

gsmoperator Aboneliğin ait olduğu operatör
Değerleri Turkcell, AVEA, VodafoneMobilePayment olmak zorundadır.
subscriptionid Wirecard tarafında oluşturulan aboneliğin unique değeri
msisdn Aboneliğin ait olduğu telefon numarası/kredi kartı
createdate Aboneliğin oluşturulma tarihi
enddate Aboneliğin sonlanma tarihi
productid Eğer ürün bazlı bir abonelik kurgusu kullanıldıysa ilgili ürünün Wirecard tarafında tutulan unique değeri
price Aboneliğin tutarı

İşlem Sorgulama

İşlem Sorgulama, Müşterilerin tek adımda sistemde yapılan işlemleri "Sipariş Numarası" veya "MPAY" ile sorgulamasına olanak sağlar.

Sipariş Numarası ile İşlem Sorgulama

Sipariş Numarası ile işlem sorgulama, sisteminizde yapılan işlemlerin karşılığında Wirecard tarafından üretilen "Sipariş Numarası" ile işlem sorgulaması yapmanıza olanak sağlar.

https://www.wirecard.com.tr/services/saleservice.asmx adresindeki web servis, projeye referans olarak eklenir.
Web servis içerisinde bulunan GetSaleResult metoduna Token bilgileri ve OrderId değeri iletilerek sipariş sorgulanabilir.

Servis Girdi Parametreleri

Input Bilgileri
Parametre Adı Veri Tipi Zorunluluk Açıklama
Token Token Sınıfı Evet

Token Bilgileri. Aşağıdaki İç tabloda iç parametreleri anlatılmıştır.

OrderId Guid Evet

Wirecard tarafından işlem için atanan unique değer.

Token Bilgileri
Parametre Adı Veri Tipi Zorunluluk Açıklama
UserCode String Evet

Wirecard tarafından atanan üye iş yeri numarası

Pin String Evet

Wirecard tarafından atanan pin

Servis Çıktı Parametreleri

Parametre Adı Veri Tipi Açıklama
OrderObjectId Guid

Sipariş Id'sini belirtir. İşlemin sonucunu sorgulamak için kullanılır.

Gsm String

Ödemenin yapıldığı telefon numarasını belirtir(5XXXXXXXXX formatında)

GsmOperator Int

Bu değer daima '0'dır. İşlem yapılan operatörü öğrenmek için bir sonraki maddeye bakınız.

GsmType Int

Bu değer daima '0'dır. Hattın faturalı mı yoksa faturasız mı olduğunu öğrenmek için bir sonraki maddeye bakınız.

State Int

İşlem durumunu belirtir. Bu değer nihai değildir. İşlem sonucunu öğrenmek için bir sonraki maddeye bakınız.
100’den küçük değerler ödemenin devam ettiğini belirtir.
100 ödemenin başarıyla sonuçlandığını belirtir.
100’den büyük değerler ödemenin başarısız olduğunu belirtir.

OrderChannelId Int

Bu değer daima ‘104’ olarak dönecektir.

PaymentCategoryId Int

Sipariş ile ilgili ürünün/servisin kategorisi

  • ‘1’ Fiziksel Ürün
  • ‘2’ Oyun
  • ‘3’ Dijital İçerik
  • ‘4’ Servis
  • ‘5’ Sosyal Ağ/Arkadaşlık
  • ‘6’ Aidat/Otomat
  • ‘7’ Bahis
  • ‘8’ Sigorta
  • ‘10’ Kamu - Bilet - Fastfood
  • ‘11’ Cep Sigorta
  • ‘12’ Kutu Oyun
  • ‘14’ Mobil Uygulama / Mobil Market
  • ‘15’ Eğitim
  • ‘16’ Bağış (sadece Turkcell aboneleri bağış ödemesi yapabilir)
  • ‘19’ Sağlık
  • ‘20’ White Label Adult

LastTransactionDate DateTime

Ödeme tarihini belirtir.

MPAY String

Üye iş yeri tanımlı değer.

SubscriberId Guid

Bu değer boş dönecektir. Yapılan işlem bir abonelik işlemi ise bir sonraki maddede anlatılan yöntemle abonelik idsi öğrenilebilir.

PIN String

Bu değer boş dönecektir. Yapılan işlem pinli kurgu ise kullanıcıya gönderilen PIN değerini öğrenmek için bir sonraki maddedeki yöntem kullanılır.

MicroPaymentResults List

İşlem sonuçlanmadığı için bu parametreler boş dönecektir. MMicroPaymentOutput elemanlarını barındıran listeyi temsil eder. MMicroPaymentOutput parametreleri aşağıdaki iç tabloda açıklanmıştır.

StatusCode Int

Sipariş durum kodunu belirtir. ‘0’ dönerse siparişin başarılı bir şekilde başladığını belirtir. Ödemenin başarılı sonuçlandığı anlamına gelmez.

ErrorCode String

Sipariş hata kodunu belirtir. Operatör tarafından gönderilir. Siparişe ait ödemenin hata kodudur.

ErrorMessage String

Sipariş hata açıklamasını belirtir. İlgili hata koduna ait açıklama.

MMicroPaymentOutput Bilgileri
Parametre Adı Veri Tipi
PaymentObjectId Guid
StatusCode Int
ErrorCode String
ErrorMessage String
ExtraData String

Örnek Servis Çağrı Kodları


//Request        
            _getSaleResultOrderService = new SaleServiceSoapClient();
            Core.ApiPlusAndProApiService.MAuthToken token = new Core.ApiPlusAndProApiService.MAuthToken();
            #region Token
            token.UserCode = base.settings.UserCode;
            token.Pin = base.settings.Pin;
            #endregion
            var guid = new Guid(orderId.ToString());
            var response =  _getSaleResultOrderService.GetSaleResult(token, guid);
            return View(response);

//Request        
            com._3pay.services.SaleService service = new com._3pay.services.SaleService();
            com._3pay.services.SaleServiceSoap port = service.getSaleServiceSoap12();
            com._3pay.services.MAuthToken token = new com._3pay.services.MAuthToken();
            token.setUserCode(settings.userCode);
            token.setPin(settings.pin);
            java.lang.String orderId = request.getParameter("orderId");
            com._3pay.services.MSaleOutput result = port.getSaleResult(token, orderId);

//Request
            $token = new Token();
            $token->UserCode =  $settings->UserCode; 
            $token->Pin =  $settings->Pin;
            $orderId=$_POST["orderId"];
            $result = $client->GetSaleResult (array(
                "token" =>  (array) $token,
                "orderId" =>   $orderId
            ));   

//Request       
           input_request=Input()
           input_request.orderId=request.POST.get('orderId') 
           #endregion
           #region Token
           token_request= Token()
           token_request.UserCode=config.UserCode
           token_request.Pin=config.Pin
           #region EndToken 
           req= TransactionQueryByOrderRequest()
           message= req.execute(token_request,input_request) #Soap servis çağrısının başlatıldığı kısım. 
  
//Request
           #region Token
           token= Token.new
           token.UserCode= @settings.UserCode
           token.Pin=@settings.Pin
           #endregion
           req=Transactionrequestorder.new
           transactionrequestorder_result= req.execute(params[:orderId],token) # soap servis çağrısının başladığı kısmı temsil etmektedir.
           doc = REXML::Document.new transactionrequestorder_result # servis sonucunda oluşan cevabın ekranda gösterilmek üzere değişkene eklendiği kısımdır.

//Request 
           const data = ({
               token:{
                   UserCode:settings.userCode,
                   Pin:settings.pin
               },
               orderId:orderId
           })
        
           wirecard.TransactionQueryByOrderId(data).then(requestResult => {
               res.json(requestResult)
           }).catch(err => {
               console.log(err)
           })   


//Request
        <?xml version="1.0" encoding="utf-8" ?>
        <token>
            <UserCode></UserCode>
            <Pin></Pin>
        </token>
        <orderId></orderId>
//Response
        <?xml version="1.0" encoding="utf-8" ?>
        <GetSaleResultResult>
            <OrderObjectId>f2b47e50-51bb-4c40-bc7f-03e639bc1c03</OrderObjectId>
            <Gsm></Gsm>
            <GsmOperator>0</GsmOperator>
            <GsmType>0</GsmType>
            <State>0</State>
            <OrderChannelId>0</OrderChannelId>
            <PaymentCategoryId>0</PaymentCategoryId>
            <LastTransactionDate>2018-01-05T18:11:59.1205384+03:00</LastTransactionDate>
            <MPAY></MPAY>
            <SubscriberId>00000000-0000-0000-0000-000000000000</SubscriberId>
            <PIN></PIN>
            <MicroPaymentResults>
                <MMicroPaymentOutput>
                    <PaymentObjectId></PaymentObjectId>
                    <StatusCode></StatusCode>
                    <ErrorCode></ErrorCode>
                    <ErrorMessage></ErrorMessage>
                    <ExtraData></ExtraData>
                </MMicroPaymentOutput>
            </MicroPaymentResults>
            <StatusCode>0</StatusCode>
            <ErrorCode>M121005</ErrorCode>
            <ErrorMessage>Istek kaydedildi</ErrorMessage>
        </GetSaleResultResult>

MPAY ile İşlem Sorgulama

MPAY ile işlem sorgulama, sisteminizin ürettiği MPAY değeri kullanarak işlem sorgulaması yapmanıza olanak sağlar.

https://www.wirecard.com.tr/services/saleservice.asmx adresindeki web servis, projeye referans olarak eklenir.
Web servis içerisinde bulunan GetSaleResultMPAY metoduna Token bilgileri ve MPAY değeri iletilerek işlem sorgulanabilir.

Servis Girdi Parametreleri

Input Bilgileri
Parametre Adı Veri Tipi Zorunluluk Açıklama
Token Token Sınıfı Evet

Token Bilgileri. Aşağıdaki İç tabloda iç parametreleri anlatılmıştır.

MPAY String Hayır

İşlem sırasında firma tarafından iletilen mpay değerini belirtir.

Token Bilgileri
Parametre Adı Veri Tipi Zorunluluk Açıklama
UserCode String Evet

Wirecard tarafından atanan üye iş yeri numarası

Pin String Evet

Wirecard tarafından atanan pin

Servis Çıktı Parametreleri

Parametre Adı Veri Tipi Açıklama
OrderObjectId Guid

Sipariş Id'sini belirtir. İşlemin sonucunu sorgulamak için kullanılır.

Gsm String

Ödemenin yapıldığı telefon numarasını belirtir(5XXXXXXXXX formatında)

GsmOperator Int

Bu değer daima '0'dır. İşlem yapılan operatörü öğrenmek için bir sonraki maddeye bakınız.

GsmType Int

Bu değer daima '0'dır. Hattın faturalı mı yoksa faturasız mı olduğunu öğrenmek için bir sonraki maddeye bakınız.

State Int

İşlem durumunu belirtir. Bu değer nihai değildir. İşlem sonucunu öğrenmek için bir sonraki maddeye bakınız.
100’den küçük değerler ödemenin devam ettiğini belirtir.
100 ödemenin başarıyla sonuçlandığını belirtir.
100’den büyük değerler ödemenin başarısız olduğunu belirtir.

OrderChannelId Int

Bu değer daima ‘104’ olarak dönecektir.

PaymentCategoryId Int

Sipariş ile ilgili ürünün/servisin kategorisi

  • ‘1’ Fiziksel Ürün
  • ‘2’ Oyun
  • ‘3’ Dijital İçerik
  • ‘4’ Servis
  • ‘5’ Sosyal Ağ/Arkadaşlık
  • ‘6’ Aidat/Otomat
  • ‘7’ Bahis
  • ‘8’ Sigorta
  • ‘10’ Kamu - Bilet - Fastfood
  • ‘11’ Cep Sigorta
  • ‘12’ Kutu Oyun
  • ‘14’ Mobil Uygulama / Mobil Market
  • ‘15’ Eğitim
  • ‘16’ Bağış (sadece Turkcell aboneleri bağış ödemesi yapabilir)
  • ‘19’ Sağlık
  • ‘20’ White Label Adult

LastTransactionDate DateTime

Ödeme tarihini belirtir.

MPAY String

Üye iş yeri tanımlı değer.

SubscriberId Guid

Bu değer boş dönecektir. Yapılan işlem bir abonelik işlemi ise bir sonraki maddede anlatılan yöntemle abonelik idsi öğrenilebilir.

PIN String

Bu değer boş dönecektir. Yapılan işlem pinli kurgu ise kullanıcıya gönderilen PIN değerini öğrenmek için bir sonraki maddedeki yöntem kullanılır.

MicroPaymentResults List

İşlem sonuçlanmadığı için bu parametreler boş dönecektir. MMicroPaymentOutput elemanlarını barındıran listeyi temsil eder. MMicroPaymentOutput parametreleri aşağıdaki iç tabloda açıklanmıştır.

StatusCode Int

Sipariş durum kodunu belirtir. ‘0’ dönerse siparişin başarılı bir şekilde başladığını belirtir. Ödemenin başarılı sonuçlandığı anlamına gelmez.

ErrorCode String

Sipariş hata kodunu belirtir. Operatör tarafından gönderilir. Siparişe ait ödemenin hata kodudur.

ErrorMessage String

Sipariş hata açıklamasını belirtir. İlgili hata koduna ait açıklama.

MMicroPaymentOutput Bilgileri
Parametre Adı Veri Tipi
PaymentObjectId Guid
StatusCode Int
ErrorCode String
ErrorMessage String
ExtraData String

Örnek Servis Çağrı Kodları


//Request
            _getSaleResultMPAYService = new SaleServiceSoapClient();
            Core.ApiPlusAndProApiService.MAuthToken token = new Core.ApiPlusAndProApiService.MAuthToken();
            #region Token
            token.UserCode = base.settings.UserCode;
            token.Pin = base.settings.Pin;
            #endregion
            var response = _getSaleResultMPAYService.GetSaleResultMPAY(token, MPAY);
            return View(response);

//Request
            com._3pay.services.SaleService service = new com._3pay.services.SaleService();
            com._3pay.services.SaleServiceSoap port = service.getSaleServiceSoap12(); 
            com._3pay.services.MAuthToken token = new com._3pay.services.MAuthToken();
            token.setUserCode(settings.userCode);
            token.setPin(settings.pin);
            java.lang.String mpay = request.getParameter("Mpay");
      
            com._3pay.services.MSaleOutput result = port.getSaleResultMPAY(token, mpay);

//Request
            $token = new Token();
            $token->UserCode =  $settings->UserCode; 
            $token->Pin =  $settings->Pin;
            $MPay=$_POST["MPay"];
            $result = $client->GetSaleResultMPAY (array(
                "token" =>  (array) $token,
                "MPAY" =>   $MPay
            ));   

//Request
            input_request=Input()
            input_request.MPAY=request.POST.get('MPAY') 
            #endregion
            #region Token
            token_request= Token()
            token_request.UserCode=config.UserCode
            token_request.Pin=config.Pin
            #region EndToken 
            req= TransactionQueryByMPAYRequest()
            message= req.execute(token_request,input_request) #Soap servis çağrısının başlatıldığı kısım. 
  
//Request
            #region Token
            token= Token.new
            token.UserCode= @settings.UserCode
            token.Pin=@settings.Pin
            #endregion
            req=Transactionrequestbympay.new
            transactionrequestbympay_result= req.execute(params[:mpay],token) # soap servis çağrısının başladığı kısmı temsil etmektedir.

//Request
            const data = ({
                token:{
                     UserCode:settings.userCode,
                     Pin:settings.pin
                },
                MPay:MPay
            })
        
            wirecard.TransactionQueryByMPAY(req.body).then(requestResult => {
                res.json(requestResult)
            }).catch(err => {
                console.log(err)
            })


//Request
            <?xml version="1.0" encoding="utf-8" ?>
            <token>
                <UserCode></UserCode>
                <Pin></Pin>
            </token>
            <MPAY></MPAY>
//Response
            <?xml version="1.0" encoding="utf-8" ?>
            <GetSaleResultMPAYResult>
                <OrderObjectId>f2b47e50-51bb-4c40-bc7f-03e639bc1c03</OrderObjectId>
                <Gsm></Gsm>
                <GsmOperator>0</GsmOperator>
                <GsmType>0</GsmType>
                <State>0</State>
                <OrderChannelId>0</OrderChannelId>
                <PaymentCategoryId>0</PaymentCategoryId>
                <LastTransactionDate>2018-01-05T18:11:59.1205384+03:00</LastTransactionDate>
                <MPAY></MPAY>
                <SubscriberId>00000000-0000-0000-0000-000000000000</SubscriberId>
                <PIN></PIN>
                <MicroPaymentResults>
                    <MMicroPaymentOutput>
                        <PaymentObjectId></PaymentObjectId>
                        <StatusCode></StatusCode>
                        <ErrorCode></ErrorCode>
                        <ErrorMessage></ErrorMessage>
                        <ExtraData></ExtraData>
                    </MMicroPaymentOutput>
                </MicroPaymentResults>
                <StatusCode>0</StatusCode>
                <ErrorCode>M121005</ErrorCode>
                <ErrorMessage>Istek kaydedildi</ErrorMessage>
            </GetSaleResultMPAYResult>

Web Servis Yöntemi

Abonelik İşlem bildirimlerinin Wirecard tarafından gönderilmesi için üye işyeri tarafından bir web servis geliştirilmelidir. Bu web servis "SubscriptionDeactivation" adlı bir metoda sahip olmalıdır.

Servis Girdi Parametreleri

Servis içinde ileticek Girdi (Input) Parametreleri
Input Bilgileri
Parametre Adı Veri Tipi Açıklama
SubscriptionId Guid

Wirecard tarafında oluşturulan aboneliğin unique değeri

GSM string

Aboneliğin ait olduğu telefon numarası/kredi kartı

GSMOperator string

Aboneliğin ait olduğu operatör

CreateDate dateTime

Aboneliğin oluşturulma tarihi

EndDate datetime

Aboneliğin sonlanma tarihi

ProductId int

Eğer ürün bazlı bir abonelik kurgusu kullanıldıysa ilgili ürünün Wirecard tarafında tutulan unique değeri

Price int

Aboneliğin tutarı

İade Servisi

İade servisi, Wirecard üzerinden tahsil edilen bir ödemenin geri iade edilmek istenildiği zaman kullanılacak servistir. İade isteği OrderObjectId veya MPAY değerleri kullanılarak iletilir. Eğer iki değer de dolu gönderilirse OrderObjectId önceliklendirilir.

İade Servisi RESTful Servisi için gerekli bilgiler XML formatında hazırlanarak aşağıdaki adrese Post yöntemi ile iletilmelidir.
https://www.wirecard.com.tr/SGate/Gate

Servis Girdi Parametreleri

Input Bilgileri
Parametre Adı Veri Tipi Açıklama
ServiceType string

Sabit değer: "WDRefundService"

OperationType string

Sabit değer: "RefundPayment"

Token Token Sınıfı

Token Bilgileri. Aşağıdaki İç tabloda iç parametreleri anlatılmıştır.

MPAY string

Yapılan işlem başlatılırken iletilen, üye işyeri tarafından tanımlanan Id. Bu değer sistemde bulunan sipariş numarası veya müşteri numarası olabilir.

OrderObjectId Guid

Ödemenin ait olduğu siparişin Id'sini belirtir. Bu değer işlem sonucunda cevap olarak tarafınıza iletilir.

Description string

Geri İade işlemine ait açıklama metni. Bu alan boş olarak gönderilebilir.

Token Bilgileri
Parametre Adı Veri Tipi Açıklama
UserCode String

Wirecard tarafından atanan üye iş yeri numarası

Pin string

Wirecard tarafından atanan pin

Servis Çıktı Parametreleri

Parametre Adı Veri Tipi Açıklama
StatusCode Int

İşlem sonucu
0: İşlem başarılı
1: İşlem başarısız

ResultCode String

Geri İade işlem sonucunun Wirecard tarafından belirlenmiş kodu

ResultMessage String

Geri İade işlemi ResultCode değerinin açıklaması.

Örnek Servis Çağrı Kodları

 

//Request 
        <?xml version="1.0" encoding="utf-8" ?>
        <WIRECARD>
        <ServiceType>WDRefundService</ServiceType>
        <OperationType>RefundPayment</OperationType>
        <Token>
           <UserCode></UserCode>
           <Pin></Pin>
        </Token>
        <MPAY>Üye işyeri tarafından belirlenen  değer.</MPAY>
        <OrderObjectId>İşlem sonucunda verilen benzersiz işlem id'si.</OrderObjectId>
        <Description>İade Açıklaması</Description>
        </WIRECARD>
//Response
        <?xml version="1.0" encoding="UTF-8" ?>
        <Result>
            <Item Key="StatusCode" Value="" />
            <Item Key="ResultCode" Value=" " />
            <Item Key="ResultMessage" Value=" " />
    
        </Result>
                    

Kart Saklama Servisi

Kart saklama servisi, gönderilen Kredi Kartı bilgilerini şifreli halde saklamak için kullanılan servistir.

Kart saklama servisi RESTful Servisi için gerekli bilgiler XML formatında hazırlanarak aşağıdaki adrese Post yöntemi ile iletilmelidir.
https://www.wirecard.com.tr/SGate/Gate

Url Yöntemi ile Kart Saklama

Url Yöntemi ile kart saklama metodu ile kredi kartı saklama işlemi servis çağrısı başlatılır ve bu çağrının cevabında son kullanıcıya yönlendirileceği bir Wirecard sayfası karşısına çıkar. Yönlendirilen Wirecard sayfasında kullanıcı Kredi kartı bilgilerini girerek kart saklama işlemini tamamlar.

Servis Girdi Parametreleri

Input Bilgileri
Parametre Adı Veri Tipi Zorunluluk Açıklama
ServiceType string Evet

Sabit değer: "WDTicket"

OperationType string Evet

Sabit değer: "TokenizeCCURL"

Token Token Sınıfı Evet

Token Bilgileri. Aşağıdaki İç tabloda iç parametreleri anlatılmıştır.

ErrorURL string Evet

Kredi kartı kayıt işlemi başarısız olduğunda son kullanıcının yönlendirileceği sayfa

SuccessURL string Evet

Kredi kartı kayıt işlemi başarılı olduğunda son kullanıcının yönlendirileceği sayfa

CustomerId string Hayır

Bu alan kredi kartıyla sizin istediğiniz degerler arasında iletisim kurulması için kullanılır. Kredi kartıyla fatura ödemesi, kredi kartıyla sipariş numarasında eşleşme için yada boş gönderilebilir.

IPAddress string Evet

İşlem sahibine ait IP adresi

ValidityPeriod string Evet

Tokenize edilen sifreli kartın geçerlilik suresi

Token Bilgileri
Parametre Adı Veri Tipi Zorunluluk Açıklama
UserCode String Evet

Wirecard tarafından atanan üye iş yeri numarası

Pin String Evet

Wirecard tarafından atanan pin

Örnek Servis Çağrı Kodları


    //Request
            var request = new TokenizeCCURLRequest();

            request.ServiceType = "WDTicket";
            request.OperationType = "TokenizeCCURL";
            request.SuccessURL = "http://localhost:7597/Home/CardTokenizeSuccess";
            request.ErrorURL = "http://localhost:7597/Home/CardTokenizeFail";
            request.CustomerId = customerId;
            request.IPAddress = "";
            request.ValidityPeriod = "20";

            #region Token
            request.Token = new Token();
            request.Token.UserCode = settings.UserCode;
            request.Token.Pin = settings.Pin;
            #endregion

            var response = TokenizeCCURLRequest.Execute(request, settings);

//Request              
               TokenizeCCURLRequest tokenizeCcUrl = new TokenizeCCURLRequest();  
                
                tokenizeCcUrl.ServiceType = "WDTicket";
                tokenizeCcUrl.OperationType = "TokenizeCCURL";
                tokenizeCcUrl.ErrorURL = "http://localhost:8084/wirecard-java/tokenizeerror.htm";
                tokenizeCcUrl.SuccessURL = "http://localhost:8084/wirecard-java/tokenizesuccess.htm";
                tokenizeCcUrl.CustomerId = request.getParameter("customerId"); 
                tokenizeCcUrl.IPAddress = "";
                tokenizeCcUrl.ValidityPeriod = 20;
                tokenizeCcUrl.Token = new Token();
                tokenizeCcUrl.Token.UserCode = settings.userCode;
                tokenizeCcUrl.Token.Pin = settings.pin;
                String tokenizeCcUrlResponse = tokenizeCcUrl.execute(tokenizeCcUrl,settings); //"Url yöntemi ile kart saklama servisi başlatılması için gerekli servis çağırısını temsil eder."


    //Request
         $settings=new Settings();
         $request = new TokenizeCCURLRequest();
         $request->ServiceType = "WDTicket";
         $request->OperationType = "TokenizeCCURL";
         $request->CustomerId = $_POST["customerId"];
         $request->IPAddress = "";
         $request->ValidityPeriod = "20";
         $request->ErrorURL = "http://localhost:5000/cardTokenizeSuccess.php";
         $request->SuccessURL = "http://localhost:5000/cardTokenizeFail.php";
         $request->Token= new Token();
         $request->Token->UserCode=$settings->UserCode;
         $request->Token->Pin=$settings->Pin;
         $request->BaseUrl = $settings->BaseUrl;

         $response = TokenizeCCURLRequest::execute($request); //TokenizeCCURL servisi başlatılması için gerekli servis çağırısını temsil eder.

//Request
        req=TokenizeCCURLRequest()
        req.ServiceType = "WDTicket"
        req.OperationType = "TokenizeCCURL"
        req.CustomerId =request.POST.get('customerId') 
        req.ValidityPeriod = "20"
        req.IPAddress = ""
        req.ErrorURL = "http://127.0.0.1:8000/tokenizefail/"
        req.SuccessURL = "http://127.0.0.1:8000/tokenizesuccess/"
      
        #region Token
        req.Token=Token()
        req.Token.UserCode=config.UserCode
        req.Token.Pin=config.Pin
        #endregion 
        message = req.execute(req,config) # Xml servis çağrısının başlatıldığı kısım

//Request
            req= Subscriberchangeprice.new
            req.ServiceType = "SubscriberManagementService"
            req.OperationType = "ChangePriceBySubscriber"
            req.Description = "Odeme Degistirme"
            req.Price=params[:price] 
            req.SubscriberId=params[:subscriberId] 
            req.ValidFrom=validFrom
            #region Token
            req.Token = Token.new
            req.Token.UserCode = @settings.UserCode
            req.Token.Pin = @settings.Pin 
            #endregion
          
            returnData= req.execute(req,@settings) # xml servis çağrısının başladığı kısım
                   
//Request
        const data={
         "ServiceType": request.ServiceType,
            "OperationType": request.OperationType,
            "Token": {
                "UserCode":settings.userCode,
                "Pin": settings.pin
            },
            "CustomerId": request.CustomerId,
            "IPAddress": request.IPAddress,
            "ValidityPeriod": request.ValidityPeriod,
            "ErrorURL": request.ErrorURL,
            "SuccessURL": request.SuccessURL
        }
                 
        wirecard.UrlCCTokenize(data).then(requestResult => {
            res.json(requestResult)
        }).catch(err => {
            console.log(err)
        })
 

//Request 
        <?xml version="1.0" encoding="utf-8" ?>
        <WIRECARD>
            <ServiceType> WDTicket </ServiceType>
        <OperationType>TokenizeCCURL</OperationType>
        <Token>
            <UserCode></UserCode>
            <Pin></Pin>
        </Token>
        <CustomerId>string</CustomerId>
        <ValidityPeriod>int</ValidityPeriod>
        <ErrorURL>string</ErrorURL>
        <SuccessURL>string</SuccessURL>
        </WIRECARD>
//Response
    <?xml version="1.0" encoding="UTF-8" ?>
        <Result>
        <Item Key="StatusCode" Value="" />
        <Item Key="ResultCode" Value="" />
        <Item Key="ResultMessage" Value=" " />
        <Item Key="RedirectUrl" Value=" " />
        </Result>
                    

Servis Çıktı Parametreleri

Parametre Adı Veri Tipi Açıklama
StatusCode int

işlem sonucu
0: İşlem başarılı
1: İşlem başarısız

ResultCode string

Wirecard sonuç kodu

ResultMessage string

Wirecard sonuç açıklaması

RedirectUrl string

Kredi kartı kaydetme işlemi için son kullanıcının yönlendirileceği Wirecard sayfası

Direk Kart Saklama Yöntemi

Direk kart saklama yöntemi ile üye işyeri tarafından hazırlanan form yardımı ile Kredi kartı bilgileri girilerek, servis çağrısı başlatılır. Son kullanıcı herhangi bir sayfaya yönlendirilmez.

Servis Girdi Parametreleri

Input Bilgileri
Parametre Adı Veri Tipi Zorunluluk Açıklama
ServiceType string Evet

Sabit değer: "TokenizeCC"

OperationType string Evet

Sabit değer: "TokenizeCC"

Token Token Sınıfı Evet

Token Bilgileri. Aşağıdaki İç tabloda iç parametreleri anlatılmıştır.

CreditCardNumber string Evet

Kredi kartı numarası. Kredi kartı formatı seklinde olabilir ‘5400XXXXXXXXXXXX’

NameSurname string Evet

Kredi kartı isim soyisim. Kredi kartı isim soyisim formatı "John Doe" yada "JOHN DOE" şeklinde olabilir.

ExpiryDate int Evet

Kredi kartı son kullanım tarihi. Kredi kartı son kullanım tarihi formatı 11/2017

CVV int Evet

Kredi kartın cvvsi. Kredi kartının cvv değeri.

CustomerId string Hayır

Bu alan kredi kartıyla sizin istediğiniz degerler arasında iletisim kurulması için kullanılır. Kredi kartıyla fatura ödemesi, kredi kartıyla sipariş numarasında eşleşme için yada boş gönderilebilir.

IPAddress string Evet

İşlem sahibine ait IP adresi

ValidityPeriod string Evet

Tokenize edilen sifreli kartın geçerlilik suresi

Port string Evet

İşlem sahibine ait port değeri

Token Bilgileri
Parametre Adı Veri Tipi Zorunluluk Açıklama
UserCode String Evet

Wirecard tarafından atanan üye iş yeri numarası

Pin String Evet

Wirecard tarafından atanan pin

Servis Çıktı Parametreleri

Parametre Adı Veri Tipi Açıklama
StatusCode int

işlem sonucu
0: İşlem başarılı
1: İşlem başarısız

ResultCode string

Wirecard sonuç kodu

ResultMessage string

Wirecard sonuç açıklaması

TokenId string

Wirecard tarafından işlem sonucunda gönderilen değer

CVV int

Kredi kartının CVV değeri.

CustomerId string

Wirecard tarafından müşteri için belirlenen değer

MaskedCreditCardNumber string

Kredi Kartı numarasının maskelenmiş değeri.

Örnek Servis Çağrı Kodları


    //Request
            var request = new TokenizeCCRequest();
            request.ServiceType = "CCTokenizationService";
            request.OperationType = "TokenizeCC";
            request.CustomerId = customerId;
            request.CreditCardNumber = creditCardNo;
            request.NameSurname = ownerName;
            request.ExpiryDate = expireMonth + "/" + expireYear;
            request.CVV = cvv;
            request.Port = "";
            request.IPAddress = "";
            request.ValidityPeriod = "20";

            #region Token
            request.Token = new Token();
            request.Token.UserCode = settings.UserCode;
            request.Token.Pin = settings.Pin;
            #endregion

            var response = TokenizeCCRequest.Execute(request, settings);

//Request              
                TokenizeCCRequest tokenizeCcUrl = new TokenizeCCRequest();  
                
                tokenizeCcUrl.ServiceType = "CCTokenizationService";
                tokenizeCcUrl.OperationType = "TokenizeCC";
                
                tokenizeCcUrl.CreditCardNumber = request.getParameter("creditCardNo"); 
                tokenizeCcUrl.NameSurname =request.getParameter("ownerName"); 
                tokenizeCcUrl.ExpiryDate =request.getParameter("expireMonth") +"/"+ request.getParameter("expireYear");
                tokenizeCcUrl.CustomerId = request.getParameter("customerId"); 
                tokenizeCcUrl.CVV = request.getParameter("cvv"); 
                tokenizeCcUrl.IPAddress = "";
                tokenizeCcUrl.ValidityPeriod = 20;
                
                tokenizeCcUrl.Token = new Token();
                tokenizeCcUrl.Token.UserCode = settings.userCode;
                tokenizeCcUrl.Token.Pin = settings.pin;
                
                String tokenizeCcUrlResponse = tokenizeCcUrl.execute(tokenizeCcUrl,settings); //"Direk Kart Saklama yöntemi ile kart saklama servisi başlatılması için gerekli servis çağırısını temsil eder."
	tring subScriberChangePriceResponse = subScriberChangePrice.execute(subScriberChangePrice,settings); //"Abonelik ücreti güncelleme servisi başlatılması için gerekli servis çağırısını temsil eder."

//Request
    $request = new TokenizeCCRequest();
	$request->ServiceType = "CCTokenizationService";
    $request->OperationType = "TokenizeCC";

    $request->CustomerId = $_POST["customerId"];
    $request->CreditCardNumber =$_POST["creditCardNo"] ;
    $request->NameSurname =$_POST["ownerName"];
    $request->ExpiryDate =$expiryDates;
    $request->CVV = $_POST["cvv"];;
    $request->Port = "";
    $request->IPAddress = "";
    $request->ValidityPeriod = "20";
    $request->Token= new Token();
    $request->Token->UserCode=$settings->UserCode;
    $request->Token->Pin=$settings->Pin;
    $request->BaseUrl = $settings->BaseUrl;
    $response = TokenizeCCRequest::execute($request); //TokenizeCC servisi başlatılması için gerekli servis çağırısını temsil eder.

//Request
        req=TokenizeCCRequest()
        req.ServiceType = "CCTokenizationService"
        req.OperationType = "TokenizeCC"
        req.CreditCardNumber=request.POST.get('creditCardNo')
        req.NameSurname=request.POST.get('ownerName')
        req.ExpiryDate=request.POST.get('expireMonth') +"/"+request.POST.get('expireYear')
        req.CVV=request.POST.get('cvv')
        req.CustomerId =request.POST.get('customerId') 
        req.ValidityPeriod = "20"
        req.IPAddress = ""
        req.Port=""
        
        #region Token
        req.Token=Token()
        req.Token.UserCode=config.UserCode
        req.Token.Pin=config.Pin
        #endregion 
        message = req.execute(req,config) # Xml servis çağrısının başlatıldığı kısım

//Request
        req= Tokenizeccrequest.new
        req.ServiceType = "CCTokenizationService"
        req.OperationType = "TokenizeCC"
        req.CreditCardNumber=params[:creditCardNo]
        req.NameSurname=params[:ownerName]
        req.ExpiryDate=params[:expireMonth] +"/"+params[:expireYear]
        req.CVV=params[:cvv]
        req.CustomerId = params[:customerId]
        req.ValidityPeriod = "10"
        req.IPAddress = ""
        req.Port = ""
        
        #region Token
        req.Token = Token.new
        req.Token.UserCode = @settings.UserCode
        req.Token.Pin = @settings.Pin 
        #endregion

       returnData= req.execute(req,@settings) # xml servis çağrısının başladığı kısım
                   
//Request
       const data={
          "ServiceType": request.ServiceType,
            "OperationType": request.OperationType,
            "Token": {
                "UserCode":settings.userCode,
                "Pin": settings.pin
            },
            "CustomerId": request.CustomerId,
            "CreditCardNumber":request.CreditCardNumber,
            "NameSurname":request.NameSurname,
            "ExpiryDate":request.ExpiryDate,
            "CVV":request.CVV,
            "Port":request.Port,
            "IPAddress": request.IPAddress,
            "ValidityPeriod": request.ValidityPeriod,
        }
                 
        wirecard.CCTokenize(data).then(requestResult => {
            res.json(requestResult)
        }).catch(err => {
            console.log(err)
        })
                 
     
 

//Request 
    <?xml version="1.0" encoding="utf-8" ?>

    <WIRECARD>
    <ServiceType>CCTokenizationService</ServiceType>
    <OperationType>TokenizeCC</OperationType>
    <Token>
    <UserCode></UserCode>
    <Pin></Pin>
        </Token>
    <CreditCardNumber></CreditCardNumber>
    <NameSurname> </NameSurname>
    <ExpiryDate></ExpiryDate>
    <CVV></CVV>
    <CustomerId></CustomerId>
    <ValidityPeriod></ValidityPeriod>
    <IPAddress></IPAddress>
    <Port></Port>
        </WIRECARD>
//Response
    <?xml version="1.0" encoding="UTF-8" ?>

    <Result>
    <Item Key="StatusCode" Value="0" />

    <Item Key="ResultCode" Value="0" />

    <Item Key="ResultMessage" Value="Success" />

    <Item Key="TokenId" Value=" " />

    <Item Key="CVV" Value="" />

    <Item Key="CustomerId" Value="" />

    <Item Key="MaskedCreditCardNumber" Value="" />

        </Result>
                    

Mobil Ödeme Ürün Kurgusu

https://www.wirecard.com.tr/management/Login.aspx

Yukarıdaki verilen url’i kullanarak Wirecard tarafından mail aracılığıyla tarafınıza iletilen kullanıcı adı ve şifre ile giriş yapınız. Ürün ekleyebilmek,ürünün içeriklerini güncelleyebilmek,ürünü silebilmek,ürün detayını görebilmek gibi işlemleri gerçekleştirebilmek için resimde görebileceğiniz üzere açılan panelde Bilgiler tablosunda Ürünler kısmına tıklamanız gerekmektedir.

Örnek Resim

  1. Ürün eklemek istiyorsanız aşağıdaki işlemleri sırasıyla takip ediniz.Açılan pencerede sol tarafta görebileceğiniz üzere +Yeni Ekle butonuna tıklayınız.

    Örnek Resim

    Örnek Resim

    Bahsedilen ürün için tek seferlik işlem yapılmasını istiyorsanız Satış Türü kısmında Tekil Ürün’ü seçmeniz gerekmektedir.Tekil ürünü seçtiğiniz takdirde WDServiceId değeri tekil satış türü için geçerli olan id’yi yazmanız gerekmektedir. Bahsedilen ürün için abonelik işlemi yapılmasını istiyorsanız Satış Türü kısmında istediğiniz Abonelik değerlerini(aylık,haftalık vb gibi) seçmeniz gerekmektedir.Abonelik satış türünü seçtiğiniz takdirde WDServiceId değeri abonelik işlemler için geçerli olan id’yi yazmanız gerekmektedir.

    Örnek Resim

    Resimde görebileceğiniz üzere ürün bilgileri formunu,ürünün içeriğini görmek istediğiniz şekilde boş alanlara karşılık gelen kısımları doldurunuz.Burada dikkat edilmesi gereken önemli nokta ise Wirecard tarafından firmanız entegre aşamasındayken dökümantasyon paylaşılan mail ile tarafınıza iletilmiş olanTurkcellServiceID değerinin WDServiceId değeri olarak tanımlanmasıdır. Tek seferlik işlemler ve abonelik işlemler için servis değeriniz farklıdır.Bu nedenle eğer servis değerlerinizi bilmiyorsanız Wirecard ile iletişime geçebilirsiniz.

  2. Ürün bilgilerini düzenlemek istiyorsanız aşağıdaki işlemleri sırasıyla takip ediniz.

    Örnek Resim
    Örnek Resim

    Yukarıdaki resimde de görebileceğiniz üzere,içeriğinin düzelmesini istediğiniz ürünün detayına girerek sol tarafta bulunan -Ürün Bilgilerini Düzenle kısmına tıklayarak ürünün içeriğini yeniden düzenleyebilirsiniz.Ürün ekleme kısmında belirtilen WDServiceId değeri bu kısımda da dikkat edilmesi gereken önemli bir husustur. Örneğin:
    Ürününüz daha önce tekil işlemlerde kullanılıyor ancak siz abonelik işlem için ayarlamak istiyorsanız veya ürününüz daha önce abonelik işlemlerde kullanılıyor ancak siz tekil işlem için ayarlamak istiyorsanız,Satış Türü alanını ve de WDServiceId değerini yeniden düzenlemeniz gerekmektedir.
    Not:Abonelik işlem yapılması için tanımlanan bir ürünün tekil işlem yapılması istenirse o ürüne ait aboneliği bulunan kullanıcılar bir sonraki ay işlemleri için hata alırlar.Abonelik iptallerini sağlayabilirsiniz.

  3. Ürünü silmek/kaldırmak istiyorsanız resimde de görebileceğiniz üzere sil ikonuna tıklayınız.

    Örnek Resim
    *Ürün ekleme,ürün bilgilerini düzenleme ve ürün silme aşamalarında işlemlerinizi gerçekleştirdiğiniz takdirde ürünlerdeki değişiklikler onay sürecinde olmaktadır.Onay sürecinden sonra ürünlerde yapılan değişiklikleri görebilirsiniz.

Hash Yapısı

Son kullanıcının yönlendirildiği success url ve error url’de aşağıdaki parametreleri post edebilecek bir hidden field yapısı ile sayfa hazırlanır.
Ardından bu sayfa üzerinden post metoduyla; token, maskeli kart bilgisi ve hash param ve dokumanda belirttiğimiz diğer parametler dönülür.
HashParam'ı belirtilen kurallar dahilinde kendi içinizde oluşturup, bizim hidden field’da döndüğümüz değer ile karşılaştırmalısınız. Eğer doğruysa işleme devam edebilir yanlış ise bu işlem güvensizdir ve wirecard’ın dışından gelmiş olabilir, bu postu kabul etmemeniz gerekmektedir.
Hash param oluşturulurken, belirli parametreler belirli sıra ile yan yana yazılmalı, partner'a özel tanımlı olan HashKey de bu sıralamaya eklenmeli, sha1 algoraitmasına göre base64 versiyonu ile kodlanmalıdır.

Servis Parametreleri

Parametre Adı Veri Tipi Açıklama
OrderId Guid

İşlem başlatıldığında oluşan uniq id.
Eğer order oluşmadıysa , hasparam değeri dönemeyecektir.Wirecard tarafından order’in tüm harfleri küçük olmalıdır.

MPAY String

Partner’ın ,işlem başlatılırken gönderdiği işlem idsi değeridir.

StatusCode Int

Status code :0 oldugu zaman başarılıdır. Eğer işlem sırasında approve payment metodu kullanılıyorsa status code 10 değeri işlem başarılıdır.Geri kalan durumların hepsinde başarısızdır.

ResultCode String

Hata kodu

ResultMessage String

Hata mesaji

ExtraParam String

Extra alanı

TokenId String

Kayıt edilen kartın token değeri

LastTransactionDate

Wirecard tarafından LastTransactionDate “yyyyMMddHHmmss” formatinda dönülecektir.

MaskedCCNo String

Maskeli kart bilgisi

SubscriberId Guid

Abonelik işlem idsidir.

CCTokenId Guid

İşlem sırasında kart ekleme işlemi yapıldığında ,cctoken id alanı dolu döner.

Hash Hesaplama Aracı

Bu araç sayesinde verilerinizi birbirine ekleyerek anında hash(token) oluşturabilir, success sayfanıza post edilen hash değerinin doğruluğunu kontrol edebilirsiniz.