IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 支付宝风险推送接口接入指南【总结】 -> 正文阅读

[PHP知识库]支付宝风险推送接口接入指南【总结】

最近因公司业务,需要接入支付宝风险推送接口。文档有些零散,也踩了一些坑,在此总结一下。

应用场景:

基于强大的数据沉淀和精准的风险识别能力,主动向支付宝合作伙伴提供风险交易推送服务。风险类型主要包括欺诈、赌博、虚假交易,协助合作伙伴识别交易风险,助力合作伙伴业务健康发展。

业务流程:

在这里插入图片描述

风险类型:

在这里插入图片描述

接入指南:
a. 前期准备工作:
  1. 登录(支付宝账号)并注册RiskGo安全合作平台, 平台地址:riskgo.alipay.com
  2. 在开放平台创建一个新的应用,并申请上线,上线后在商户平台将该appid与商户pid进行绑定
b.配置创建的应用(主要配置接口加签方式、应用网关)

应用网关就是风险消息推送地址
在这里插入图片描述

c.在riskGo平台管理的工作台中找到交易安全防护(普惠版),点击申请服务,并填写相关参数

在这里插入图片描述
注: 有些同学在这儿卡住了,发现什么都没有,说明你的之前申请的应用没有上线并绑定pid.

d.申请信息填写完毕后,提交审核,审核通过后就可以联调了【强烈推荐使用支付宝平台开发助手来辅助进行验签工作,不然你验签失败后都不知道问题出在哪儿】
  1. 沙箱联调:
    在沙箱联调界面会让你填入联调参数,填写完毕后,下方会生成请求数据【post】与URL【get】,基于自己程序的接收方式,选择对应的数据进行调试即可
    在这里插入图片描述
  1. 生产环境联调:
    沙箱联调成功后就可以进行生产环境调试了,此时你需要在程序的配置文件中将沙箱环境的公钥替换成你申请的appid对应的支付宝公钥(不然会验签失败)
    在这里插入图片描述

注意事项:

  1. 联调时,推送数据的方式是post方式,数据是gbk编码的,并使用urlencode进行了加密处理。
  2. PHP在接收数据时应使用file_get_contents(“php://input”),如果使用$_POST来接收,会因为编码问题导致验签失败
  3. 正确显示接收的数据,应使用
$content = file_get_contents("php://input");
$content = urldecode($content);
$content = mb_convert_encoding($content, 'utf-8', 'GBK');
  1. php验签的代码,此处是官方的代码示例,个人可根据实际业务需要封装 【注: 因为数据本身是gbk编码了, 所以下面代码中$aop->postCharset="UTF-8"可以不要】
$aop = new AopClient ();

//编码格式
$aop->postCharset="UTF-8";

//支付宝公钥赋值
$aop->alipayrsaPublicKey="";

//回调的待验签字符串
$_POST="buyer_id=20880****42&total_amount=0.01&body=煜雨电脑网站测试&trade_no=2019032922001481941025940236&notify_time=2019-03-29 19:42:04&subject=煜雨测试电脑网站支付&sign_type=RSA2&charset=UTF-8&auth_app_id=201****22&notify_type=trade_status_sync&invoice_amount=0.01&out_trade_no=20190329ygyg45484544100003&trade_status=TRADE_SUCCESS&gmt_payment=2019-03-29 19:42:03&version=1.0&point_amount=0.00&sign=LDDUIGQmc+1qNtk3oyoAKVeMUKTngdX3ZjVeZOK0EjiPDJ/+Nk+0WSqcE6J7/5xb96Z/vP0yY3pVhZUiFVJ1G45/ys/HAleHh+EERZ1lkCkule1sSyaGFTKQGKx4uHpTyqIgRB1bouf19RPbSx1EkA0VkCarSy9G/OEG5Qmg8UdL2dRulMhlbOHS7tdMJJycDA8vOspOUMeQmk/H6IK9R2Kou5hN2T3KR1GWLYFK+z1jeZhQB3q52lZynO0OFjSzU4aQUBMW5QskQppBYd/ghtY/2YP+2H6YVGNgVmaheZMQ3PVTBALEV+8rZa91salH9DkKN2UCYGvNSNDT1VGCTQ==&gmt_create=2019-03-29 19:42:00&buyer_pay_amount=0.01&receipt_amount=0.01&fund_bill_list=[{\"amount\":\"0.01\",\"fundChannel\":\"PCREDIT\"}]&seller_id=208850*0**&app_id=20141****2&notify_id=2019032900222194204081941005192208";

//签名方式
$sign_type="RSA2";

//把字符串通过&符号拆分成数组
$data = explode('&', $_POST);

$params = array();
//遍历数组
foreach ($data as $param) {
 $item = explode('=', $param,"2");
 $params[$item[0]] = $item[1];
}
//输出拆分后的数据
//print_r($params);

//验签代码
$flag = $aop->rsaCheckV1($params, null, $sign_type);

//输出验签结果
//echo $flag;

if ($flag)
{
 echo "success";
}
else 
{
    echo "fail";
}
  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-19 11:49:47  更:2021-08-19 11:50:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 6:46:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码