PHP SDK 使用说明¶
SDK 版本记录¶
版本 |
日期 |
说明 |
v1.0.2 |
2019-08-29 |
优化接口调用 |
v1.0.1 |
2019-08-22 |
优化接口调用 |
v1.0.0 |
2019-08-08 |
Adapay 初版 |
版本要求¶
PHP 版本 5.6 及以上
接入方法¶
下载 SDK
下载文件里包含 SDK 和 Demo 两个目录。SDK 目录下为待添加到项目中的文件,Demo 目录下为示例项目,供接入时参考使用。
获取 API Key
API Key 是您在 Adapay 系统中的身份标识,凭此可使用 Adapay 提供的 SDK 以及 API 服务
API Key 获取路径:「控制台」->「商户信息管理」->「证书管理」
privateKey(RSA 私钥)
privateKey 为您本地生成的 RSA 私钥 (阿里云开放平台RSA工具) 生成选择PKCS8格式, SDK 在与 Adapay 服务端进行接口请求时,会使用此私钥进行加密。
对应的公钥请上传至「控制台」->「商户信息管理」->「证书管理」
publicKey(RSA 公钥)
publicKey 是 Adapay 为您生成的 RSA 公钥,SDK 在与 Adapay 服务端进行接口请求时 SDK 需要 publicKey 进行解签
publicKey 可通过「控制台」->「商户信息管理」->「证书管理」进行下载。
SDK 导入
在支付模块中引入 SDK, 参考如下:
// 加载基础 adapay 基础类
// SDK 初始化文件加载
include_once dirname(__FILE__). "/../adapay/init.php";
// 在文件中设置 DEBUG 为 true 时, 则可以打印日志到指定的日志目录下 LOG_DIR
include_once dirname(__FILE__). "/../demo/config.php";
使用方法¶
初始化
加载 Adapay 基础类
// SDK 初始化文件加载
include_once dirname(__FILE__). "/../adapay/init.php";
// 在文件中设置 DEBUG 为 true 时,则可以打印日志到指定的日志目录下 LOG_DIR,设置 SDK 日志所在的目录
include_once dirname(__FILE__). "/../demo/config.php";
发起支付¶
当您想发起一次支付请求时需要通过 Adapay 提供的创建方法获取一个新的 Charge对象,您可使用此 Charge对象 发起支付。对于支付结果,Adapay 会发送 异步消息通知 告知。
调用示例
# 初始化支付类
$charge = new \AdaPay\Charge();
# 支付必传参数
# 支付app_id
$charge->payCharge->app_id = "app_P000002052092068";
# 订单号
$charge->payCharge->order_no = date("YmdHis").rand(100000, 999999);
# 支付方式
$charge->payCharge->pay_channel = 'alipay';
# 过期时间
$charge->payCharge->time_expire = '20200101000000';
# 支付金额
$charge->payCharge->amount = '0.01';
# 商品标题
$charge->payCharge->subject = 'suject';
# 商品描述
$charge->payCharge->body = 'body';
# 发起支付
$charge->create();
# 对支付结果进行处理
if ($charge->isError()){
//失败处理
var_dump($charge->result);
} else {
//成功处理
var_dump($charge->result);
}
参数说明
调用参数详见 创建支付 。
支付订单查询¶
调用示例
# 初始化支付类
$charge = new \AdaPay\Charge();
# 设置支付对象ID
$charge->queryOrder->charge_id = "002112019080507415500004356370429198336";
#
$charge->orderQuery();
# 对关单结果进行处理
if ($charge->isError()){
//失败处理
var_dump($charge->result);
} else {
//成功处理
# 加载SDK需要的文件
var_dump($charge->result);
}
参数说明
调用参数详见 支付查询 。
发起退款¶
当您的业务需要发起退款时,可通过 Adapay 系统提供的创建 Refund对象 方法创建一个退款对象,发起退款请求。
调用示例
#初始化退款对象
$refund = new \AdaPay\refund();
# 原交易支付对象 id
$refund->refundOrderInfo->charge_id = "002112019080507415500004356370429198336";
# 退款订单号
$refund->refundOrderInfo->order_no = "100000001200021";
# 退款金额
$refund->refundOrderInfo->amount = "10.00";
# 退款描述
$refund->refundOrderInfo->description = "退款描述";
# 扩展域
$refund->refundOrderInfo->extra = "";
# 设备静态信息
$refund->refundOrderInfo->device_info = "";
# 发起退款
$refund->orderRefund();
# 对退款结果进行处理
if ($refund->isError()){
//失败处理
var_dump($refund->result);
} else {
//成功处理
var_dump($refund->result);
}
参数说明
调用参数详见 创建退款 。
退款订单查询¶
通过 Refund对象 的 id 查询一个已创建的退款记录。
调用示例
# 初始化退款对象
$refund = new \AdaPay\refund();
# refund_id 或 charge_id 二选一
$refund->refundOrderQuery->refund_id = "";
# 传递参数订单号
$refund->refundOrderQuery->charge_id = "002112019080507415500004356370429198336";
# 发起退款查询
$refund->orderRefundQuery();
# 对退款结果进行处理
if ($refund->isError()){
//失败处理
var_dump($refund->result);
} else {
//成功处理
var_dump($refund->result);
}
参数说明
调用参数详见 退款查询 。
关闭订单¶
针对已经创建的 Charge,您可以调用关单接口进行交易的关闭。
调用示例
# 初始化支付类
$charge = new \AdaPay\Charge();
# 设置支付对象 id
$charge->closeOrderInfo->charge_id = "002112019080507415500004356370429198336";
# 设置描述
$charge->closeOrderInfo->description = "关单描述";
# 设置扩展域
$charge->closeOrderInfo->extra = "{\"key\": \"1233\"}";
# 发起关单
$charge->orderClose();
# 对关单结果进行处理
if ($charge->isError()){
//失败处理
var_dump($charge->result);
} else {
//成功处理
var_dump($charge->result);
}
参数说明
调用参数详见 关单 。
异步消息通知¶
以脚本方式启动,具体参考 Demo 目录下的 subscribe.php
调用示例
include_once dirname(__FILE__). "/../adapay/init.php"; //加载 Adapay 目录下的 init.php
include_once dirname(__FILE__). "/../demo/config.php"; //加载配置文件 包含 API_KEY (接入时系统分配的)和 RSA 私钥
处理消息的回调函数
# 消息回调函数
$callback = function ($message){
//商户需要对消息结果处理
//$message 格式:{"appId": "商户appId" ,"created": "创建时间年月日时分秒", "data": "{\"amount"\:\"0.01\"}", //"type":"charge.succeeded"}
};
# 实例化消息订阅类
$worker = new \AdaPay\MessageSubscribe();
# 启动消息监听服务进程
$worker->workerStart($worker, function ($content) use ($callback){
call_user_func($callback, $content); //设置接收消息回调处理
});
然后在服务器上执行 PHP 可执行文件所在的目录 + (linux: php subscribe.php start) (windows: php subscribe.php)启动消息监听
返回数据示例
不同事件异步消息返回数据,详见 异步消息数据示例 。