PHP Curl Paypal沙盒
发布时间:2020-12-13 17:34:18 所属栏目:PHP教程 来源:网络整理
导读:是否可以使用CURL和PayPal的开发者沙盒?当我尝试这个代码,它在print_r($lines)中说;我需要登录到沙箱,如何让它发送我的浏览器cookie? 这段代码是http://leepeng.blogspot.com/2006/04/standard-paypal-php-integration.html $orderno = $_SESSION["ss_last
是否可以使用CURL和PayPal的开发者沙盒?当我尝试这个代码,它在print_r($lines)中说;我需要登录到沙箱,如何让它发送我的浏览器cookie?
这段代码是http://leepeng.blogspot.com/2006/04/standard-paypal-php-integration.html $orderno = $_SESSION["ss_last_orderno"]; $ppAcc = "[SELLER HERE]"; $at = "[AT HERE]"; //PDT Identity Token $url = "https://www.sandbox.paypal.com/cgi-bin/webscr"; //Test //$url = "https://www.paypal.com/cgi-bin/webscr"; //Live $tx = $_REQUEST['tx']; //this value is return by PayPal $cmd = "_notify-synch"; $post = "tx=$tx&at=$at&cmd=$cmd"; //Send request to PayPal server using CURL $ch = curl_init ($url); curl_setopt ($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt ($ch,CURLOPT_HEADER,0); curl_setopt ($ch,CURLOPT_TIMEOUT,30); curl_setopt ($ch,CURLOPT_POST,1); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE); curl_setopt ($ch,CURLOPT_POSTFIELDS,$post); $result = curl_exec ($ch); //returned result is key-value pair string $error = curl_error($ch); if (curl_errno($ch) != 0) //CURL error exit("ERROR: Failed updating order. PayPal PDT service failed."); $longstr = str_replace("r","",$result); $lines = split("n",$longstr); print_r($lines); //parse the result string and store information to array if ($lines[0] == "SUCCESS") { //successful payment $ppInfo = array(); for ($i=1; $i<count($lines); $i++) { $parts = split("=",$lines[$i]); if (count($parts)==2) { $ppInfo[$parts[0]] = urldecode($parts[1]); } } $curtime = gmdate("d/m/Y H:i:s"); //capture the PayPal returned information as order remarks $oremarks = "##$curtime##n". "PayPal Transaction Information...n". "Txn Id: ".$ppInfo["txn_id"]."n". "Txn Type: ".$ppInfo["txn_type"]."n". "Item Number: ".$ppInfo["item_number"]."n". "Payment Date: ".$ppInfo["payment_date"]."n". "Payment Type: ".$ppInfo["payment_type"]."n". "Payment Status: ".$ppInfo["payment_status"]."n". "Currency: ".$ppInfo["mc_currency"]."n". "Payment Gross: ".$ppInfo["payment_gross"]."n". "Payment Fee: ".$ppInfo["payment_fee"]."n". "Payer Email: ".$ppInfo["payer_email"]."n". "Payer Id: ".$ppInfo["payer_id"]."n". "Payer Name: ".$ppInfo["first_name"]." ".$ppInfo["last_name"]."n". "Payer Status: ".$ppInfo["payer_status"]."n". "Country: ".$ppInfo["residence_country"]."n". "Business: ".$ppInfo["business"]."n". "Receiver Email: ".$ppInfo["receiver_email"]."n". "Receiver Id: ".$ppInfo["receiver_id"]."n"; //Update database using $orderno,set status to Paid //Send confirmation email to buyer and notification email to merchant //Redirect to thankyou page } //Payment failed else { print "Please try again..."; //Delete order information //Redirect to failed page }
这应该工作:
$tid = $_GET['tx']; $auth_token = "zzzzzzzzzzzzzzzzzzzz"; $paypal_url = "www.sandbox.paypal.com"; $url = "https://" . $paypal_url . "/cgi-bin/webscr"; $post_vars = "cmd=_notify-synch&tx=" . $tid . "&at=" . $auth_token; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,1); curl_setopt($ch,$post_vars); curl_setopt($ch,CURLOPT_FOLLOWLOCATION,15); curl_setopt($ch,true); curl_setopt($ch,false); curl_setopt($ch,CURLOPT_USERAGENT,'cURL/PHP'); $fetched = curl_exec($ch); $lines = explode("n",$fetched); $keyarray = array(); if (strcmp ($lines[0],"SUCCESS") == 0) { for ($i=1; $i<count($lines);$i++){ list($key,$val) = explode("=",$lines[$i]); $keyarray[urldecode($key)] = urldecode($val); } // check the payment_status is Completed // check that txn_id has not been previously processed // check that receiver_email is your Primary PayPal email // check that payment_amount/payment_currency are correct // process payment $firstname = $keyarray['first_name']; $lastname = $keyarray['last_name']; $itemname = $keyarray['num_cart_items']; $amount = $keyarray['mc_gross']; echo ("<h2>Thank you for your purchase!</h2>"); } else if (strcmp ($lines[0],"FAIL") == 0) { echo ("<h2>Sorry,something went wrong</h2>"); // log for manual investigation } 约$_GET [‘tx’]查找停止工作后约5分钟 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |