本系统当前未提供虎皮椒格式的主动订单查询 URL。商户应以虎皮椒 POST JSON 异步通知为支付结果依据:验证 hash 成功且 order_status=OD 时订单已支付。
请在商户侧按 trade_order_id 保存支付状态并实现回调幂等,网络异常时由平台按照既有回调失败机制重试。
<?php
\$order_no = '20160806151343349';//订单号
\$type = '1';//订单类型:1:本地订单号,2:商户订单号
\$key = '商户密钥';//商户密钥
\$sign = md5(\$order_no . \$type . \$key);//生成签名
\$json = file_get_contents('http://登录后接口配置里的域名/pay/chaorder?order_no=' . \$order_no . '&type=' . \$type . '&sign=' . \$sign);//获取返回json
\$arr = json_decode(\$json,true);//json转数组
print_r(\$arr);//打印数组
?>
<?php
\$payId = '20260619001'; //商户订单号
\$key = '商户密钥'; //同易支付密钥
\$sign = md5(\$payId . \$key); //生成签名
\$json = file_get_contents('http://域名/getPayResult?payId=' . \$payId . '&sign=' . \$sign);
\$arr = json_decode(\$json, true);
if (\$arr['code'] === 1) {
\$state = \$arr['data']['state']; //0未支付 1已支付 2已过期
if (\$state == 1) {
//已支付,处理业务
}
}
?>
本系统当前未提供虎皮椒格式的主动订单查询 URL。商户应以虎皮椒 POST JSON 异步通知为支付结果依据:验证 hash 成功且 order_status=OD 时订单已支付。
请在商户侧按 trade_order_id 保存支付状态并实现回调幂等,网络异常时由平台按照既有回调失败机制重试。
本系统当前未提供码支付格式的主动订单查询 URL。商户应以码支付 GET 异步通知为支付结果依据:验证 sign 成功且 status=1 时订单已支付。
请使用 pay_id 保存商户订单状态,并保证异步通知处理具备幂等性。
pid(商户ID)、sign、sign_type 必填;trade_no(平台订单号)与 out_trade_no(商户订单号)二选一,平台订单号优先;timestamp 选填(参与签名)。过滤 sign/sign_type 和空值后按 key ASCII 升序拼接,使用后台“查看对接密钥”中提供的应用私钥签名。
按官方V2约定 code=0 为成功:{"code":0,"msg":"成功","trade_no":"平台订单号","out_trade_no":"商户订单号","type":"alipay","pid":"1000","name":"商品名称","money":"1.00","status":1,"timestamp":…,"sign":"平台签名","sign_type":"RSA2"};code 非 0 时 msg 为失败原因(如未找到订单)。
使用后台“查看对接密钥”中的平台公钥验证响应 RSA 签名(签名覆盖除 sign/sign_type 外全部字段,含 timestamp,官方 SDK 会校验 ±300 秒时效)。status:1 已支付(包含商户回调失败重试状态)、0 未支付(含已过期)。
<?php
\$params = array('pid' => '1000', 'out_trade_no' => 'ORDER20260821', 'timestamp' => time().'');
ksort(\$params);
\$pairs = [];
foreach (\$params as \$key => \$value) {
if (\$value === '' || \$key === 'sign' || \$key === 'sign_type') continue;
\$pairs[] = \$key . '=' . \$value;
}
\$content = implode('&', \$pairs);
openssl_sign(\$content, \$signature, \$applicationPrivateKey, OPENSSL_ALGO_SHA256);
\$params['sign'] = base64_encode(\$signature);
\$params['sign_type'] = 'RSA2';
\$ch = curl_init('http://域名/api/pay/query');
curl_setopt_array(\$ch, [CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query(\$params), CURLOPT_RETURNTRANSFER => true]);
\$result = json_decode(curl_exec(\$ch), true);
// \$result['code']===0 后,用平台公钥验证 \$result['sign'](响应字典序串,滤sign/sign_type)后读取 \$result['status']
?>