支付寶單筆轉賬demo (改配置直接用)


 

支付寶接口說明文檔  https://docs.open.alipay.com/api_28/alipay.fund.trans.toaccount.transfer

需要注意的是:rsa的  公鑰和私鑰 是不要空格,換行 和 開始和前后的那個 -----BEGIN PUBLIC KEY-----   -----END PUBLIC KEY----- 的,就是一行字符串 ,還有就是一定搞對了 對應的值。我在做的時候公鑰錯了, 把報錯提示全部打開,然后根據它拋出的錯誤一點點打印,很快能幫助你找出原因。還有就是做好加log日志。養成好習慣方便以后出問題查找問題原因。

 

<?php


/***調試的時候打開這個,可以顯示出來拋出的錯誤,幫助快速解決問題***/
// ini_set("display_errors","on");
// error_reporting(E_ALL);   


require_once dirname(dirname(dirname(__FILE__)))."/plugin/alipay_transfer/AopSdk.php";//只要引用AopSdk.php這個文件即可,sdk不用動
$c = new AopClient;
$c->gatewayUrl = "https://openapi.alipay.com/gateway.do";
$c->appId = "2017000000";//app_id    非 parter_id
$c->rsaPrivateKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';//注意這是一行去頭去尾的支付寶的rsa私鑰 
$c->format = "json";
$c->charset= "utf-8";
$c->signType= "RSA";
$c->alipayrsaPublicKey ='xxxxxxxxxxxxxxxxxxxxxxxxxx';//注意這是一行去頭去尾的支付寶公鑰


$request = new AlipayFundTransToaccountTransferRequest();
$arr['out_biz_no'] = "xxxxx"//商戶轉賬唯一訂單號
$arr['payee_type'] = "ALIPAY_LOGONID";//支付寶登錄號,支持郵箱和手機號格式。
$arr['payee_account'] = "xxxxx@qq.com";//收款方賬戶。
$arr['amount'] = number_format("10",2);//    轉賬金額,單位:元。 只支持2位小數,
$arr['payer_show_name'] = "xxx公司";//    轉賬記錄里顯示的名字
$arr['payee_real_name'] = "張三";//支付寶用戶姓名,
$arr['remark'] = "備注";//    備注,

$request->setBizContent(json_encode($arr));
// echo "<pre>";
$response= $c->execute($request);
// print_r($response->response);//調試過程有問題可以打印這個看看,根據拋出的錯誤位置一點點往上打印,基本能查出問題所在
$resultCode = $response->alipay_fund_trans_toaccount_transfer_response->code;

$log['resultCode'] = $response->alipay_fund_trans_toaccount_transfer_response->code;
$log['msg'] = $response->alipay_fund_trans_toaccount_transfer_response->msg;
$log['sub_msg'] = $response->alipay_fund_trans_toaccount_transfer_response->sub_msg;
$log['out_biz_no'] = $response->alipay_fund_trans_toaccount_transfer_response->out_biz_no;
$log['order_id'] = $response->alipay_fund_trans_toaccount_transfer_response->order_id;
$log['pay_date'] = $response->alipay_fund_trans_toaccount_transfer_response->pay_date;
$log['sign'] = $response->sign;

file_put_contents("/data/log/ali_transfer.log",json_encode($log)."\r\n",FILE_APPEND);//建議做日志,方便后期查找問題

if(!empty($resultCode)&&$resultCode == 10000){
    echo "成功";
} else {
$sub_msg = $response->alipay_fund_trans_toaccount_transfer_response->sub_msg;
    echo $sub_msg; //失敗說明
}

 


免責聲明!

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



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