一起做网店网站打不开,php语言的网站建设,柳州旅游网站建设,外贸网站展示还是商城alipay.fund.trans.tobank.transfer(单笔转账到银行账户接口)
小程序文档 - 支付宝文档中心
一、下载支付宝SDK#xff0c;现有版本v1、v2、v3
https://github.com/alipay/alipay-sdk-php-all
github 慢的话#xff0c;DNS 直达即可 140.82.112.3 github.com
【host文…alipay.fund.trans.tobank.transfer(单笔转账到银行账户接口)
小程序文档 - 支付宝文档中心
一、下载支付宝SDK现有版本v1、v2、v3
https://github.com/alipay/alipay-sdk-php-all
github 慢的话DNS 直达即可 140.82.112.3 github.com
【host文件路径c:\windows\system32\drivers\etc】 二、引用代码编写
?php//支付宝转账到银行卡配置function alipay_init_bank() {//调用支付宝身份证认证接口require_once WY_ROOT . /includes/aop/AopCertClient.php; //支付宝加载require_once WY_ROOT . /includes/aop/AopClient.php; //支付宝加载require_once WY_ROOT . /includes/aop/AopCertification.php; //支付宝加载require_once WY_ROOT . /includes/libs/Config.php; //配置加载require_once dirname(WY_ROOT) . /ApiV1 . /function_apiv1.php; //引用 加载$aop new AopCertClient ();$config Config::getInstance();$appCertPath ; //应用证书路径要确保证书文件可读$alipayCertPath ; //支付宝公钥证书路径要确保证书文件可读$rootCertPath ; //支付宝根证书路径要确保证书文件可读
// $alipay_config ; //支付宝配置文件$alipay_config $config-alipay_bank_config;$appCertPath WY_ROOT . /includes/aop/cert3/appCertPublicKey_2021002131640271.crt; //例如/home/admin/cert/appCertPublicKey.crt;$alipayCertPath WY_ROOT . /includes/aop/cert3/alipayCertPublicKey_RSA2.crt; //例如/home/admin/cert/alipayCertPublicKey_RSA2.crt;$rootCertPath WY_ROOT . /includes/aop/cert3/alipayRootCert.crt; //例如/home/admin/cert/alipayRootCert.crt;$aop-gatewayUrl https://openapi.alipay.com/gateway.do;
// $aop-methodalipay.fund.trans.tobank.transfer;$aop-appId $alipay_config[appId];$aop-rsaPrivateKey $alipay_config[rsaPrivateKey];$aop-alipayrsaPublicKey $aop-getPublicKey($alipayCertPath);$aop-apiVersion $alipay_config[apiVersion];$aop-signType $alipay_config[signType];$aop-postCharset $alipay_config[postCharset];$aop-format $alipay_config[format];$aop-isCheckAlipayPublicCert true; //是否校验自动下载的支付宝公钥证书如果开启校验要保证支付宝根证书在有效期内$aop-appCertSN $aop-getCertSN($appCertPath); //调用getCertSN获取证书序列号$aop-alipayRootCertSN $aop-getRootCertSN($rootCertPath); //调用getRootCertSN获取支付宝根证书序列号return $aop;}/*** 支付宝转账到银行卡* param type $data 用户信息* param type $orderId 订单号* param type $money 订单金额* param type $fee 手续费* return type $ret array(error false, //是否出错error_msg //错误信息);*/public function alipay_bank($data, $orderId, $money, $fee) {require_once dirname(WY_ROOT) . /ApiV1 . /function_apiv1.php; //引用 加载$ret array(error false, //是否出错error_msg //错误信息);$pub new ALLClass();$realmoney $money - $fee; //实际支付 $realmoney sprintf(%.2f, $realmoney); //精确到小数点后两位require_once WY_ROOT . /includes/aop/request/AlipayFundTransTobankTransferRequest.php;$request new AlipayFundTransTobankTransferRequest ();$this-aop $this-alipay_init_bank();$payee_card_no $data[bank_account_id]; //银行卡号$payer_real_name ; //付款方名称
// $payer_real_name;//付款方名称$payee_account_name $data[bank_account_name]; //收款名称$payee_inst_name $data[position]; //收款行$bizContentObj[out_biz_no] $orderId; //商户端的唯一订单号对于同一笔转账请求商户需保证该订单号唯一。201806300001$bizContentObj[amount] $realmoney; // $realmoney; //订单总金额单位为元精确到小数点后两位STD_RED_PACKET产品取值范围[0.01,100000000]$bizContentObj[payer_real_name] $payer_real_name;$bizContentObj[payee_card_no] $payee_card_no;$bizContentObj[payee_account_name] $payee_account_name;$bizContentObj[payee_account_type] 2;$bizContentObj[payee_inst_name] $payee_inst_name;$bizContentObj[payee_inst_province] ;$bizContentObj[payee_inst_city] ;$bizContentObj[payee_inst_branch_name] ;$bizContentObj[payee_bank_code] ;$bizContentObj[time_liness] T0;$bizContentObj[memo] ;$bizContentObj[remark] 结算款; //业务备注$pub-data_log($bizContentObj, __FUNCTION__ . .log);$request-setNotifyUrl(https://alipay_notify_url.php);//回调地址$request-setBizContent(json_encode($bizContentObj, JSON_UNESCAPED_UNICODE));$result $this-aop-execute($request);$pub-data_log(alipay_fund_transfer_new . json_encode($result, JSON_UNESCAPED_UNICODE), __FUNCTION__ . .log);$responseNode str_replace(., _, $request-getApiMethodName()) . _response;$resultCode $result-$responseNode-code;if (!empty($resultCode) $resultCode 10000) {$pub-data_log(Success, __FUNCTION__ . .log);} else {$ret[error] true;$ret[error_msg] $result-$responseNode-sub_msg;$pub-data_log(error_msg . $ret[error_msg], __FUNCTION__ . .log);}return $ret;}/**
回调验签
*/
function check_sign(){
$postData parameters_certification();
require_once WY_ROOT . /includes/aop/AopCertClient.php; //支付宝加载
$aop new AopCertClient ();
$alipayCertPath ; //支付宝公钥证书路径要确保证书文件可读
$alipayCertPath WY_ROOT . /includes/aop/cert3/alipayCertPublicKey_RSA2.crt; //例如/home/admin/cert/alipayCertPublicKey_RSA2.crt;
$aop-alipayrsaPublicKey $aop-getPublicKey($alipayCertPath);
$bool$aop-rsaCheckV1($postData, $alipayCertPath,$postData[sign_type]);
if(!$bool){die(sign error.);
}}/*** 参数验证* param array $field 参数索引数组【a,b】* param array $data 需要验证数组不传拿$_REQUEST* return boolean | array 不存在参数空参数返回false否则返回验证数组*/
function parameters_certification($field [], $data []) {if (empty($data)) {$data $_REQUEST;}if (empty($field)) {return $data;}foreach ($field as $val) {if (isset($data[$val])) {if (is_array($data[$val])) {if (empty($data[$val])) {return false;} else {continue;}}if (strlen($data[$val]) 0) {continue;} else {return false;}} else {return false;}}return $data;
}? 回调的时候默认签名使用的是 rsaCheckV1
暂时还没有碰到 rsaCheckV2 的本来我以为我发送的是V2版本的签名回调也是V2的
后面试了又试rsaCheckV1 无疑了 支付宝的SDK无疑是很完善的接入也方便很多
这里使用的是V2版本