首頁 後端開發 php教程 支付宝接口开发集成支付环境小结_php实例

支付宝接口开发集成支付环境小结_php实例

May 16, 2016 pm 08:20 PM
介面 支付寶

关于支付宝的接口集成气死是很简单,目前大概有3种类型,即时到帐、双功能、担保交易,只需要集成一次担保交易,其他的比如即时到帐集成很容易,担保交易的状态有几种,比如:是否支付成功,卖家是否发货,买家确认收获等。而即时到帐只有一种,就是是否已付款!最多还有个退款的功能。一般都没用到。

    通过之前做项目:配资平台,有个预付费的功能,用到了支付宝的双功能收款,其实就是提供两种付款方式,即时到帐和担保交易。一般买家谨慎会选择担保。

    下面说下具体的集成过程,第一:下载对应的集成接口包,比如即时到帐就下载即时到帐,担保下载担保,非常不建议将即时到帐修改成担保或者反之。案例中我下载的 双功能接口文件,utf8-php接口。

    下载来的文件都大同小异,即时到帐和担保的文件也相差不大,反正可以肯定的说,只要配置一次担保支付宝接口,就能配置即时到帐。

    我们需要修改的文件有如下:alipay.config.php[配置文件,只是用于修改配置接口开发者id和key]

    alipayapi.php[主调文件,将需要发送的post数据交给该文件,然后负责跳转到支付页面]
    index.php[demo演示页面,可以不做修改,但是其中传递的参数名陈需要看懂]
    notify_url.php 返回数据页面,在其中将返回交易的状态,更具状态我们可以更改数据库订单信息,该文件是通过post方式接受。
    return_url.php 返回数据页面,在其中将返回交易的状态,更具状态我们可以更改数据库订单信息,该文件是通过GET方式。

    具体过程:

    第一步,修改配置信息:

复制代码 代码如下:

   $alipay_config['partner']       = 'xxx8511073xxxxxxxx';
   //安全检验码,以数字和字母组成的32位字符
   $alipay_config['key']           ='xxxxxxxxnow07oajbflskxxxxxxxxxx';

 
     第二:拼post数据,一般只需要修改请求参数

复制代码 代码如下:

 /**************************请求参数**************************/
         //支付类型
         $payment_type = "1";
         //必填,不能修改
         //服务器异步通知页面路径
         $notify_url = "http://你的域名/alipay/notify_url.php";
         //需http://格式的完整路径,不能加?id=123这类自定义参数
         //页面跳转同步通知页面路径
         $return_url = "http://你的域名/alipay/return_url.php";
         //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/
         //卖家支付宝帐户
         $seller_email = $_POST['WIDseller_email'];//demo[index.php]传过来的
         //必填
         //商户订单号
         $out_trade_no = $_POST['WIDout_trade_no'];//传过来的
         //商户网站订单系统中唯一订单号,必填
         //订单名称
         $subject = $_POST['WIDsubject'];//同上
         //必填
         //付款金额
         $price = $_POST['WIDprice'];//传过来的,是你的表单中填写的值
         //必填
         //商品数量
         $quantity = "1";
         //必填,建议默认为1,不改变值,把一次交易看成是一次下订单而非购买一件商品
         //物流费用
         $logistics_fee = "0.00";
         //必填,即运费
         //物流类型
         $logistics_type = "EXPRESS";
         //必填,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS)
         //物流支付方式
         $logistics_payment = "SELLER_PAY";
         //必填,两个值可选:SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费)
         //订单描述
         $body = $_POST['WIDbody'];
         //商品展示地址
         $show_url = $_POST['WIDshow_url'];
         //需以http://开头的完整路径,如:http://www.ya-jing.cn
         //收货人姓名
         $receive_name = '萤火';
         //如:张三
         //收货人地址
         $receive_address = $_POST['WIDreceive_address'];
         //如:XX省XXX市XXX区XXX路XXX小区XXX栋XXX单元XXX号
         //收货人邮编
         $receive_zip = $_POST['WIDreceive_zip'];
         //如:123456
         //收货人电话号码
         $receive_phone = $_POST['WIDreceive_phone'];
         //如:0571-88158090
         //收货人手机号码
         $receive_mobile = $_POST['WIDreceive_mobile'];
         //如:13312341234

 
     第三:数据构造完成后就可以在页面上付款,测试能不能正确的打开支付页面。如果能打开,这时候就可以进行付款了,但是买家付款的状态我们还无法获知,比如有没有成功付款,卖家是否已经发货等。那么接下来开始做返回状态的业务逻辑处理。

打开return_url.php文件,根据提示修改,做对因的处理。

复制代码 代码如下:

 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
     //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表
     //商户订单号 $out_trade_no = $_GET['out_trade_no'];
     //支付宝交易号    $trade_no = $_GET['trade_no'];
     //交易状态
     $trade_status = $_GET['trade_status'];
     if($_GET['trade_status'] == 'WAIT_SELLER_SEND_GOODS') {//状态为成功
     //处理自己网站的业务逻辑
         if(!$order['status']){//判断本地数据库中的订单是否已经处理
             db_update("stx_recharge",array("status"=>1),array("oid"=>$_GET
 ['out_trade_no']));//如果没处理就将状态改成已经处理。
             //金钱的增加
             $zd = db_line("stx_terminal",array("id"=>$order['ztid']));
             db_update("stx_terminal",array("money"=>$zd['money']+$order
 ['money']),array("id"=>$order['ztid']));//增加余额到该用户的账户上。
         }
     }
     else if($_GET['trade_status'] == 'TRADE_FINISHED') {
         //判断该笔订单是否在商户网站中已经做过处理
             //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统
 中查到该笔订单的详细,并执行商户的业务程序
             //如果有做过处理,不执行商户的业务程序
     }
     else {
       echo "trade_status=".$_GET['trade_status'];
     }
     echo "验证成功
";
     echo "trade_no=".$trade_no;

     notify_url.php也是一样,根据状态来编写对应的代码!notify_url.php文件中的状态要多一些。

复制代码 代码如下:

 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
     //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表
     //商户订单号
     $out_trade_no = $_POST['out_trade_no'];
     //支付宝交易号
     $trade_no = $_POST['trade_no'];
     //交易状态
     $trade_status = $_POST['trade_status'];
     if($_POST['trade_status'] == 'WAIT_BUYER_PAY') {
     //该判断表示买家已在支付宝交易管理中产生了交易记录,但没有付款
         //判断该笔订单是否在商户网站中已经做过处理
             //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
             //如果有做过处理,不执行商户的业务程序
         echo "success";    //请不要修改或删除
         //调试用,写文本函数记录程序运行情况是否正常
         //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
     }
     else if($_POST['trade_status'] == 'WAIT_SELLER_SEND_GOODS') {
     //该判断表示买家已在支付宝交易管理中产生了交易记录且付款成功,但卖家没有发货
         if(!$order['status']){
             db_update("stx_recharge",array("status"=>1),array("oid"=>$_POST['out_trade_no']));
             //金钱的增加
             $zd = db_line("stx_terminal",array("id"=>$order['ztid']));
             db_update("stx_terminal",array("money"=>$zd['money']+$order['money']),array("id"=>$order['ztid']));
         }
         echo "success";    //请不要修改或删除
         //调试用,写文本函数记录程序运行情况是否正常
         //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
     }
     else if($_POST['trade_status'] =='WAIT_BUYER_CONFIRM_GOODS') {
     //该判断表示卖家已经发了货,但买家还没有做确认收货的操作
         if(!$order['status']){
             db_update("stx_recharge",array("status"=>1),array("oid"=>$_POST['out_trade_no']));
             //金钱的增加
             $zd = db_line("stx_terminal",array("id"=>$order['ztid']));
             db_update("stx_terminal",array("money"=>$zd['money']+$order['money']),array("id"=>$order['ztid']));
         }
         echo "success";    //请不要修改或删除
         //调试用,写文本函数记录程序运行情况是否正常
         //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
     }
     else if($_POST['trade_status'] == 'TRADE_FINISHED') {
     //该判断表示买家已经确认收货,这笔交易完成
         //判断该笔订单是否在商户网站中已经做过处理
             //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
             //如果有做过处理,不执行商户的业务程序
         echo "success";    //请不要修改或删除
         //调试用,写文本函数记录程序运行情况是否正常
         //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
     }

由于我基本上没有用到后续的发货处理,所以在该状态下未做处理,如果您的网站是购物网站秒就需要做对应的处理,比如更新状态值为已发货,或者未付款、已确认等。方便看到交易流程。同时在已付款的订单中会产生支付宝的订单id,可以同时记录在自己的订单中。

以上所述就是本文关于支付宝接口的全部内容了,希望能对大家熟练掌握支付宝接口支付的二次开发能够有所帮助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

TokenPocket支付平台怎麼提現到支付寶或微信 TokenPocket支付平台怎麼提現到支付寶或微信 Aug 29, 2024 pm 06:51 PM

是的,你可以透過TokenPocket將代幣提現到支付寶或微信:打開TokenPocket應用程序,選擇「錢包」選項卡。選擇要提現的代幣,點選“提現”,選擇“支付寶”或“微信”。輸入提現金額和確認提現地址。支付手續費並確認提現請求,等待幾分鐘至幾小時即可完成提現。

Bitget Wallet比特派皮夾怎麼提現到支付寶 Bitget Wallet比特派皮夾怎麼提現到支付寶 Sep 04, 2024 pm 07:25 PM

使用BitgetWallet提現到支付寶的步驟如下:開啟BitgetWallet輸入密碼或使用指紋解鎖。點擊提幣選擇加密貨幣。輸入支付寶資訊填寫收款帳號和金額。選擇網路選擇與支付寶收款方式相符的網路。設定手續費確認手續費金額並接受。確認並提交檢查資訊並點選確認。等待確認等待區塊鏈網路驗證。收到款項提款將到帳支付寶收款帳號。

在使用PHP調用支付寶EasySDK時,如何解決'Undefined array key 'sign'”報錯問題? 在使用PHP調用支付寶EasySDK時,如何解決'Undefined array key 'sign'”報錯問題? Mar 31, 2025 pm 11:51 PM

問題介紹在使用PHP調用支付寶EasySDK時,按照官方提供的代碼填入參數後,運行過程中遇到報錯信息“Undefined...

okx交易平台手續費一覽 okx交易平台手續費一覽 Feb 15, 2025 pm 03:09 PM

OKX 交易平台提供了各種類型的費率,包括交易費用、提款費用和融資費用。對於現貨交易,交易費用根據交易量和 VIP 等級而有所不同,採取“做市商模式”,即市場每筆交易收取較低的手續費。此外,OKX 還提供了多種類型的期貨合約,包括幣本位合約、USDT 合約和交割合約,每種合約的費用結構也有所不同。

芝麻開門登錄註冊入口 gate.io交易所註冊官網入口 芝麻開門登錄註冊入口 gate.io交易所註冊官網入口 Mar 04, 2025 pm 04:51 PM

Gate.io(芝麻開門)是全球領先的加密貨幣交易平台,本文提供Gate.io現貨交易完整教程。教程涵蓋賬戶註冊登錄、KYC認證、法幣及數字貨幣充值、交易對選擇、限價/市價交易下單以及訂單和交易記錄查看等步驟,助您快速上手Gate.io平台進行加密貨幣交易。 無論是新手還是老手,都能從本教程中獲益,輕鬆掌握Gate.io交易技巧。

歐易交易所app國內下載教程 歐易交易所app國內下載教程 Mar 21, 2025 pm 05:42 PM

本文提供國內安全下載歐易OKX App的詳細指南。由於國內應用商店限制,建議用戶通過歐易OKX官方網站下載App,或使用官網提供的二維碼掃描下載。下載過程中,務必核實官網地址,檢查應用權限,安裝後進行安全掃描,並啟用雙重驗證。 使用過程中,請遵守當地法律法規,使用安全網絡環境,保護賬戶安全,警惕詐騙,理性投資。 本文僅供參考,不構成投資建議,數字資產交易風險自負。

Bitget Wallet比特派支付平台怎麼提現到支付寶或微信 Bitget Wallet比特派支付平台怎麼提現到支付寶或微信 Sep 04, 2024 pm 06:57 PM

如何透過BitgetWallet提現到支付寶或微信? 1.登入BitgetWallet比特派支付平台;2.選擇要提現的資產;3.點選「提現」按鈕;4.選擇提現方式(支付寶或微信);5.輸入提現金額和收款帳號;6.確認並提交。

See all articles