# AliPay **Repository Path**: scarecrowpqs/ali-pay ## Basic Information - **Project Name**: AliPay - **Description**: 支付宝支付SDK - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-04-11 - **Last Updated**: 2022-05-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 本SDK的使用Demo以及回调Demo都在./test目录中,请进行查看 # 此SDK是商户直连版本,不支持服务商模式支付 # AliPaySdk 核心类详解 ```php /** * 构造函数 * AopSdk constructor. * @param array $config 配置信息 */ ScarecrowAlipay\AopSdk::__construct($config=[]); /** * 手机网站支付接口 * @param $subject 订单名称,必填 * @param $out_trade_no 商户订单号,商户网站订单系统中唯一订单号,必填 * @param $total_amount 付款金额,必填 * @param $body 商品描述 * @param int $timeout_express 超时时间 * @return mixed */ ScarecrowAlipay\AopSdk::WapPay($subject, $out_trade_no, $total_amount, $body="", $timeout_express="5m"); /** * App支付接口 * @param $subject 订单名称,必填 * @param $out_trade_no 商户订单号,商户网站订单系统中唯一订单号,必填 * @param $total_amount 付款金额,必填 * @param $body 商品描述 * @param int $timeout_express 超时时间 * @return mixed */ ScarecrowAlipay\AopSdk::AppPay($subject, $out_trade_no, $total_amount, $body="", $timeout_express="5m"); /** * PC网站扫码支付接口 * @param $subject 订单名称,必填 * @param $out_trade_no 商户订单号,商户网站订单系统中唯一订单号,必填 * @param $total_amount 付款金额,必填 * @param $body 商品描述 * @param int $timeout_express 超时时间 * @return mixed */ ScarecrowAlipay\AopSdk::NativePay($subject, $out_trade_no, $total_amount, $body="", $timeout_express="5m"); /** * 交易查询接口 * @param $trade_no 支付宝交易号,和商户订单号二选一 * @param $out_trade_no 商户订单号,和支付宝交易号二选一 * @return [] 查询结果 ScarecrowAlipay\AopSdk::Query($trade_no = "", $out_trade_no = ""); /** * 退款接口 * @param $trade_no 支付宝交易号,和商户订单号二选一 * @param $out_trade_no 商户订单号,和支付宝交易号二选一 * @param $refund_amount 退款金额,不能大于订单总金额 * @param $refund_reason 退款的原因说明 * @param $out_request_no 标识一次退款请求,同一笔交易多次退款需要保证唯一,如需部分退款,则此参数必传。 * @return [] 退款结果 */ ScarecrowAlipay\AopSdk::Refund($trade_no, $out_trade_no, $refund_amount, $refund_reason = "", $out_request_no = ""); /** * 退款详情查询接口 * @param $trade_no 支付宝交易号,和商户订单号二选一 * @param $out_trade_no 商户订单号,和支付宝交易号二选一 * @param $out_request_no 请求退款接口时,传入的退款请求号,如果在退款请求时未传入,则该值为创建交易时的外部交易号 * @return [] 查询结果 */ ScarecrowAlipay\AopSdk::RefundQuery($trade_no, $out_trade_no, $out_request_no = ""); /** * 关闭交易接口 * @param $trade_no 支付宝交易号,和商户订单号二选一 * @param $out_trade_no 商户订单号,和支付宝交易号二选一 * @return [] 请求结果 */ ScarecrowAlipay\AopSdk::ClosePay($trade_no = "", $out_trade_no = ""); /** * 账单下载接口 * @param $bill_type trade指商户基于支付宝交易收单的业务账单;signcustomer是指基于商户支付宝余额收入及支出等资金变动的帐务账单; * @param $bill_date 账单时间:日账单格式为yyyy-MM-dd,月账单格式为yyyy-MM。 * @return bool|mixed|aop\提交表单HTML文本|\SimpleXMLElement|\SimpleXMLElement[]|string */ ScarecrowAlipay\AopSdk::DataDownload($bill_type, $bill_date); /** * 撤单接口 * @param string $trade_no 支付宝交易号 * @param string $out_trade_no 商家订单号 * @return array|mixed */ ScarecrowAlipay\AopSdk::CanclePay($trade_no = "", $out_trade_no = ""); /** * 验签接口 * @param array $arr * @return bool */ ScarecrowAlipay\AopSdk::Check($arr = []); ``` --- ## Config.php ```php "", //商户私钥,您的原始格式RSA私钥 'merchant_private_key' => "", //异步通知地址 'notify_url' => "", //同步跳转 'return_url' => "", //编码格式 'charset' => "UTF-8", //签名方式 'sign_type'=>"RSA2", 'isDebug'=>true, //支付宝测试网关https://openapi.alipaydev.com/gateway.do 'gatewayUrl' => "https://openapi.alipay.com/gateway.do", // 'gatewayUrl'=>"https://openapi.alipaydev.com/gateway.do", //支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。 'alipay_public_key' => "" ); ``` --- ## Demo ```php WapPay('测试支付宝支付', 'TEST202204201556', 0.01); echo $info; //扫码支付 $info = $m->NativePay('测试支付宝支付', 'TEST202204211503', 0.01); echo $info; //APP支付 $info = $m->AppPay('测试支付宝支付App', 'TEST202204201532', 0.01); echo $info; //查询订单 $info = $m->Query('', 'TEST202204211503'); var_dump($info); //更多的API请到src/WechatSdk类中查看,你也可以自己封装尚未封装的接口 ``` --- ## 回调DEMO ```php Check($requestData) && (strtotime($requestData['gmt_create']) - time() <= 300)) { //TODO: 在这里进行业务逻辑处理 //TODO: 通知应答 echo "SUCCESS"; die(); } echo "FAIL"; ```