支付寶 單筆轉賬到支付寶賬戶接口 - 提現


http://www.upwqy.com/details/84.html

實現用戶提現 資金自動到賬

如果能夠實現到提現這一步,前期的配置什么的都應該做好了,這里就不贅述了。

當前開發環境:

Windows

phpstudy

ThinkPHP5

 

 

實現提現的步驟 

1 開發者平台進行簽約 

2 找到開發文檔

3 實際開發測試 

 

 

1 簽約

登錄支付寶開放平台,進入開發者中心->選擇需要對接的APP應用->找到下圖界面,進行添加 單筆轉賬到支付寶賬號 功能,然后簽約,

QQ截圖20171201093253.png

 

 

2 找到開發文檔,

 

一般我們使用的都是支付 退款功能,這些api  都是在支付api里列表中的,

而單筆轉賬是在資金api中的,我找了好一會才找到

 

QQ截圖20171201093208.png

 

 

3 實際開發

在 https://docs.open.alipay.com/54/103419/ 中下載最新demo

 

QQ截圖20171201094449.png

 

 

把demo放入到 extend 目錄下

3.1 引入核心文件

Loader::import('alipay.aop.AopClient',EXTEND_PATH,'.php');
Loader::import('alipay.aop.request.AlipayFundTransToaccountTransferRequest',EXTEND_PATH,'.php');
Loader::import('alipay.aop.SignData',EXTEND_PATH,'.php');

 

 

3.2 提現函數  

 

根據文檔的說明,提現也是需要一個唯一的編號 來標識當前這筆轉賬交易記錄的,需要一個表進行記錄 

 

/**
  * @User 一秋
 * @param $userid  用戶id
 * @param $out_biz_no 編號
 * @param $payee_account 提現的支付寶賬號
 * @param $amount 轉賬金額
 * @param $payee_real_name 賬號的真實姓名
 * @return bool|Exception
 */
public static function userWithDraw(
    $userid,$out_biz_no,$payee_account,$amount,$payee_real_name)
{
    $payer_show_name = '用戶紅包提現';
    $remark = '紅包提現到支付寶';
    $aop = new \AopClient();
    $aop->gatewayUrl =  config('alipay.gatewayUrl');//支付寶網關 https://openapi.alipay.com/gateway.do這個是不變的
    $aop->appId = config('alipay.appId');//商戶appid 在支付寶控制台找
    $aop->rsaPrivateKey = config('alipay.rsaPrivateKey');//私鑰 工具生成的 
    $aop->alipayrsaPublicKey=config('alipay.alipayrsaPublicKey');//支付寶公鑰 上傳應用公鑰后 支付寶生成的支付寶公鑰
    $aop->apiVersion = '1.0';
    $aop->signType = 'RSA2';
    $aop->postCharset='utf-8';
    $aop->format='json';
    $request = new \AlipayFundTransToaccountTransferRequest();
    $request->setBizContent("{" .
        "\"out_biz_no\":\"$out_biz_no\"," .
        "\"payee_type\":\"ALIPAY_LOGONID\"," .
        "\"payee_account\":\"$payee_account\"," .
        "\"amount\":\"$amount\"," .
        "\"payer_show_name\":\"$payer_show_name\"," .
        "\"payee_real_name\":\"$payee_real_name\"," .
        "\"remark\":\"$remark\"" .
        "}");
    $result = $aop->execute ($request);

    $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
    $resultCode = $result->$responseNode->code;

    if(!empty($resultCode)&&$resultCode == 10000){
        //提現成功以后 更新表狀態 
        //並且記錄 流水等等 
        return true;
    } else {
        //$result->$responseNode->sub_msg 這個參數 是返回的錯誤信息 
       throw new Exception($result->$responseNode->sub_msg);
    }
}
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM