<!-- https://www.paypal.com/cgi-bin/webscr 生产地址
https://www.sandbox.paypal.com/cgi-bin/webscr 沙箱测试地址
-->
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_blank" id="sform">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="你的商家账号">
<input type="hidden" name="item_name" value="产品名称">
<input id='item_number' type="hidden" name="item_number" value="产品编号">
<input id='amount' type="hidden" name="amount" value="付款/充值金额"> <!-- 金额 -->
<input type="hidden" name="currency_code" value="USD">
<input type='hidden' name='return' value='支付成功后网页跳转地址'>
<input type='hidden' name='notify_url' value='支付成功后paypal后台发送回调地址'>
<input type='hidden' name='cancel_return' value='用户取消交易返回地址'>
<input id='invoice' type='hidden' name='invoice' value='发票编码'> <!-- 发票编码 注意:不能提交两次一样的发票编码 -->
<input type='hidden' name='charset' value='utf-8'><!-- 字符集 -->
<input type="hidden" name="no_shipping" value="1"> <!-- 不要求客户提供收货地址 -->
<input type="hidden" name="no_note" value="remark Recharge"> !-- 付款说明 -->
<input type="hidden" name="bn" value="IC_Sample">
<input type='hidden' name='rm' value='2'>
<input type="image" value="paypal.png" name="submit" alt="payments with payPal!">
</form>
php SDK 地址 :https://github.com/paypal/PayPal-PHP-SDK
//pay回调地址 public function pay(){ $data = $_POST; file_put_contents("./log/paylog.log",$_SERVER["SERVER_NAME"].",".$_SERVER['REMOTE_ADDR'].",".date("Y-m-d H:i:s",time()).",".var_export($_GET, true).",".var_export($_POST, true)."\r\n",FILE_APPEND); $data["cmd"] = "_notify-validate"; $pay=Db::name('pay_type')->where(['pay_id'=>3])->find(); $payInfo=json_decode($pay['pay_json'],true); $url=$payInfo['pay_url']; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); $res = curl_exec($ch); curl_close($ch); // file_put_contents('./log/aaaaaaa.log',$res); if (strcmp ($res, "VERIFIED") == 0) { $item_number = $data["item_number1"]; $payment_status = $data["payment_status"]; //$payment_status = "Completed"; $pay_check = 0; if ($payment_status == "Pending") { if ($data["pending_reason"] == "paymentreview") { $pay_check = 1; } else { $pay_check = 0; } } else if ($payment_status == "Completed") { $pay_check = 1; } $order_id=Db::name('pay_tc_orders')->where(['order_number'=>$item_number,'order_prc'=>$data['payment_gross']])->field('order_id')->find(); //检测价格 if(empty($order_id['order_id'])){ file_put_contents("./log/paylogerror.log",$_SERVER["SERVER_NAME"].",".$_SERVER['REMOTE_ADDR'].",".date("Y-m-d H:i:s",time()).",".$item_number.'信息有误'."\r\n",FILE_APPEND); } if ($pay_check == 1) { $Buy=new Buy(); $status= $Buy->updateMoney($item_number); if($status){ echo 'SUCCESS'; }else{ echo "Fail"; } } }else{ echo "Fail"; } }