PHP 商户进件 SDK 使用文档¶
简介¶
此 SDK 包含商户开户、商户开户查询、商户入驻、商户入驻查询功能。渠道商可通过此 SDK 快速进件。
SDK 版本记录¶
版本 |
日期 |
说明 |
2020-07-21 |
增加新增应用接口 |
|
2020-06-05 |
增加商户审核状态查询接口 |
|
v1.0.3 |
2020-03-11 |
增加商户附件上传接口 |
v1.0.2 |
2019-12-11 |
优化代码 |
v1.0.1 |
2019-11-29 |
优化异步通知 |
v1.0.0 |
2019-09-18 |
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 可通过 「控制台」 ->「商户信息管理」->「证书管理」进行下载。
系统初始化¶
在使用 Adapay 前,请先完成系统初始化设置
调用示例
// 加载基础 adapay 基础类
// SDK 初始化文件加载
include_once dirname(__FILE__). "/../AdapayMerchantSdk/init.php";
// 在文件中设置 DEBUG 为 true 时, 则可以打印日志到指定的日志目录下 LOG_DIR
include_once dirname(__FILE__). "/config.php";
商户开户进件¶
商户可通过此接口方法进行商户进件
调用示例
$merchant = new \AdapayMerchantSdk\MerchantUser();
$merchant_params = [
"request_id"=> 'req_mer_'.date("YmdHis").rand(100000, 999999),
# 商户注册手机号
"usr_phone"=> "1300001".rand(1000,9999),
# 联系人姓名
"cont_name"=> "风清扬",
# 联系人手机号
"cont_phone"=> "13100001234",
# 客户邮箱
"customer_email"=> "cuif".rand(1000, 9999).'@163.com',
# 商户企业全称
"mer_name"=> "河南通达电缆股份有限公司a",
# 商户企业简称
"mer_short_name"=> "通达电缆",
# 营业执照号 三证合一
"license_code"=> "91410300X148288455",
# 注册地址
"reg_addr"=> "测试地址zaac",
# 经营地址
"cust_addr"=> "测试地址zaac",
# 商户电话
"cust_tel"=> "13333783701",
# 商户有效期
"mer_valid_date"=> "20201010",
# 法人姓名
"legal_name"=> "史万福",
# 法人证件类型
"legal_type"=> "0",
# 法人证件号码
"legal_idno"=> "321121198606115128",
# 法人手机号
"legal_mp"=> "13333333300",
# 法人身份证有效期
"legal_id_expires"=> "20300101",
# 结算银行卡号
"card_id_mask"=> "6222021703001692228",
# 银行code
"bank_code"=> "01020000",
# 银行开户姓名
"card_name"=> "农行银行",
# 结算银行类型
"bank_acct_type"=> "1",
# 结算银行卡省份code
"prov_code"=> "1100",
# 结算银行卡地区code
"area_code"=> "0011",
#身份证有效期开始时间
"legal_start_cert_id_expires"=> "20300101",
#营业执照有效期开始时间
"mer_start_valid_date"=> "20300101",
# 商户公钥
"rsa_public_key"=> "016515646131sdasd1as32d13as2d13asd13",
];
# 发起进件
$merchant->create(merchant_params);
# 对进件结果进行处理
if ($merchant->isError()){
//失败处理
var_dump($merchant->result);
} else {
//成功处理
var_dump($merchant->result);
}
参数说明
参数说明详见 开户进件
商户开户查询¶
查询商户开户结果
调用示例
$merchant = new \AdapayMerchantSdk\MerchantUser();
# 进件成功后的request_id
$merchant_params = ["request_id"=> "req_mer_20190912013859492871"];
# 发起进件
$merchant->query($merchant_params);
# 对进件结果进行处理
if ($merchant->isError()){
//失败处理
var_dump($merchant->result);
} else {
//成功处理
var_dump($merchant->result);
}
参数说明
参数说明详见 开户查询
商户入驻¶
渠道商对旗下用户进行商户入驻以及支付渠道批量配置
调用示例
$merConfig = new \AdapayMerchantSdk\MerchantConf();
$mer_config_params = [
"request_id"=> "req_cfg_".date("YmdHis").rand(100000, 999999),
# 推荐商户的api_key
"sub_api_key"=> "",
# 银行渠道号
"bank_channel_no"=> "",
# 费率
"fee_type"=> "01",
# 商户app_id
"app_id"=> "app_0c2acc98-7437-4de6-ad4c-7c38a0c782e4",
# 微信经营类目
"wx_category"=> "550",
# 支付宝经营类目
"alipay_category"=> "2015050700000000",
"cls_id"=> "5812",
# 服务商模式
"model_type"=> "1",
# 商户种类
"mer_type"=> "3",
# 省份code
"province_code"=> "310000",
# 城市code
"city_code"=> "310100",
# 县区code
"district_code"=> "310104",
# 配置信息值
"add_value_list"=> json_encode(['wx_lite'=> ['appid'=> '13213123123123']])
];
# 发起支付配置
$merConfig->create($mer_config_params);
# 对进件结果进行处理
if ($merConfig->isError()){
//失败处理
var_dump($merConfig->result);
} else {
//成功处理
var_dump($merConfig->result);
}
参数说明
参数说明详见 商户入驻
商户入驻修改¶
渠道商对旗下用户进行商户入驻信息修改或升级M3,目前仅支持支付宝渠道的操作,修改结果异步报文通知
调用示例
$merConfig = new \AdaPayMerchant\MerchantConf();
$mer_config_params = [
"request_id"=> "req_cfg_".date("YmdHis").rand(100000, 999999),
# 推荐商户的api_key
"sub_api_key"=> "api_live_826e0027-68b4-4468-ada8-aa35babdc86e",
"alipay_request_params"=> json_encode([
"mer_short_name"=> "尚云科技",
"mer_phone"=> "18919876721",
"fee_type"=> "02",
"card_no"=> "6227000734730752177",
"card_name"=> "浦发银行",
"category"=> "2015050700000000",
"cls_id"=> "5812",
"mer_name"=> "上海尚云科技服务有限公司",
"mer_addr"=> "上海市静安区",
"contact_name"=> "朱先生",
"contact_phone"=> "15866689123",
"contact_mobile"=> "15866689123",
"contact_email"=> "817888900@qq.com",
"legal_id_no"=> "310555196710215555",
"mer_license"=> "110108001111111",
"province_code"=> "310000",
"city_code"=> "310100",
"district_code"=> "310115",
], JSON_UNESCAPED_UNICODE)
];
# 发起商户进件修改
$merConfig->modify($mer_config_params);
# 对进件结果进行处理
if ($merConfig->isError()){
//失败处理
var_dump($merConfig->result);
} else {
//成功处理
var_dump($merConfig->result);
}
参数说明
参数说明详见 商户入驻修改
商户入驻查询¶
通过 request_id 查询商户入驻结果
调用示例
$merConfig = new \AdaPayMerchant\MerchantConf();
$mer_config_params = ["request_id"=> "req_20190912013859492871"]; // 请求参数
# 发起支付配置查询
$merConfig->query($mer_config_params);
# 对进件结果进行处理
if ($merConfig->isError()){
//失败处理
var_dump($merConfig->result);
} else {
//成功处理
var_dump($merConfig->result);
}
参数说明
参数说明详见 商户入驻查询
上送商户证照¶
上传商户附件信息
调用示例
# 初始化商户配置类
$merProfile = new \AdaPayMerchant\MerchantProfile();
$file_real_path = realpath('cbcd.png');
$fileInfo = pathinfo($file_real_path);
$mer_params = [
'subApiKey'=> 'api_live_fdcbcc99-4fef-4f23-a8f3-e21d7c7e4f7b',
'file'=> new \CURLFile($file_real_path,'', $fileInfo['basename']),
'fileType'=> '04'
];
var_dump($fileInfo['basename']);
# 发起代理商商户证件提交
$merProfile->merProfilePicture($mer_params);
# 对代理商商户证件结果进行处理
if ($merProfile->isError()){
//失败处理
var_dump($merProfile->result);
} else {
//成功处理
var_dump($merProfile->result);
}
参数说明
参数说明详见 上送商户证照
提交商户证照信息¶
商户证件信息提交接口,调用后提交后商户证件信息审核状态切换为“等待后台审核“
调用示例
$merProfile = new \AdaPayMerchant\MerchantProfile();
$mer_params = [
'subApiKey'=> 'api_live_fdcbcc99-4fef-4f23-a8f3-e21d7c7e4f7b',
'socialCreditCodeId'=> '0067363309554112',
'legalCertIdFrontId'=> '0067363504549376',
'legalCertIdBackId'=> '0067363574467008',
'businessAdd'=> 'http://www.baidu.com',
'storeId'=> '0067361944316352|0067363749735936',
'accountOpeningPermitId'=> '0067364019530176',
'shareholderInfoList'=> '',
];
# 发起代理商商户证件提交
$merProfile->merProfileForAudit($mer_params);
# 对代理商商户证件结果进行处理
if ($merProfile->isError()){
//失败处理
var_dump($merProfile->result);
} else {
//成功处理
var_dump($merProfile->result);
}
参数说明
参数说明详见 提交商户证照信息
查询商户审核状态¶
商户可以查看提交的商户基础信息审核状态
调用示例
$audit_status_params = [
'subApiKey'=> 'api_live_fdcbcc99-4fef-4f23-a8f3-e21d7c7e4f7b'
];
# 发起支付配置
$merchantProfile->merProfileAuditStatus($audit_status_params);
echoExecuteResult($merchantProfile, "代理商基础信息审核状态查询");
参数说明
参数说明详见 商户审核状态查询
创建应用¶
代理商帮商户创建应用
调用示例
$merchant_app = new \AdaPayMerchant\MerchantApp();
$merchant_params = [
"sub_api_key"=> "api_live_fdcbcc99-4fef-4f23-a8f3-e21d7c7e4f7b",
"app_name"=> "默认应用A"
];
# 发起应用创建
$merchant_app->create($merchant_params);
# 对应用创建结果进行处理
if ($merchant_app->isError()){
//失败处理
var_export($merchant_app->result);
} else {
//成功处理
var_export($merchant_app->result);
}
参数说明
参数说明详见 创建应用
查询应用¶
代理商查询商户应用列表
调用示例
# 初始化进件类
$merchant_app = new \AdaPayMerchant\MerchantApp();
# 发起应用查询
$merchant_app->query(["sub_api_key"=> "api_live_fdcbcc99-4fef-4f23-a8f3-e21d7c7e4f7b"]);
# 对应用查询结果进行处理
if ($merchant_app->isError()){
//失败处理
var_dump($merchant_app->result);
} else {
//成功处理
var_dump($merchant_app->result);
}
参数说明
参数说明详见 查询应用
异步消息通知¶
以脚本方式启动,具体参考 Demo 目录下的 subscribe.php
调用示例
include_once dirname(__FILE__). "/../AdaPayMerchant/init.php"; //加载 Adapay 目录下的 init.php
include_once dirname(__FILE__). "/config.php"; //加载配置文件 包含 API_KEY (接入时系统分配的)和 RSA 私钥
处理消息的回调函数
# 消息回调函数
$callback = function ($message){
//商户需要对消息结果处理
//$message 格式:{"appId": "商户 appId" ,"created": "创建时间年月日时分秒", "data": "{\"amount"\:\"0.01\"}", //"type":"payment.succeeded"}
};
# 实例化消息订阅类
$worker = new \AdaPay\AdaSubscribe();
# 启动消息监听服务进程
$worker->workerStart($worker, function ($content) use ($callback){
call_user_func($callback, $content); //设置接收消息回调处理
});
然后在服务器上执行 PHP 可执行文件所在的目录 + (linux: php subscribe.php start) (windows: php subscribe.php)启动消息监听