API发卡君异步通知处理教程

博客介绍发卡君异步通知需校验请求真实性,签证签名算法与创建支付算法一致。还提及PHP实现,要将所有POST过来的数据加入并签名,POST数据须含sign,给出了PHP获得sign的写法及验证签名方法示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

发卡君的异步通知需要校验请求的真实性,签证签名的算法和创建支付的算法一致。

下面说一下PHP的,PHP需要将所有POST过来的数据加入并进行签名,POST数据中必须包含sign,PHP获得sign的写法是$_POST['sign'],验证签名方法,比如验证发卡君支付通知:

<?php

/**

* 签名算法

* @param  array $params     请求参数

* @param  string $app_key AppKey

* @return string             签名字符串

*/

function sign($params, $app_key)

{

//     $app_key = $params['app_key'];

unset($params['app_key'], $params['sign'], $params['sign_type']);

ksort($params);

return strtoupper(md5(urldecode(http_build_query($params)).$app_key));

}

// 判断是否有POST数据

if (isset($_POST)) {

// 生成签名

$app_key = '你的API签名密钥';

$sign = sign($_POST, $app_key);

// 如果POST过来的签名数据和验证签名数据一致则通过

if ($_POST['sign'] == $sign) {

// 判断账单编号和金额跟系统记录的是否一致,一致就处理,否则不处理

if ($_POST['out_trade_no'] === 'asdas' && $_POST['total_amount'] == '1.00') {

            // 执行相应的业务逻辑,比如开通产品、邮件通知

} else {

// 数据不一致,忽略不处理或者记录错误报告管理员

}

    }

} else {

die('验证签名失败,无数据请求');

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值