支付寶B2C現金紅包接入全流程


一,官方文檔說明入口

  https://opendocs.alipay.com/open/20190111144811460526/quickstart

  環境配置 php + thinkphp3.2

二,紅包步驟

  前期准備,應用申請及開放平台設置(關鍵是 公鑰證書 設置)

  App<==>后端(php)授權串(支付寶登錄授權完成版

  App->授權后拿到支付寶唯一標識uid->后端php( alipay.fund.trans.uni.transfer )

三,步驟說解

  1,下載  支付寶開放平台開發助手windows版  非java放言選擇非JAVA適用

  

 

 

    獲取csr文件:和開放平台申請填寫信息完全一致。

 

 

 按說明:配置好公鑰證書相關。

 

 

 

二,APP向PHP請求完整授權串

  

$sign_type = 'RSA2';
$data = [
	'apiname'	=>	'com.alipay.account.auth',
	'method'	=>	'alipay.open.auth.sdk.code.get',
	'app_id'	=>	$app_id,
	'app_name'	=>	'mc',
	'biz_type'	=>	'openservice',
	'pid'		=>	$pid,
	'product_id'  =>	'APP_FAST_LOGIN',
	'scope'		=>	'kuaijie',
	'target_id'	=>	$target_id,
	'auth_type'	=>	'AUTHACCOUNT',
	'sign_type'	=>	$sign_type,
];
vendor('alipay2.AopCertClient');
$aop = new \AopCertClient;
$aop->gatewayUrl             = 'https://openapi.alipay.com/gateway.do';
$aop->appId                 = $app_id;
$aop->rsaPrivateKey         = $aliConf['rsaPrivateKey'];          //私鑰
$aop->alipayrsaPublicKey    = $aliConf['rsaPublicKey'];           //公鑰
$aop->apiVersion             = '1.0';
$aop->signType                 = 'RSA2';
$aop->postCharset            = 'UTF-8';
$aop->format                = 'json';
$aop->appCertSN                = $aop->getCertSN(支付寶應用證書路徑);        //支付寶應用證書
$aop->alipayRootCertSN        = $aop->getRootCertSN(支付寶應用根證書路徑);    //根證書sn      
$data["sign"] = urlencode($aop->generateSign($data, $sign_type))
$strArr = [];
foreach ($data as $k => $v){
     $strArr[] = "$k=$v";
}
$authInfo = implode('&',$strArr);
返回授權串$authInfo給客戶端調用,客戶正常授權后拿支付寶uid

 

三,APP拿授權后uid向PHP請求發送支付寶紅包

vendor('alipay2.request.AlipayFundTransUniTransferRequest');
$request = new \AlipayFundTransUniTransferRequest();

$payee_info = [
	'identity'		=>	支付寶uid,
	'identity_type'	=>	"ALIPAY_USER_ID",
];
$payParams = [
	"out_biz_no"		=> 訂單號,
	"trans_amount"		=> 紅包金額,
	"product_code"		=> "STD_RED_PACKET",
	"biz_scene"			=> "DIRECT_TRANSFER",
	"order_title"		=> "紅包標題",
	"payee_info"		=> $payee_info,
	"remark"			=> "紅包描述",
];
$request->setBizContent(json_encode($payParams));
vendor('alipay2.AopCertClient');
$aop = new \AopCertClient;
$aop->gatewayUrl 			= 'https://openapi.alipay.com/gateway.do';
$aop->appId 				= $app_id;
$aop->rsaPrivateKey 		= $aliConf['rsaPrivateKey'];
$aop->alipayrsaPublicKey	= $aliConf['rsaPublicKey'];
$aop->apiVersion 			= '1.0';
$aop->signType 				= 'RSA2';
$aop->postCharset			= 'UTF-8';
$aop->format				= 'json';
$aop->appCertSN				= $aop->getCertSN($aliConf['alipayrsaAppPath']);		//支付寶應用證書
$aop->alipayRootCertSN		= $aop->getRootCertSN($aliConf['alipayrsaRootPath']);	//根證書sn
$aliResult = call_user_func_array([$aop,'excute'],[$request]);


array(
   'alipay_fund_trans_uni_transfer_response' =>
  stdClass::__set_state(array(
     'code' => '10000',
     'msg' => 'Success',
     'out_biz_no' => 'xxxxx',
     'order_id' => 'xxxxx',
     'pay_fund_order_id' => 'xxxxxxxx',
     'status' => 'SUCCESS',
     'trans_date' => '2019-08-21 00:00:00',
  )),
   'sign' => 'ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE',
)

 

四,注意事項

  1,支付寶紅包要用公鑰證書,類似微信紅包有證書文件需要上傳到服務器。

  2,PHP SDK要用 AopCertClient 申明

完結,更多關注支付寶官方文檔,不過文檔里的示例可以好久沒有更新了,證書那塊有點問題。

 


免責聲明!

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



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