[Help] Paypal settings

Wikko0

Well-Known Member
Joined
Oct 17, 2012
Messages
660
Reaction score
263
Здравейте, пробвах да наглася paypal да ми връща обратна връзка към сайта, но така и не се получи. Потвърдих картата и нагласих нещата, които са в Instant payment notifications, т.е там сложих връзката им към сайта ми, в случая []Site not installed.
При извършване на плащане не ми дава кредити и дори не излиза, че има Log в папката на сайта.

Какво трябва още да се нагласи в Paypal-a, благодаря предварително :)
 
ако си на personal account в paypal пробвай да го смениш на business, ако си на business не се сещам за друго
 
До колкото знам, а не знам много де когато се гласи да връща postback той се гласи да го връща към определен линк съответно файл, там трябва да направиш нещо с което да видиш реално идва ли заявка и каква точно е тя. Нямам си на идея с какво си ако си с XAMPP мисля, че можеше да се пусне лог на всички заявки към теб и ще разбереш дали се изпраща към теб такава от пейпал говоря малко на изуст защото никога не съм подкарвал такава система за postback.
 
Не ме разбирай погрешно но с видеото и подробното описание в конфига, които съм приложил, ако не можеш да се оправиш, по-добре отдели време за да научиш кое как работи преди да пускаш сървър. Няма как да не си пишеш домашните, пък да очакваш добри оценки на изпитите, което пак не е гаранция, но поне има някакъв шанс.

YouTube
 
Всичко което си го показал съм го направил.
Ето клип и ако може да ми кажете къде бъркам...

DOX.bg - Файл организатор

IPN link ->http://IPaddress/payment_proccess.php?method=paypal
Config -> $option['web_address'] = "http://IPaddress

Изтриваш всичко от payment_proccess.php и оставяш само paypal, веднага след case (дори може да изчистиш абсолютно всичко и да направиш запис ако пейпал има достъп до файла изобщо) payapal правиш лог, ако не прави лог при плащане значи проблема не ти е в самият файл а някъде другаде. Също така се увери, че payment_proccess.php има достъп до пътя към папката в която ще прави логове. Най-лесно е като го отвориш директно в сърч бара (http://IPaddress/payment_proccess.php?method=paypal), това ще ти покаже и ако има някакви грешки в самият файл.

PS във видеото видях, че след като направиш плащане не те връща към уебсайта ти, което означава, че линка от формата за плащане за обратна връзка не работи и най-вероятната причина, ако не си пипал нищо друго е че $option['web_address'] = "http://IPaddress не е въведен коректно.

PHP:
						<form  action="https://www.paypal.com/cgi-bin/webscr" method="post">	
							<tr>
							
								<td>
									<input type="hidden" name="cmd" value="_donations" />
									<input type="hidden" name="business" value="'.$info[6].'" />
									<input type="hidden" name="item_name" value="Donate for '.($set[4]).'" />
									<input type="hidden" name="currency_code" value="'.strtoupper($info[2]).'" />
									<input type="hidden" name="amount" value="'.$info[1].'" />
									<input type="hidden" name="no_shipping" value="1" />
									<input type="hidden" name="shipping" value="0.00" />
									<input type="hidden" name="item_number" value="'.$info[5].'"/>
									<input type="hidden" name="return" value="'.$info[7].'/payment_proccess.php?method=paypal" />
									<input type="hidden" name="cancel_return" value="'.$info[7].'/payment_proccess.php?method=paypal" />
									<input type="hidden" name="notify_url" value="'.$info[7].'/payment_proccess.php?method=paypal" />
									<input type="hidden" name="custom" value="'.$info[4].'" />
									<input type="hidden" name="no_note" value="1" />
									<input type="hidden" name="tax" value="0.00" />
								</td>
							</tr>
							<tr class="title"><td colspan="2"><button type="submit"  class="button">Agree</button></td></tr>
						</table>
					</form>';

Ето я формата, откъдето ти става ясно, че $info[7] идва от $option['web_address'] променливата и съответно, няма да работи ако си я оплескал -> добавил някоя наклонена черта или знак. Това е описано в коментара в конфига.
 
Last edited:
  • Like
Reactions: Wikko0
Така ли трябва да е payment_proccess.php, без останалите работи?
PHP:
<?php
//////////////////////////////////////////////////
//////////////////////////////////////////********
//////////   Multi Payment API    ////////********
//////////   Made for DTweb 2.0   ////////********
//////////  http://DarksTeam.net  ////////******** 
//////////       by r00tme        ////////********
//////////////////////////////////////////********
////* Report bugs to r00tme => DarksTeam.net /////
//////////////////////////////////////////////////

	require $_SERVER['DOCUMENT_ROOT']."/configs/config.php";
	require $_SERVER['DOCUMENT_ROOT']."/inc/main_funcs.php";
	
	 $log     = "";
     if(isset($_GET[$option['unique_method_key']]) || isset($_GET['method'])){
		if(isset($_GET)){
		       foreach($_GET as $keys=>$valus){
		   	    $log .= "&$keys=$valus";
		       }
		    }
		if(!empty($_GET[$option['unique_method_key']]) || !empty($_GET['method'])){
			
	//===============================PayPal==IPN===============================================================
			if($_GET['method'] === "paypal"){

					$req = 'cmd=_notify-validate';					
		    		foreach ($_POST as $key => $value) {
		    			$value 	= urlencode(stripslashes($value));
		    			$req 	.= "&$key=$value";
		    		}
		            if($option['ppal_debug']===1){
						make_log('/Payments/Paypal/',"[".date("H:i:s", time())."]".$req);
					}
		    		$header	.= "POST /cgi-bin/webscr HTTP/1.0\r\n";
		    		$header	.= "Content-Type: application/x-www-form-urlencoded\r\n";
		    		$header	.= "Content-Length: ".strlen($req)."\r\n\r\n";
		    		$fp 	= @fsockopen('ssl://www.paypal.com', 443, $ERROR_NO, $ERROR_STR, 30);
					
		    		if ($fp) {
					$payer_email 	= addslashes($_POST['payer_email']);
		    	    $receiver_email	= addslashes( $_POST['receiver_email']);
		    	    $item_number 	= addslashes($_POST['item_number']);
		    	    $tax 			= doubleval(addslashes($_POST['tax']));
		    	    $mc_gross 		= addslashes($_POST['mc_gross']);
		    	    $txn_type 		= addslashes($_POST['txn_type']);
		    	    $payment_status	= addslashes($_POST['payment_status']);
		    	    $currency 		= addslashes($_POST['mc_currency']);
		    	    $transaction_id	= addslashes($_POST['txn_id']);

		    			fputs($fp, $header.$req);
		    			while (!feof($fp)) {
		    				$res	= fgets($fp, 1024);
		    				if (strcmp($res, "VERIFIED") == 0) {
		    					make_log('/Payments/Paypal/',"[".date("H:i:s", time())."] PayPal sent [status: VERIFIED] [item_number: ".$item_number."]\n");
		    					if (strtolower($receiver_email) == strtolower($option['paypal_email'])) {
		    						$check_for_temp	= mssql_query("Select amount,currency,memb___id,credits from DTweb_PayPal_Orders where hash='".$item_number."'");
		    						if ($check_for_temp) {
		    							if (($txn_type == 'web_accept' OR $txn_type == 'subscr_payment') AND $payment_status == 'Completed') {
		    								$check_for_temp	= mssql_fetch_array($check_for_temp);
		    								make_log('/Payments/Paypal/',"[".date("H:i:s", time())."] PayPal sent [payment status: ".$payment_status."]  [transaction id: ".$transaction_id."] [userid: ".$check_for_temp['memb___id']."] ".$mc_gross." ".$currency."\n");
		    								$order_cost	= $check_for_temp['amount'];
		    								if ($tax > 0) {
		    									$mc_gross	-= $tax; 
		    								}
		    								if ($mc_gross == $order_cost) {
		    									if ($currency == $check_for_temp['currency']) {
		    										$check_if_transaction_exist	= mssql_query("Select id from DTweb_PayPal_Transactions where transaction_id='".$transaction_id."'");
		    										if (mssql_num_rows($check_if_transaction_exist) <= 0) {
		    											$order_date_time	= time();
		    											$insert_txn_id 		= mssql_query("INSERT INTO DTweb_PayPal_Transactions (transaction_id,amount,currency,memb___id,credits,order_date,status,payer_email)VALUES('".$transaction_id."','".$mc_gross."','".$currency."','".$check_for_temp['memb___id']."','".$check_for_temp['credits']."','".$order_date_time."','".$payment_status."','".$payer_email."')");
		    											if ($insert_txn_id) {
		    												make_log('/Payments/Paypal/',"[".date("H:i:s", time())."] [PayPal Donate Step 1/2] Insert Transaction Infos [transaction id: ".$transaction_id."] [amount: ".$mc_gross." ".$currency."] [userid: ".$check_for_temp['memb___id']."] [credits: ".number_format($check_for_temp['credits'])."]\n");
		    												$check_for_memb_id	= mssql_query("Select memb___id from MEMB_CREDITS where memb___id='".$check_for_temp['memb___id']."'");
		    												if (!$check_for_memb_id) {
		    													$set_credits	= mssql_query("insert into MEMB_CREDITS (memb___id,Credits)VALUES('".$check_for_temp['memb___id']."','".$check_for_temp['credits']."')");
		    												}
		    												else {
		    													$set_credits	= mssql_query("Update MEMB_CREDITS set Credits=Credits+'".$check_for_temp['credits']."'  where memb___id='".$check_for_temp['memb___id']."'");
		    												}
		    												if ($set_credits) {
		    													make_log('/Payments/Paypal/',"[".date("H:i:s", time())."] [PayPal Donate Step 2/2] Set Credits [userid: ".$check_for_temp['memb___id']."] [credits: ".number_format($check_for_temp['credits'])."]\n");
		    												}
		    											}
		    										}
		    									}
		    								}
		    							}
		    							elseif ($payment_status == 'Reversed' OR $payment_status == 'Refunded') {
		    								make_log('/Payments/Paypal/',"[".date("H:i:s", time())."] PayPal sent [payment status: ".$payment_status."]  [transaction id: ".$transaction_id."] [userid: ".$check_for_temp['memb___id']."]\n");
		    								if ($option['paypal_punish'] === 1) {
		    									$update_transaction_info	= mssql_query("Update DTweb_PayPal_Transactions set status='".$payment_status."' where transaction_id='".$transaction_id."'");
		    									if ($update_transaction_info) {
		    										$bloc_userid = mssql_query("Update memb_info set bloc_code='1' where memb___id='".$check_for_temp['memb___id']."'");
		    										if ($bloc_userid) {
		    											make_log('/Payments/Paypal/',"[".date("H:i:s", time())."] [PayPal Donate Punishment] Block account [userid: ".$check_for_temp['memb___id']."]\n");
		    										}
		    									}
		    								}
		    							}
		    						}
		    					}
		    				}
		    				elseif (strcmp($res, "INVALID") == 0) {
		    					make_log('/Payments/Paypal/',"[".date("H:i:s", time())."] PayPal sent [status: INVALID] [transaction id: ".$transaction_id."] or direct access is attempted ".ip()."\n");
		    				}
							else{
								header("Location:/");
							}
		    			}
		    			fclose ($fp);
						header("Location:/"); // Comment this line to debug the module
		    		  }
			}
		else{
		    switch($_GET[$option['unique_method_key']]){
	//=========================PayGol====API================================================================			
		
			   
		    	default : header("Location:/"); break;
		     }
		   }
		}
		else{
			header("Location:/");
		}
	 }
	 else{
		 header("Location:/");
	 }		
?>
 
Така ли трябва да е payment_proccess.php, без останалите работи?


Даже така бих го пуснал аз

PHP:
	require $_SERVER['DOCUMENT_ROOT']."/configs/config.php";
	require $_SERVER['DOCUMENT_ROOT']."/inc/main_funcs.php";

					$req = 'cmd=_notify-validate';					
		    		foreach ($_POST as $key => $value) {
		    			$value 	= urlencode(stripslashes($value));
		    			$req 	.= "&$key=$value";
		    		}
		          
			make_log($_SERVER['DOCUMENT_ROOT'].'/Payments/Paypal/',"[".date("H:i:s", time())."]".$req);