Join the social network of Tech Nerds, increase skill rank, get work, manage projects...
 
  • Paypal: Create Recurring Payments Profile Working Code

    • 0
    • 1
    • 1
    • 2
    • 0
    • 0
    • 0
    • 0
    • 1.21k
    Comment on it

    This code use to deduct amount automatically from paypal buyers account. It is something like advance payment mode. If user agree with automatically deduction when he / she paying through paypal then amount will deduct according to billing period.

    //step1. include paypal.class.php file (find attached file)

    1. include_once('paypal.class.php');
    2. $objPaypal = new MyPayPal();
    3.  
    4. $PayPalMode = 'sandbox'; // sandbox or live
    5. $PayPalApiUsername = 'xxxxxxxxx'; //PayPal API Username
    6. $PayPalApiPassword = 'xxxxxxxxx'; //Paypal API password
    7. $PayPalApiSignature = 'xxxxxxxx'; //Paypal API Signature
    8. $PayPalCurrencyCode = 'USD'; //Paypal Currency Code
    9. $PayPalReturnURL = 'http://localhost/payapl_requirring/createRecurringPaymentsProfile.php'; //Point to process.php page
    10. $PayPalCancelURL = 'http://localhost/payapl_requirring/cancel_url.php'; //Cancel URL if user clicks cancel

    //step 2.

    1. $padata = '&METHOD=SetExpressCheckout'.
    2. '&RETURNURL='.urlencode($PayPalReturnURL).
    3. '&CANCELURL='.urlencode($PayPalCancelURL).
    4. '&PAYMENTREQUEST_0_PAYMENTACTION='.urlencode("Authorization").
    5. '&L_PAYMENTREQUEST_0_ITEMCATEGORY0=Digital'.
    6. '&L_PAYMENTREQUEST_0_NAME0=xyz'.
    7. '&L_PAYMENTREQUEST_0_NUMBER0=132456'.
    8. '&L_PAYMENTREQUEST_0_DESC0=xyz'.
    9. '&L_PAYMENTREQUEST_0_AMT0=12'.
    10. '&L_PAYMENTREQUEST_0_QTY0=1'.
    11. '&PAYMENTREQUEST_0_AMT=12'.
    12. '&L_BILLINGTYPE0=RecurringPayments'.
    13. '&L_BILLINGAGREEMENTDESCRIPTION0=12.00 per month';
    14. //'&L_PAYMENTTYPE0 = Any';
    15.  
    16. $request = $objPaypal->PPHttpPost('SetExpressCheckout', $padata, $PayPalApiUsername, $PayPalApiPassword, $PayPalApiSignature, $PayPalMode);

    //step 3. redirect to checkout page.

    1. $request = explode('&',$request);
    2. $request = explode('=',$request[0]);
    3. $token = $request[1];
    4.  
    5. $paypalurl ='https://www'.$paypalmode.'.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token='.$token.'';
    6.  
    7. header('Location: '.$paypalurl);
    8.  
    9. //step4. create file createRecurringPaymentsProfile.php and enter below code
    10.  
    11. include_once('paypal.class.php');
    12.  
    13. $objPaypal = new MyPayPal();
    14.  
    15. $PayPalMode = 'sandbox'; // sandbox or live
    16. $PayPalApiUsername = 'xxxxxxxxx'; //PayPal API Username
    17. $PayPalApiPassword = 'xxxxxxxxx'; //Paypal API password
    18. $PayPalApiSignature = 'xxxxxxxx'; //Paypal API Signature
    19. $PayPalCurrencyCode = 'USD'; //Paypal Currency Code
    20.  
    21. $paypalmode = ($PayPalMode=='sandbox') ? '.sandbox' : '';
    22.  
    23. $padata = '&Method=GetExpressCheckoutDetails&TOKEN='.$_GET['token'];
    24.  
    25. $request = $objPaypal->PPHttpPost('GetExpressCheckoutDetails', $padata, $PayPalApiUsername, $PayPalApiPassword, $PayPalApiSignature, $PayPalMode);
    26.  
    27. $request = explode('&', $request);
    28. $arrData = array();
    29. foreach($request as $payData){
    30. $payData = explode('=',$payData);
    31. $arrData[$payData[0]] = $payData[1];
    32. }
    33.  
    34.  
    35. if(!empty($arrData)){
    36. $padata = '&TOKEN='.urlencode($_GET['token']).
    37. '&PAYERID='.urlencode($_GET['PayerID']).
    38. '&PAYMENTREQUEST_0_PAYMENTACTION='.urlencode("SALE").
    39. '&BUTTONSOURCE = AngellFreeInc_USBSwiper_EC_US'.
    40.  
    41. //set item info here, otherwise we won't see product details later
    42. '&L_PAYMENTREQUEST_0_NAME0=xyz'.
    43. '&L_PAYMENTREQUEST_0_NUMBER0=132456'.
    44. '&L_PAYMENTREQUEST_0_DESC0=asfasdfsf'.
    45. '&L_PAYMENTREQUEST_0_AMT0=12'.
    46. '&L_PAYMENTREQUEST_0_QTY0=1'.
    47.  
    48. '&PAYMENTREQUEST_0_ITEMAMT=12'.
    49. '&PAYMENTREQUEST_0_TAXAMT=0'.
    50. '&PAYMENTREQUEST_0_SHIPPINGAMT=0'.
    51. '&PAYMENTREQUEST_0_HANDLINGAMT=0'.
    52. '&PAYMENTREQUEST_0_SHIPDISCAMT=0'.
    53. '&PAYMENTREQUEST_0_INSURANCEAMT=0'.
    54. '&PAYMENTREQUEST_0_AMT=12'.
    55. '&PAYMENTREQUEST_0_CURRENCYCODE='.urlencode($PayPalCurrencyCode);
    56.  
    57.  
    58. $request = $objPaypal->PPHttpPost('DoExpressCheckoutPayment', $padata, $PayPalApiUsername, $PayPalApiPassword, $PayPalApiSignature, $PayPalMode);
    59.  
    60. $request = explode('&', $request);
    61. $arrData1 = array();
    62. foreach($request as $payData){
    63. $payData = explode('=',$payData);
    64. $arrData1[$payData[0]] = $payData[1];
    65. }
    66.  
    67. if(!empty($arrData1)){
    68. $date = (date('d')+1);
    69.  
    70. $padata = '&TOKEN='.urlencode($_GET['token']).'&PROFILESTARTDATE='.urlencode( date("Y-m-").$date .'T'.date("H:i:s"). 'Z' ).'&DESC=12.00 per month&BILLINGPERIOD=Month&BILLINGFREQUENCY=12&AMT=12.00&CURRENCYCODE=USD&L_PAYMENTREQUEST_0_ITEMCATEGORY0=Digital&L_PAYMENTREQUEST_0_NAME0=xyz&L_PAYMENTREQUEST_0_DESC0=asfasdfsf&L_PAYMENTREQUEST_0_AMT0=12.00&L_PAYMENTREQUEST_0_QTY0=1&EMAIL=harryalm54@gmail.com';
    71.  
    72. $request = $objPaypal->PPHttpPost('CreateRecurringPaymentsProfile', $padata, $PayPalApiUsername, $PayPalApiPassword, $PayPalApiSignature, $PayPalMode);
    73. $request = explode('&', $request);
    74. $arrData1 = array();
    75. foreach($request as $payData){
    76. $payData = explode('=',$payData);
    77. $arrData1[$payData[0]] = urldecode($payData[1]);
    78. }
    79.  
    80. print_r($arrData1);
    81.  
    82.  
    83. }
    84.  
    85. //step last
    86. }

 0 Comment(s)

Sign In
                           OR                           
                           OR                           
Register

Sign up using

                           OR                           
Forgot Password
Reset Password
Fill out the form below and reset your password: