Webhook URL
爱发电提供了webhook和api两种方式为开发者提供便利。 webhook功能需要配置好url,每当有订单时,会请求配置的url;API功能需要开发者通过token生成sign签名,主动请求接口查询历史订单
Webhook URL(用来被动接收订单通知)如何配置Webhook URL并且成功返回响应
点击发送测试,爱发电服务器会立即向配置好的url发送测试数据,标准json格式;同时url返回的内容也要为json格式,最少返回内容为 {"ec":200} ,否则认为请求失败。
爱发电发送数据格式如下:
{ "ec": 200, "em": "ok", "data": { "type": "order", "order": { "out_trade_no": "202106232138371083454010626", "user_id": "adf397fe8374811eaacee52540025c377", "plan_id": "a45353328af911eb973052540025c377", "month": 1, "total_amount": "5.00", "show_amount": "5.00", "status": 2, "remark": "", "redeem_id": "", "product_type": 0, "discount": "0.00", "sku_detail": [], "address_person": "", "address_phone": "", "address_address": "" } } }
具体解释同下方接口文档「查订单」部分
url响应格式如下:
url需要返回json数据,服务器仅检验ec 是否为200,下面是返回示例
{"ec":200,"em":""}
根据返回示例,需要我们再配置Webhook URL中最后给出成功返回的响应"ec":200,下面贴出代码
使用php作为测试,方便直接在服务器上使用
<?php
// 接收数据并解析为 JSON 格式
$input = file_get_contents('php://input');
$data = json_decode($input, true);
// 检查请求数据是否有效
if (!empty($data) && isset($data['ec'])) {
// 响应
$response = array('ec' => 200, 'em' => '111');
// 将响应数据转换为 JSON 格式
header('Content-Type: application/json');
echo json_encode($response);
// 输出 JSON 中的数据
echo "ec: " . $data['ec'] . "\n";
echo "em: " . $data['em'] . "\n";
// 输出 data 中的内容
$order = $data['data']['order'];
foreach ($order as $key => $value) {
echo $key . ": " . $value . "\n";
}
} else {
// 请求数据无效,返回错误响应
header('Content-Type: application/json');
http_response_code(400); // 返回 HTTP 状态码 400
echo json_encode(array('ec' => 400, 'em' => 'Bad Request'));
}
?>
点击保存或者发送测试 就可以测试配置的url是否正确 如果返回错误的话就会响应失败 并且提示 请检查地址是否正确respones error. http_code:200,error_code:0,error_msg:
那么正确响应后是没有任何提示的.
附加postman测试方法 直接复制请求体 填写配置好的Webhook URL发送请求即可
例https://afdian.net/api/open/ping 可用postman或其他工具请求测试接口