+
95
-

回答

登陆支付宝商家平台,在产品中心开通转账到支付宝账户产品

800_auto

然后登陆支付宝开放平台,创建一个应用,绑定这个产品,获取应用id,然后点击开发设置-》设置接口加密方式

800_auto

加密方式选择证书,然后按照引导的步骤打开支付宝开放平台秘钥工具生成私有证书

800_auto

最终会生成6个证书

800_auto

800_auto

下载php的sdk

下载地址:alipay-sdk-PHP-4.9.2.zip

具体的实现代码如下:

点击查看全文

<?php
require_once '../aop/AopClient.php';
require_once '../aop/AopCertClient.php';
require_once '../aop/AopCertification.php';
require_once '../aop/request/AlipayFundTransUniTransferRequest.php';
 //1、execute 使用
$aop = new AopCertClient ();

$aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
$aop->appId ="appid";
$aop->rsaPrivateKey = "应用私钥";
$aop->alipayrsaPublicKey = $aop->getPublicKey("公钥路径");//调用getPublicKey从支付宝公钥证书中提取公钥
$aop->apiVersion = '1.0';
$aop->signType = 'RSA2';
$aop->postCharset = 'utf-8';
$aop->format = 'json';
$aop->isCheckAlipayPublicCert = true;//是否校验自动下载的支付宝公钥证书,如果开启校验要保证支付宝根证书在有效期内
$aop->appCertSN = $aop->getCertSN("应用证书路径");//调用getCertSN获取证书序列号
$aop->alipayRootCertSN = $aop->getRootCertSN("支付宝根证书路径");//调用getRootCertSN获取支付宝根证书序列号
$request = new AlipayFundTransUniTransferRequest();
$request->setBizContent("{".
	"\"out_biz_no\":\"201806300001\",".
	"\"sign_data\":{".
		"\"ori_out_biz_no\":\"商户订单号\",".
		"\"ori_sign_type\":\"RSA2\",".
		"\"ori_sign\":\"EqHFP0z4a9iaQ1ep==\",".
		"\"ori_char_set\":\"UTF-8\",".
		"\"partner_id\":\"签名被授权方支付宝账号ID\",".
		"\"ori_app_id\":\"2021000185629012\"".
	"},".
	"\"remark\":\"单笔转账\",".
	"\"original_order_id\":\"20190620110075000006640000063056\",".
	"\"business_params\":\"{\\\"sub_biz_scene\\\":\\\"REDPACKET\\\"}\",".
	"\"biz_scene\":\"DIRECT_TRANSFER\",".
	"\"payee_info\":{".
		"\"identity\":\"testaccount@alipay.com\",".
		"\"identity_type\":\"ALIPAY_OPEN_ID\",".
		"\"name\":\"黄龙国际有限公司\"".
	"},".
	"\"trans_amount\":\"23.00\",".
	"\"product_code\":\"TRANS_ACCOUNT_NO_PWD\",".
	"\"order_title\":\"转账标题\"".
"}");
$responseResult = $aop->execute($request);
$responseApiName = str_replace(".","_",$request->getApiMethodName())."_response";
$response = $responseResult->$responseApiName;
if(!empty($response->code)&&$response->code==10000){
	echo("调用成功");
}
else{
	echo("调用失败");
}

网友回复

我知道答案,我要回答