Paypal आवर्ती प्रोफ़ाइल एक्सप्रेस चेकआउट में CallShortcutExpress चेकआउट के बाद CreateRecurringPaymentsProfile को कॉल करने के लिए कैसे करें

I have downloaded and implemented this paypal integration lib on my website. https://github.com/hrendoh/PayPal-Express-Checkout-example

आवर्ती प्रोफाइल नहीं बना रहे हैं।

एक्सप्रेस चेकआउट के लिए फंक्शन कॉल है

  $resArray = CallShortcutExpressCheckout ($paymentAmount, $currencyCodeType, $paymentType, $returnURL, $cancelURL);
  $ack = strtoupper($resArray["ACK"]);
  if($ack=="SUCCESS" || $ack=="SUCCESSWITHWARNING")
  {
 //if SetExpressCheckout is returned with success, move to paypal site for payments.
  RedirectToPayPal ( $resArray["TOKEN"] );
  } 


function CallShortcutExpressCheckout( $paymentAmount, $currencyCodeType, $paymentType, $returnURL, $cancelURL) 
    {
        //------------------------------------------------------------------------------------------------------------------------------------
       //Construct the parameter string that describes the SetExpressCheckout API call in the shortcut implementation

        $nvpstr="&AMT=". $paymentAmount;
        $nvpstr = $nvpstr . "&PAYMENTACTION=" . $paymentType;
        $nvpstr = $nvpstr . "&BILLINGAGREEMENTDESCRIPTION=".urlencode("Test Recurring Payment($1 monthly)");
        $nvpstr = $nvpstr . "&BILLINGTYPE=RecurringPayments";
        $nvpstr = $nvpstr . "&RETURNURL=" . $returnURL;
        $nvpstr = $nvpstr . "&CANCELURL=" . $cancelURL;
        $nvpstr = $nvpstr . "&CURRENCYCODE=" . $currencyCodeType;

        $_SESSION["currencyCodeType"] = $currencyCodeType;    
        $_SESSION["PaymentType"] = $paymentType;

        //'--------------------------------------------------------------------------------------------------------------- 
        //' Make the API call to PayPal
        //' If the API call succeded, then redirect the buyer to PayPal to begin to authorize payment.  
        //' If an error occured, show the resulting errors
        //'---------------------------------------------------------------------------------------------------------------

        $resArray=hash_call("SetExpressCheckout", $nvpstr);
        $ack = strtoupper($resArray["ACK"]);
        if($ack=="SUCCESS" || $ack=="SUCCESSWITHWARNING")
        {
            $token = urldecode($resArray["TOKEN"]);
            $_SESSION['TOKEN']=$token;
        }

        return $resArray;
    }

यह फ़ंक्शन एक पुनरावर्ती प्रोफ़ाइल बनाने के लिए है जिसे नमूना कोड में कहीं भी नहीं कहा जाता है।

function CreateRecurringPaymentsProfile()
    {
        //'--------------------------------------------------------------
        //' At this point, the buyer has completed authorizing the payment
        //' at PayPal.  The function will call PayPal to obtain the details
        //' of the authorization, incuding any shipping information of the
        //' buyer.  Remember, the authorization is not a completed transaction
        //' at this state - the buyer still needs an additional step to finalize
        //' the transaction
        //'--------------------------------------------------------------
        $token      = urlencode($_SESSION['TOKEN']);
        $email      = urlencode($_SESSION['email']);
        $shipToName     = urlencode($_SESSION['shipToName']);
        $shipToStreet       = urlencode($_SESSION['shipToStreet']);
        $shipToCity     = urlencode($_SESSION['shipToCity']);
        $shipToState        = urlencode($_SESSION['shipToState']);
        $shipToZip      = urlencode($_SESSION['shipToZip']);
        $shipToCountry  = urlencode($_SESSION['shipToCountry']);

        //'---------------------------------------------------------------------------
        //' Build a second API request to PayPal, using the token as the
        //'  ID to get the details on the payment authorization
        //'---------------------------------------------------------------------------
        $nvpstr="&TOKEN=".$token;
        #$nvpstr.="&EMAIL=".$email;
        $nvpstr.="&SHIPTONAME=".$shipToName;
        $nvpstr.="&SHIPTOSTREET=".$shipToStreet;
        $nvpstr.="&SHIPTOCITY=".$shipToCity;
        $nvpstr.="&SHIPTOSTATE=".$shipToState;
        $nvpstr.="&SHIPTOZIP=".$shipToZip;
        $nvpstr.="&SHIPTOCOUNTRY=".$shipToCountry;
        $nvpstr.="&PROFILESTARTDATE=".urlencode("2011-07-01T0:0:0");
        $nvpstr.="&DESC=".urlencode("Test Recurring Payment($1 monthly)");
        $nvpstr.="&BILLINGPERIOD=Month";
        $nvpstr.="&BILLINGFREQUENCY=5";
        $nvpstr.="&AMT=1";
        $nvpstr.="&CURRENCYCODE=USD";
        $nvpstr.="&IPADDRESS=" . $_SERVER['REMOTE_ADDR'];

        //'---------------------------------------------------------------------------
        //' Make the API call and store the results in an array.  
        //' If the call was a success, show the authorization details, and provide
        //'     an action to complete the payment.  
        //' If failed, show the error
        //'---------------------------------------------------------------------------
        $resArray=hash_call("CreateRecurringPaymentsProfile",$nvpstr);
        $ack = strtoupper($resArray["ACK"]);
        return $resArray;
    }

क्या मैं इस फ़ंक्शन को रिटर्नुरल में पुनरावर्ती प्रोफ़ाइल बनाने और इस फ़ंक्शन में टोकन आईडी और भुगतानकर्ता आईडी पास करने के लिए कह सकता हूं।

0

1 उत्तर

आप जिस भी लाइब्रेरी का उपयोग कर रहे हैं, भले ही प्रवाह SetExpressCheckout होना चाहिए , GetExpress चेकआउट विवरण (वैकल्पिक), और उसके बाद आप इसे/या/दोनों DoExpresscheckout भुगतान के साथ इसका पालन कर सकते हैं और CreateRecurringPaymentsProfile

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

फिर, यदि आप रुचि रखते हैं, तो आप मेरी पेपैल के लिए PHP क्लास लाइब्रेरी यह आपको आसान बनाने के लिए। मैं अपने काम जानता हूँ। :)

0
जोड़ा
मुझे नहीं मिल रहा है कि मुझे सीआरपीपी फ़ंक्शन कब कॉल करना चाहिए, मैंने एसईसी में बिलिंग पैरामीटर सेट किए हैं। मेरी चेकआउट फ़ाइल में मैं एसईसी को कॉल कर रहा हूं, फिर पेपैल पर रीडायरेक्ट करता हूं जो मुझे सफलता पृष्ठ पर ले जाता है। इस प्रवाह के बीच जब मैं सीआरपीपी फ्यूशन कहता हूं। क्या मुझे सफलता पृष्ठ पर इसे फिर से कॉल करना चाहिए?
जोड़ा लेखक Umar Adil, स्रोत
धन्यवाद एंड्रयू मैं पहले से ही एक ही तरह से किया था। यदि आप एक बार मेरे कोड पर नजर डालें तो मैं और अधिक संतुष्ट रहूंगा। मैं कुछ समय में कोड फ़ाइल अपलोड करूंगा और आपको बता दूंगा। आपकी पेपैल लाइब्रेरी के लिए फिर से धन्यवाद। मैं अपने संदेहों को दूर करने के लिए भी इसका उल्लेख करता हूं।
जोड़ा लेखक Umar Adil, स्रोत
क्या मुझे DoExpressCheckoutPayment को कॉल करने की भी आवश्यकता है? अभी तक मैं एसईसी को बुला रहा हूं और फिर अगर मेरी वापसी पर प्रतिक्रिया सफलता मिली है तो मैं डीआरसीपी को छोड़कर सीआरपीपी समारोह को बुला रहा हूं।
जोड़ा लेखक Umar Adil, स्रोत
बहुत धन्यवाद एंड्रयू
जोड़ा लेखक Umar Adil, स्रोत
ऑर्डर और क्लिक जारी रखने के लिए उपयोगकर्ता पेपैल में साइन इन करने के बाद (या भुगतान) जारी रखेगा, उन्हें वापस आपके रिटर्नURL पर भेजा जाएगा जिसे आप एसईसी अनुरोध में निर्दिष्ट करते हैं। यही वह समय है जब आप प्रोफ़ाइल निर्माण को अंतिम रूप देने के लिए जीईसीडी (यदि आवश्यक हो) और सीआरपीपी को कॉल करेंगे।
जोड़ा लेखक Andrew Angell, स्रोत
यह ठीक है, अगर आपको अपने चेकआउट मॉडल में फिट नहीं है तो आपको डीईसीपी की आवश्यकता नहीं है। यदि आपको प्रोफ़ाइल सेटअप से अलग सामान्य आदेश भुगतान को संसाधित करने की आवश्यकता है, तो आप दोनों एक ही टोकन के साथ उपयोग कर सकते हैं।
जोड़ा लेखक Andrew Angell, स्रोत