Edit this Page

Özel Ödeme Sayfası Kodlama

Uyarı: Bu bölüm yazılım geliştirme uzmanlığı gerektirmektedir.

Çeşitli sebeplerden dolayı kendi ödeme formunuzu kodlamak isteyebilirsiniz. Ödeme formunuzu kodlamak istiyorsanız 2 sayfa oluşturmalısınız:

  • Ödeme sayfası: Müşterinin ödeme bilgilerinin alındığı sayfa
  • Callback sayfası: Tahsilat işlemi tamamlandıktan sonra müşterinin yönlendirildiği sayfa

 Ödeme Sayfası

Kendi ödeme formunuzu kodlamanız için, formunuzda aşağıdaki parametrelerin bulunması gerekmektedir.

Teklif ve Firma Bilgileri

Subscriber Parametreleri

  • subscriber.name: John
  • subscriber.surname: Doe
  • subscriber.email: johndoe@gmail.com
  • subscriber.phoneNumber: 5555555

Payment Parametreleri

  • paymentType: CC
  • paymentCard.cardHolderName: John Doe
  • paymentCard.cardNumber: 4355 0843 5508 4358
  • paymentCard.expireMonth: 12
  • paymentCard.expireYear: 2019
  • paymentCard.cvc: 000

Bu parametreleri POST metoduyla aşağıdaki adrese POST etmeniz gerekir:

https://${sitename}.subscreasy.com/na/subscription/start/4ds

Firmanız için kullandığınız subdomain acme olduğunu varsayalım. Bu durumda, aşağıdaki adrese POST etmelisiniz:

https://acme.subscreasy.com/na/subscription/start/4ds

Örnek HTML Form

<form method="post" action="https://acme.subscreasy.com/na/subscription/start/4ds">
    <input type="hidden" name="offer.id" value="4737" /><br />
    <input type="hidden" name="companySiteName" value="acme" /><br />
    <input type="hidden" name="callbackUrl" value="https://acme.subscreasy.com/payment3ds/success" /><br />

    Subscriber Name:        <input type="text" name="subscriber.name" value="" /><br />
    Subscriber Surname:     <input type="text" name="subscriber.surname" value="" /><br />
    Email:                  <input type="text" name="subscriber.email" value="" /><br />
    Phone Number:           <input type="text" name="subscriber.phoneNumber" value="" /><br />

    Cardholder Name:        <input type="text" name="paymentCard.cardHolderName" value="" /><br />
    Card Number:            <input type="text" name="paymentCard.cardNumber" value="" /><br />
    Expiry Month:           <input type="text" name="paymentCard.expireMonth" value="" /><br />
    Expiry Year:            <input type="text" name="paymentCard.expireYear" value="" /><br />
    Security Code:          <input type="text" name="paymentCard.cvc" value="" /><br />
                            <input type="hidden" name="paymentType" value="CC" /><br />

    <input type="checkbox" name="privacyPolicyUrl" value="true" />I accept privacy policy<br />

    <button type="submit">Pay Now</button>
</form>

Hata Kodları

Hata kodları HTTP header olarak iletilmektedir. HTTP cevabı 400 olarak iletildiğinde, X-subscreasy-error-key ve X-subscreasy-error başlıklarında hata bilgileri bulunmaktadır.

subscription-http-response

Ekranda gösterilecek hata mesajını belirlemek için, X-subscreasy-error-key ve X-subscreasy-error başlıklarını kullanmanız gerekmektedir. Aşağıda sistem tarafından dönülen hataların listesini bulabilirsiniz:

  • error.required.subscriber.name
  • error.required.subscriber.surname
  • error.required.card.expiry
  • error.required.card.number
  • error.required.card.cvc
  • error.required.offer.id
  • error.notfound.offer
  • error.required.shipping.address
  • error.alreadysubscribed

Örnek curl Request

curl 'https://acme.subscreasy.com/na/subscription/start/4ds' \
    --data 'offer.id=4737& \
    subscriber.name=John+& \
    subscriber.surname=Doe& \
    subscriber.email=johndoe%40gmail.com& \
    subscriber.phoneNumber=5555555& \
    privacyPolicyUrl=true& \
    paymentType=CC& \
    paymentCard.cardHolderName=John+Doe& \
    paymentCard.cardNumber=4355+0843+5508+4358& \
    paymentCard.expireMonth=12& \
    paymentCard.expireYear=2019& \
    paymentCard.cvc=000& \
    companySiteName=acme& \
    callbackUrl=https%3A%2F%2Facme.abone.io%2Fpayment3ds%2Fsuccess' 

 Callback Sayfası

Tahsilat işlemi tamamlandıktan sonra müşteri bu adrese yönlendirilir. Bu sayfaya işlem sonuçları, aşağıdaki örnekte olduğu gibi query parameter olarak dönülür:

http://browsymous.example.com:8080/payment3ds/success?paymentId=13368433&authCode=280997&subscriptionId=19&nextChargingDate=1626100355&subscriberSecureId=feee3cacf15248ada2ea2a32df7aec25&subscriberName=Aygun Ozdemir&subscriberSurname=Ozdemir&startDate=1626100295&endDate=1626100355&offerId=-124&offerName=MentalUp Demo Edition 1 Hour&price=10.00000000&

Callback sayfasına aşağıdaki parametreler dönülür:

  • paymentId
  • authCode
  • subscriptionId
  • nextChargingDate
  • subscriberSecureId
  • merchantSubscriberId
  • subscriberName
  • subscriberSurname
  • startDate
  • endDate
  • offerId
  • offerName
  • price

Bu parametreleri ileriye dönük olarak saklayıp saklamamak, satıcının inisiyatifindedir. Ödeme bilgilerine, her zaman subscreasy dashboard'dan ve ya API ile ulaşmanız mümkün.