[Django]-Suds.TypeNotFound: Type not found: 'MerchantCode'

5👍

Are you sure your DirectConnect.test.WSDL is correct? It seems it’s not. Please post it here.

Added:

I got it working. Please have a look at the result. Here is the working code (chmod +x main.py to run it).

(sudstest)mike-imac:sudstest mike$ ./main.py 
(OnlineResponse){
   TransactionID = 0
   TransactionType = 20
   MerchantReference = None
   ResponseCode = "ERMERC"
   ResponseShortDescription = "YESDEC"
   ResponseDescription = "Invalid Merchant Code"
   TimeStamp = "2012/01/24 17:21:37"
   CardData = 
      (YESCardData){
         CardID = 0
         ExpiryYear = 0
         ExpiryMonth = 0
      }
 }

main.py

#!/usr/bin/env python
import os
from suds.client import Client

WSDL = 'DirectConnect.test.WSDL'

def test_api():
    url = 'file://' + os.path.join(os.path.abspath(os.path.dirname(__file__)), WSDL)
    client = Client(url)

    data = {
        'MerchantCode': 'HELLO',
        'MerchantReference':  '',
        'TransactionType': 20,
        'Amount': 100,
        'CurrencyCode': 'USD',
        'CardHolderName': 'RAUL O REVECHE',
        'CardNumber': 4005550000000001,
        'ExpiryMonth': 5,
        'ExpiryYear': 2013,
        'CardID': 0,
        'CardSecurityCode': 400,
        'CustomerAccountNumber': '',
        'BillNumber': 0,
        'CardHolderEmail': 'development@yespayments.com.ph',
        'ClientIPAddress': 'http://127.0.0.1:8000/',
        'Notes': 'This is test',
    }

    result = client.service.OnlineTransaction(**data)
    print result

if __name__ == '__main__':
    test_api()

Leave a comment