php實(shí)現(xiàn)單筆轉(zhuǎn)賬到支付寶功能
本文實(shí)例為大家分享了php實(shí)現(xiàn)單筆轉(zhuǎn)賬到支付寶的具體代碼,供大家參考,具體內(nèi)容如下
1.首先 去螞蟻金服簽約 單筆轉(zhuǎn)賬到支付寶
官方api文檔
2.需要的配置信息
1).應(yīng)用appid

2).生成密鑰
根據(jù)文檔步驟生成

上傳這里的 應(yīng)用公鑰


3.下載官方sdk 然后集成到自己項(xiàng)目
官方實(shí)例
//實(shí)例化客戶端
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");
//實(shí)例化具體API對(duì)應(yīng)的request類,類名稱和接口名稱對(duì)應(yīng),當(dāng)前調(diào)用接口名稱:alipay.open.public.template.message.industry.modify
AlipayOpenPublicTemplateMessageIndustryModifyRequest request = new AlipayOpenPublicTemplateMessageIndustryModifyRequest();
//SDK已經(jīng)封裝掉了公共參數(shù),這里只需要傳入業(yè)務(wù)參數(shù)
//此次只是參數(shù)展示,未進(jìn)行字符串轉(zhuǎn)義,實(shí)際情況下請(qǐng)轉(zhuǎn)義
request.setBizContent(" {" +
" \"primary_industry_name\":\"IT科技/IT軟件與服務(wù)\"," +
" \"primary_industry_code\":\"10001/20102\"," +
" \"secondary_industry_code\":\"10001/20102\"," +
" \"secondary_industry_name\":\"IT科技/IT軟件與服務(wù)\"" +
" }");
AlipayOpenPublicTemplateMessageIndustryModifyResponse response = alipayClient.execute(request);
//調(diào)用成功,則處理業(yè)務(wù)邏輯
if(response.isSuccess()){
//.....
}
效果如下

我的代碼
<?php
/**
* create by 適可而止
* create time 2018/4/8
*/
namespace Org\Util;
class AlipayTransfer{
private $appId = 'appid';
private $rsaPrivateKey = '私鑰';
private $alipayrsaPublicKey = "支付寶公鑰";
private $payer_name = "xx科技";
private $aop;
public function __construct()
{
$g_alipay = C('ALIPAY_CONFIG');
$this->appId = $g_alipay['APPID'];//appid
$this->rsaPrivateKey = $g_alipay['rsaPrivateKey']; //私鑰
$this->alipayrsaPublicKey=$g_alipay['rsaPublicKey'];//支付寶公鑰
//引入單筆轉(zhuǎn)賬sdk
Vendor('Alipayaop.AopSdk');
}
public function init_aop_config()
{
$this->aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
$this->aop->appId = $this->appId;
$this->aop->rsaPrivateKey = $this->rsaPrivateKey;
$this->aop->alipayrsaPublicKey=$this->alipayrsaPublicKey;
$this->aop->apiVersion = '1.0';
$this->aop->signType = 'RSA2';
$this->aop->postCharset='UTF-8';
$this->aop->format='json';
}
/**
* 單筆轉(zhuǎn)賬接口
* @param $order_number 訂單號(hào)
* @param $pay_no 轉(zhuǎn)賬賬號(hào)
* @param $pay_name 轉(zhuǎn)賬用戶名
* @param $amount 轉(zhuǎn)賬金額
* @param $memo 備注
*/
public function transfer($order_number,$pay_no,$pay_name,$amount,$memo)
{
//存入轉(zhuǎn)賬日志
$this->transferLog($order_number,$pay_no,$pay_name,$amount);
$this->aop = new \AopClient ();
//配置參數(shù)
$this->init_aop_config();
//導(dǎo)入請(qǐng)求
$request = new \AlipayFundTransToaccountTransferRequest ();
$request->setBizContent("{" .
"\"out_biz_no\":\"".$order_number."\"," .//商戶生成訂單號(hào)
"\"payee_type\":\"ALIPAY_LOGONID\"," .//收款方支付寶賬號(hào)類型
"\"payee_account\":\"".$pay_no."\"," .//收款方賬號(hào)
"\"amount\":\"".$amount."\"," .//總金額
"\"payer_show_name\":\"".$this->payer_name."\"," .//付款方賬戶
"\"payee_real_name\":\"".$pay_name."\"," .//收款方姓名
"\"remark\":\"".$memo."\"" .//轉(zhuǎn)賬備注
"}");
$result = $this->aop->execute ( $request);
$responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
$resultCode = $result->$responseNode->code;
$resultSubMsg = $result->$responseNode->sub_msg;
//修改轉(zhuǎn)賬日志
$this->edit_transferLog($order_number,$resultCode,$resultSubMsg);
if(!empty($resultCode)&&$resultCode == 10000){
return true;
} else {
return false;
}
}
/**
* 存取日志
*/
private function transferLog($order_number,$pay_no,$pay_name,$amount)
{
$data['order_number'] = $order_number;
$data['pay_no'] = $pay_no;
$data['pay_name'] = $pay_name;
$data['amount'] = $amount;
$data['create_time'] = time();
M('AlipayTransferLog')->add($data);
}
/**
* 修改日志
*/
private function edit_transferLog($order_number,$result_code,$sub_msg)
{
$model = D("AlipayTransferLog");
$where['order_number'] = $order_number;
$result = $model->where($where)->order('create_time desc')->find();
if ($result_code == 10000)
{
$result['status'] = 1;
$sub_msg = 'success';
}
else
{
$result['status'] = 2;
}
$result['memo'] = $sub_msg;
$result['update_time'] = time();
M('AlipayTransferLog')->save($result);
}
/**
* 查單接口
*/
public function query($order_number)
{
$this->aop = new \AopClient ();
//配置參數(shù)
$this->init_aop_config();
$request = new \AlipayFundTransOrderQueryRequest ();
$request->setBizContent("{" .
"\"out_biz_no\":\"".$order_number."\"" .
" }");
$result = $this->aop->execute ( $request);
$responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
$resultCode = $result->$responseNode->code;
if(!empty($resultCode)&&$resultCode == 10000){
$res_arr['code'] = '00';
$res_arr['data'] = $result;
} else {
$res_arr['code'] = '-1';
}
return $res_arr;
}
}
?>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- PHP與以太坊交互詳解
- php實(shí)現(xiàn)微信企業(yè)轉(zhuǎn)賬功能
- 微信企業(yè)轉(zhuǎn)賬之入口類分裝php代碼
- php實(shí)現(xiàn)微信公眾號(hào)企業(yè)轉(zhuǎn)賬功能
- php7中停止php-fpm服務(wù)的方法詳解
- PHP 對(duì)接美團(tuán)大眾點(diǎn)評(píng)團(tuán)購(gòu)券(門票)的開(kāi)發(fā)步驟
- PHP小程序后臺(tái)部署運(yùn)行 LNMP+WNMP的方法
- 為PHP模塊添加SQL SERVER2012數(shù)據(jù)庫(kù)的步驟詳解
- php微信小程序解包過(guò)程實(shí)例詳解
- 利用ajax+php實(shí)現(xiàn)商品價(jià)格計(jì)算
- PHP實(shí)現(xiàn)創(chuàng)建以太坊錢包轉(zhuǎn)賬等功能
相關(guān)文章
php設(shè)計(jì)模式之原型模式分析【星際爭(zhēng)霸游戲案例】
這篇文章主要介紹了php設(shè)計(jì)模式之原型模式,結(jié)合星際爭(zhēng)霸游戲案例形式分析了PHP原型模式的原理、使用方法與操作注意事項(xiàng),需要的朋友可以參考下2020-03-03
form表單傳遞數(shù)組數(shù)據(jù)、php腳本接收的實(shí)例
下面小編就為大家?guī)?lái)一篇form表單傳遞數(shù)組數(shù)據(jù)、php腳本接收的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
詳解php中serialize()和unserialize()函數(shù)
這篇文章主要介紹了php的serialize()函數(shù)和unserialize()函數(shù)的相關(guān)資料,需要的朋友可以參考下2017-07-07
ThinkPHP 6 添加跳轉(zhuǎn)提示擴(kuò)展 liliuwei/thinkphp-jump的操作
liliuwei/thinkphp-jump 是 TP5 中經(jīng)典跳轉(zhuǎn)提示,在 TP6 中已經(jīng)取消,通過(guò) composer 下載該擴(kuò)展可以在 TP6 中使用 TP5 的跳轉(zhuǎn)提示操作,這篇文章主要介紹了ThinkPHP 6 添加跳轉(zhuǎn)提示擴(kuò)展 liliuwei/thinkphp-jump,需要的朋友可以參考下2023-08-08
php empty 函數(shù)判斷結(jié)果為空但實(shí)際值卻為非空的原因解析
這篇文章主要介紹了php empty 函數(shù)判斷結(jié)果為空但實(shí)際值卻為非空的原因解析,下面是腳本之家小編處理之后的調(diào)試記錄,分享到腳本之家平臺(tái),感興趣的朋友一起看看2018-05-05
php設(shè)計(jì)模式之組合模式實(shí)例詳解【星際爭(zhēng)霸游戲案例】
這篇文章主要介紹了php設(shè)計(jì)模式之組合模式,結(jié)合星際爭(zhēng)霸游戲案例形式分析了php設(shè)計(jì)模式之組合模式相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-03-03
WordPress中獲取所使用的模板的頁(yè)面ID的簡(jiǎn)單方法
這篇文章主要介紹了WordPress中獲取所使用的模板的頁(yè)面ID的簡(jiǎn)單方法,通過(guò)這個(gè)方法來(lái)獲取頁(yè)面的鏈接是比較方便的,需要的朋友可以參考下2015-12-12
php實(shí)現(xiàn)在線生成條形碼示例分享(條形碼生成器)
php實(shí)現(xiàn)在線生成條形碼,可以做一個(gè)條形碼生成器,大家參考使用吧2013-12-12

