2011-05-21 8 views
6

से लेनदेन विवरण प्राप्त करना मुझे authorize.net लेनदेन विवरण API (documentation here) की समझ में कुछ परेशानी हो रही है। मैं संक्षिप्त होने के लिए अपनी पूरी कोशिश करूंगा।authorize.net

प्राधिकरण से लेनदेन स्थिति अपडेट खींचने का एकमात्र व्यावहारिक तरीका (उनकी 'मूक पोस्ट' सुविधा का उपयोग किए बिना, जो कि दुःस्वप्न * के बड़े बैग की तरह दिखता है), बसने वाले लेनदेन की बैच सूची प्राप्त करना है (मान लीजिए कि दिन) और फिर प्रत्येक बसने वाले बैच के लिए लेनदेन सूचियों को खींचें। उदाहरण:

public function getTransactionsForDay($month = false, $day = false, $year = false) 
{ 
    $transactions = array(); 
    $month = ($month ? $month : date('m')); 
    $day = ($day ? $day : date('d')); 
    $year = ($year ? $year : date('Y')); 
    $firstSettlementDate = substr(date('c',mktime(0, 0, 0, (int)$month, (int)$day, (int)$year)),0,-6); 
    $lastSettlementDate = substr(date('c',mktime(0, 0, 0, (int)$month, (int)$day, (int)$year)),0,-6); 
    $response = $this->getSettledBatchList(true, $firstSettlementDate, $lastSettlementDate); 
    $batches = $response->xpath("batchList/batch"); 
    foreach ($batches as $batch) { 
     $batch_id = (string)$batch->batchId; 
     $request = new AuthorizeNetTD; 
     $tran_list = $request->getTransactionList($batch_id); 
     $transactions = array_merge($transactions, $tran_list->xpath("transactions/transaction")); 
    } 
    return $transactions; 
} 

    $request = new AuthorizeNetTD; 
    $transactions = $request->getTransactionsForDay(12, 8, 2010); 
    $this->assertTrue(is_array($transactions)); 

फिर भी, संभावित लेनदेन की स्थिति बहुत अधिक है।

ये 'अंतिम' और अपरिवर्तनीय होना दिखाई:

  • communicationError
  • refundSettledSuccessfully
  • मना कर दिया
  • couldNotVoid
  • समाप्त हो गई है
  • generalError
  • failedReview
  • settledSuccessfully
  • settlementError
  • अमान्य कर

निम्नलिखित प्रकट करने के लिए 'लंबित' जा स्थितियां:

  • authorizedPendingCapture
  • capturedPendingSettlement
  • refundPendingSettlement
  • pendingFina lSettlement
  • pendingSettlement
  • underReview
  • updatingSettlement
  • FDSPendingReview
  • FDSAuthorizedPendingReview
  • authorizedPendingRelease

ये, मुझे यकीन है कि नहीं कर रहा हूँ के बारे में:

  • returnedItem (?)
  • चार्जबैक (?)
  • chargebackReversal (?)
  • approvedReview (?)

getUnsettledTransactionList अभी पिछले 1000 'अस्थिर' अपनी गोद में लेनदेन, मना कर दिया सहित उदासीनता, त्रुटि, इत्यादि - इसे बहुत अविश्वसनीय बनाते हुए, उल्लेख नहीं है कि आपको उस जंक को पार्स करना है।

तो, मेरे सवाल कर रहे हैं:

  • क्या पिछले चार ऊपर स्थितियों के साथ हो रहा है? क्या मुझे उन लोगों को बदलने की उम्मीद करनी चाहिए या नहीं?

  • इनमें से कौन सा 'बसने' बैच में जाता है? (settlementError और settledSuccessfully? बस settledSuccessfully?)

  • बिलिंग लेन-देन आवर्ती करो (documentation here) भी बसे बैचों में दिखाई?

  • क्या सभी अप्रासंगिक error, declined, आदि को अनदेखा करने के लिए केवल 'लंबित' लेनदेन को अधिकृत करने का कोई तरीका नहीं है? आवर्ती बिलिंग के लिए यह जरूरी लगता है - क्योंकि अन्यथा, एक ऐप (लेनदेन आईडी के बदले में) को यह जानने का कोई तरीका नहीं है कि सब्सक्रिप्शन लेनदेन में कोई समस्या है या नहीं, जब तक पर्याप्त समय बीतता है कि आप सुरक्षित रूप से मान सकते हैं कि इसे दिखाया जाना चाहिए था एक बसने वाला बैच

* दो सेकंड का समय समाप्त करने के लिए, असफल और कभी नहीं बात करने के लिए आप फिर से कारण पॉलिसी, प्लस उन पर भरोसा करने के लिए ठीक से उनके सेटिंग्स कॉन्फ़िगर करने के

+1

आप [समर्थन मंचों] में पूछना चाहिए (http://community.developer.authorize.net/t5/एकीकरण और परीक्षण/BD-पी/Integration01)। उनके कर्मचारी वहां लटकते हैं और आपके लिए इस तरह के सवालों का जवाब दे सकते हैं। –

उत्तर

7

मैं मिल गया है Authorize.net से एक प्रतिक्रिया संदेश यह है:


लेनदेन स्थितियों के साथ भ्रम का एक हिस्सा है कि लेनदेन स्थिति वस्तु एक समान उद्देश्य यह है कि हम आंतरिक रूप से इस्तेमाल करते हैं और कभी में संभव लेनदेन स्थिति भी शामिल से दूर बनाया गया है हमारी प्रणाली । इनमें से कुछ स्थिति प्रभावी रूप से बाहरी डेवलपर के रूप में आपके द्वारा कभी नहीं देखी जाएगी। मैंने अपने सार्वजनिक ज्ञान आधार की जांच की है और पुष्टि की है कि वर्तमान में हमारे पास सभी लेनदेन स्थितियों की अच्छी सूची नहीं है, इसलिए मैं आपके लिए एक बनाने पर काम कर रहा हूं। मैं अपने आंतरिक डेवलपर्स के साथ स्थितिओं पर कुछ विवरणों की पुष्टि करने के लिए काम कर रहा हूं और जितनी जल्दी हो सके मैं उस सूची के साथ जवाब दूंगा। मैं अभी आपके बाकी सवालों का जवाब दे सकता हूं।

इनमें से कौन सा 'बसने' बैच में जाता है? (settlementError और settledSuccessfully? बस settledSuccessfully?)

Authorize.Net के भीतर, सभी लेनदेन एक बैच में ले जाया जाता है जब लेनदेन राज्य अंतिम है। यह बैच की Authorize.Net परिभाषा और अधिकांश व्यापारी सेवा प्रदाता द्वारा उपयोग की जाने वाली परिभाषा में एक महत्वपूर्ण अंतर है। चूंकि हमारी सभी रिपोर्टिंग बैचों में व्यवस्थित होती है, इसलिए यह महत्वपूर्ण है कि आपके सभी लेन-देन आखिरकार बैच में समाप्त हो जाएं।

आवर्ती बिलिंग लेनदेन ([यहां प्रलेखन] [2]) भी को बसने वाले बैचों में दिखाएं?

हां, स्वचालित आवर्ती बिलिंग (एआरबी) प्रणाली द्वारा शुरू किए गए लेनदेन को बनाए जाने के बाद किसी अन्य लेनदेन से अलग नहीं माना जाता है।

वहाँ वास्तव में सिर्फ अधिकृत से लेन-देन 'लंबित' खींचने के लिए कोई रास्ता नहीं है, सभी अप्रासंगिक error, declined, आदि लोगों की अनदेखी? आवर्ती बिलिंग के लिए यह आवश्यक लगता है - क्योंकि अन्यथा, एक ऐप (लेनदेन आईडी के बदले में) को जानने का कोई तरीका नहीं है कि सदस्यता लेनदेन के साथ समस्या है, जब तक कि पर्याप्त समय बीतता है, तो आप सुरक्षित रूप से इसे मान सकते हैं एक व्यवस्थित बैच में दिखाया गया है।

वर्तमान में केवल सफल अनसेट किए गए लेनदेन की सूची खींचने या किसी विशिष्ट एआरबी सदस्यता से जुड़े लेनदेन को खींचने का कोई तरीका नहीं है। हम इस सीमा से अवगत हैं और इसके बारे में कुछ विचार हैं कि इसे कैसे हल किया जाए, लेकिन दुर्भाग्य से प्रोग्रामिंग के रूप में एआरबी लेनदेन की जांच करने का केवल 100% विश्वसनीय तरीका निपटारे के बाद पूरे बैच को खींचना है।

मैं इन क्षेत्रों को परिभाषित करने के लिए एक आधिकारिक दस्तावेज़ के अधिक बनाने की दिशा में काम कर रहा हूँ, लेकिन मैं मैं क्या मैं अब तक है पोस्ट होगा सोचा:

BasicTransaction स्थितियां
मुझे नहीं लगता कि इन स्थितियों का क्या ज़रूरत है कोई और स्पष्टीकरण, लेकिन अगर मुझे गलत लगता है तो मुझे बताएं।
- authorizedPendingCapture
- capturedPendingSettlement
- refundPendingSettlement
- settledSuccessfully
- refundSettledSuccessfully
- अमान्य कर
- समाप्त हो गई है
-

धोखाधड़ी जांच सुइट (FDS या AFDS) गिरावट आई विशिष्ट जवाब
इन दोनों स्थितियों से संकेत मिलता है कि एक लेनदेन है व्यापारी द्वारा मैन्युअल समीक्षा लंबित।
- FDSPendingReview
- FDSAuthorizedPendingReview

echeck विशिष्ट जवाब
- underReview - मैन्युअल समीक्षा के तहत, अनुमोदित या अस्वीकृत हो जाएंगे।
- असफल समीक्षा - एक लेनदेन की अंतिम स्थिति जो समीक्षा में विफल रहता है।
- लौटाया गया इटिम - यह मूल लेनदेन पर नहीं दिखाया जाएगा, लेकिन ईकेक रिटर्न इस स्थिति के साथ अपने लेनदेन उत्पन्न करता है।

अन्य त्रुटियाँ
- communicationError - एक व्यक्ति लेनदेन प्रोसेसर द्वारा अस्वीकार कर दिया था। यह एक अंतिम लेनदेन की स्थिति है।
- निपटान त्रुटि - प्रोसेसर द्वारा एक दिन का बैच खारिज कर दिया गया था। यह स्थिति अंतिम नहीं है। व्यापारी को बैच को पुनर्प्राप्त करने का प्रयास करना चाहिए।
- सामान्य त्रुटि - यह किसी लेनदेन की स्थिति के लिए एक पकड़-स्थिति है जो अन्यथा परिभाषित नहीं है।

संक्रमणकालीन लेन-देन Statuses
ये लेन-देन स्थितियों होते हैं केवल के रूप में एक सौदे हो रहा है। उन्हें लेनदेन विवरण एपीआई द्वारा वापस नहीं किया जाना चाहिए।
- couldNotVoid
- approvedReview

विरासत
ये लेन-देन स्थितियों से संबंधित Statuses सेवाओं है कि हम नहीं 3 साल के लिए की पेशकश की है करने के लिए। चूंकि Authorize.Net व्यापारी खाता केवल 2-3 वर्षों का इतिहास संग्रहीत करता है, इसलिए आप इन स्थितियों को वास्तव में किसी सामान्य ऑपरेशन में वापस नहीं देख पाएंगे।
- pendingFinalSettlement
- pendingSettlement
- updatingSettlement
- चार्जबैक
- chargebackReversal
- authorizedPendingRelease

संबंधित मुद्दे