2014-10-15 3 views
8

मेरे पास php के साथ पट्टी जांच है। यह ग्राहकों को बनाता है और उन्हें चार्ज करता है। मैं एक दान फॉर्म बनाना चाहता हूं, जहां एक ही ग्राहक वापस आ जाता है और उसी ईमेल पते के साथ देता है कि स्ट्रिप कोई अन्य ग्राहक नहीं बनाता है लेकिन अतिरिक्त भुगतान के साथ मौजूदा ग्राहक को चार्ज करता है। क्या यह संभव है? या चेकआउट हमेशा नए ग्राहक आईडी के साथ नया ग्राहक बनाता है?स्ट्रिप एक ही ईमेल पते के साथ कई ग्राहकों को बनाने

यहाँ मेरी charge.php

<?php 
    require_once('config.php'); 

    $token = $_POST['stripeToken']; 

    if($_POST) { 
     $error = NULL; 

     try{ 
     if(!isset($_POST['stripeToken'])) 
      throw new Exception("The Stripe Token was not generated correctly"); 
      $customer = Stripe_Customer::create(array(
       'card' => $token, 
       'email' => $_POST['stripeEmail'], 
       'description' => 'Thrive General Donor' 
      )); 

      $charge = Stripe_Charge::create(array(
       'customer' => $customer->id, 
       'amount' => $_POST['donationAmount'] * 100, 
       'currency' => 'usd' 
      )); 
     } 
     catch(Exception $e) { 
     $eror = $e->getMessage(); 
     } 


    } 

?> 
+0

क्या आप अपना कुछ कोड पोस्ट कर सकते हैं? – Alex

+0

सुनिश्चित करें, मैंने अभी चार्ज जोड़ा है। Php –

+0

माना जाता है कि आप अब ईमेल द्वारा खोज सकते हैं, लेकिन स्ट्राइप अभी भी बेवकूफ रूप से एक ही ईमेल के साथ कई ग्राहकों को अनुमति देता है, इसलिए हमें परिणामों में डुप्लिकेट को संभालने की आवश्यकता होगी: https://stackoverflow.com/ए/40482496/470749 – Ryan

उत्तर

6

आप एक डेटाबेस में ईमेल पते और धारी ग्राहक आईडी के बीच संबंधों को स्टोर करने के लिए की आवश्यकता होगी है। मैंने इसे Stripe's API on Customers पर देखकर निर्धारित किया है।

सबसे पहले, जब कोई नया ग्राहक बनाते हैं तो हर क्षेत्र वैकल्पिक होता है। इससे मुझे विश्वास होता है कि हर बार जब आप POST से /v1/customers पर, यह "एक नया ग्राहक ऑब्जेक्ट" बनायेगा।

साथ ही, ग्राहक को पुनर्प्राप्त करते समय केवल एक ही फ़ील्ड उपलब्ध है id। इससे मुझे विश्वास होता है कि आप किसी ईमेल पते या अन्य फ़ील्ड के आधार पर ग्राहक को पुनर्प्राप्त नहीं कर सकते हैं।


आप नहीं दुकान एक डेटाबेस में यह जानकारी, आप हमेशा सभी ग्राहकों GET /v1/customers साथ सूचीबद्ध कर सकते हैं कर सकते हैं। इसके लिए आपको सभी ग्राहक ऑब्जेक्ट्स को तब तक पैगनेट करने और जांचने की आवश्यकता होगी जब तक आप एक मेल खाने वाले ईमेल पते के साथ कोई नहीं पाते। जब भी आप ग्राहक बनाने की कोशिश करते हैं तो आप देख सकते हैं कि यह कितना अक्षम होगा।

+0

क्या आप वेबहूक के माध्यम से ग्राहक की जानकारी स्टोर करते हैं और इसे अपने डेटाबेस में स्टोर करते हैं? –

+0

आप संभावित रूप से वेबहूक का उपयोग कर सकते हैं; हालांकि, जैसे ही आप ग्राहक ऑब्जेक्ट बनाते हैं, मैं व्यक्तिगत रूप से जानकारी को सहेजता हूं (आपके कोड में, '$ ग्राहक = Stripe_Customer :: create (array (...));')। यह ग्राहक ऑब्जेक्ट देता है, जिससे आप अपने डेटाबेस में सबमिट किए गए ईमेल पते पर संबंधित स्ट्रिप आईडी पुनर्प्राप्त कर सकते हैं। – Sam

+0

क्या सबमिट प्रक्रिया के दौरान स्ट्रिप से mysql या डेटाबेस के किसी भी प्रकार से टोकन आईडी को सहेजना सुरक्षित है? या सिर्फ ग्राहक आईडी को mysql में सहेजें? –

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