require_once("PaytmChecksum.php"); fwrite($log_file, PHP_EOL .'============= '.PHP_EOL.date('d-m-y H:i').' Paymnet recurring loaded === => '. PHP_EOL); /* initialize an array */ $paytmParams = array(); /* add parameters in Array */ $paytmParams["MID"] = "Videom67952374755171"; $paytmParams["ORDERID"] = $ORDER_ID; /** * import checksum generation utility * You can get this utility from https://developer.paytm.com/docs/checksum/ */ $paytmParams = array(); $mid = "Videom67952374755171"; $orderId = $invoice_no; $merchant_key = "QTWh7PtoZoeONDaY"; if($plan_type=='M') { $subscriptionFrequencyUnit = 'MONTH'; $subscriptionExpiryDate = date('Y-m-d', strtotime('+5 months')); } if($plan_type=='Y') { $subscriptionFrequencyUnit = 'YEAR'; $subscriptionExpiryDate = date('Y-m-d', strtotime('+5 years')); } $paytmParams["body"] = array( "requestType" => "NATIVE_SUBSCRIPTION", "mid" => $mid, "websiteName" => "WEBSTAGING", "orderId" => $orderId, "callbackUrl" => "https://merchant.com/callback", "subscriptionAmountType" => "FIX", "subscriptionFrequency" => "2", "subscriptionFrequencyUnit" => $subscriptionFrequencyUnit, "subscriptionExpiryDate" => $subscriptionExpiryDate, "subscriptionEnableRetry" => "1", "txnAmount" => array( "value" => $order_amount, "currency" => "INR", ), "userInfo" => array( "custId" => $username_m, ), "subscriptionStartDate" => date("Y-m-d"), "subscriptionGraceDays" => "2" ); fwrite($log_file, PHP_EOL .'============= '.PHP_EOL.date('d-m-y H:i').' Recurring payment request paytmParams === => '. PHP_EOL); fwrite($log_file, print_r($paytmParams, true)); /* * Generate checksum by parameters we have in body * Find your Merchant Key in your Paytm Dashboard at https://dashboard.paytm.com/next/apikeys */ $checksum = PaytmChecksum::generateSignature(json_encode($paytmParams["body"], JSON_UNESCAPED_SLASHES), $merchant_key); fwrite($log_file, PHP_EOL .'============= '.PHP_EOL.date('d-m-y H:i').' Recurring payment request checksum === => '. PHP_EOL); fwrite($log_file, print_r($checksum, true)); $paytmParams["head"] = array( "signature" => $checksum ); $post_data_rec = json_encode($paytmParams, JSON_UNESCAPED_SLASHES); /* for Staging */ $url = "https://securegw-stage.paytm.in/subscription/create?mid=$mid&orderId=$orderId"; /* for Production */ // $url = "https://securegw.paytm.in/subscription/create?mid=YOUR_MID_HERE&orderId=ORDERID_98765"; $ch_recurring = curl_init($url); curl_setopt($ch_recurring, CURLOPT_POST, 1); curl_setopt($ch_recurring, CURLOPT_POSTFIELDS, $post_data_rec); curl_setopt($ch_recurring, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch_recurring, CURLOPT_HTTPHEADER, array("Content-Type: application/json")); $recurring_response = curl_exec($ch_recurring);