require_once '../AopCertClient.php' ; require_once '../request/AlipayFundTransUniTransferRequest.php' ; /** * 证书类型AopCertClient功能方法使用测试,特别注意支付宝根证书预计2037年会过期,请在适当时间下载更新支付更证书 * 1、execute 证书模式调用示例 * 2、sdkExecute 证书模式调用示例 * 3、pageExecute 证书模式调用示例 */ //1、execute 使用 $aop = new AopCertClient (); $appCertPath = "应用证书路径(要确保证书文件可读),例如:/home/admin/cert/appCertPublicKey.crt" ; $alipayCertPath = "支付宝公钥证书路径(要确保证书文件可读),例如:/home/admin/cert/alipayCertPublicKey_RSA2.crt" ; $rootCertPath = "支付宝根证书路径(要确保证书文件可读),例如:/home/admin/cert/alipayRootCert.crt" ; $aop ->gatewayUrl = '支付宝 - 网上支付 安全快速!' ; $aop ->appId = '你的appid' ; $aop ->rsaPrivateKey = '你的应用私钥' ; $aop ->alipayrsaPublicKey = $aop ->getPublicKey( $alipayCertPath ); //调用getPublicKey从支付宝公钥证书中提取公钥 $aop ->apiVersion = '1.0' ; $aop ->signType = 'RSA2' ; $aop ->postCharset= 'utf-8' ; $aop ->format= 'json' ; $aop ->isCheckAlipayPublicCert = true; //是否校验自动下载的支付宝公钥证书,如果开启校验要保证支付宝根证书在有效期内 $aop ->appCertSN = $aop ->getCertSN( $appCertPath ); //调用getCertSN获取证书序列号 $aop ->alipayRootCertSN = $aop ->getRootCertSN( $rootCertPath ); //调用getRootCertSN获取支付宝根证书序列号 $request = new AlipayFundTransUniTransferRequest(); $arrData = [ 'out_biz_no' => 'Test' .time().rand(10000,99999), // 商户端的唯一订单号,对于同一笔转账请求,商户需保证该订单号唯一。 // 单笔无密转账到支付宝账户固定 // TRANS_ACCOUNT_NO_PWD 产品取值范围[0.1,100000000] // STD_RED_PACKET [0.01,100000000] 'trans_amount' => 0.1, // 订单总金额,单位为元,精确到小数点后两位, 'product_code' => 'TRANS_ACCOUNT_NO_PWD' , 'biz_scene' => 'DIRECT_TRANSFER' , // B2C现金红包、单笔无密转账到支付宝/银行卡 'order_title' => '测试提现' , // 转账业务的标题,用于在支付宝用户的账单里显示 'payee_info' => [ 'identity' => 'xxxxx' , // 参与方的唯一标识 'identity_type' => 'ALIPAY_LOGON_ID' , // 支付宝登录号,支持邮箱和手机号格式 'name' => 'xxxxx' , // 参与方真实姓名,如果非空,将校验收款支付宝账号姓名一致性。当identity_type=ALIPAY_LOGON_ID时,本字段必填。 ], 'remark' => '测试提现' ]; $request ->setBizContent(json_encode( $arrData ,JSON_UNESCAPED_UNICODE)); $result = $aop ->execute( $request ); $responseNode = str_replace ( "." , "_" , $request ->getApiMethodName()) . "_response" ; $resultCode = $result -> $responseNode ->code; if (! empty ( $resultCode )&& $resultCode == 10000){ echo "成功" ; } else { echo "失败" ; } print_r( $result ); |