6. PHP接入支付宝有密退款接口

这个接口主要用于退款操作。之前没有接入该功能时,商城用户如果想要退款,我们需要先查到对应用户的支付流水号,然后写退款申请给财务,财务到支付宝进行查询。完了之后原路退回。然后告诉程序,程序再去修改订单状态。

这样的流程不仅麻烦。而且充满不安全性。如果程序误操作(或者是心情太差了),操作为其他人员,那么这将会为企业带来很大的风险。

SDK调用

支付宝支持多笔退款。

// 支付宝配置信息
$aliconfig = [
    ‘partner‘   => ‘2088xxxxx‘,
    ‘md5_key‘   => ‘xxxxxxxxxxxx‘,
    ‘rsa_private_key‘   => dirname(__FILE__) . ‘/rsa_private_key.pem‘,
    "notify_url"    => ‘http://test.helei.com/pay-notify.html‘,
    "return_url"    => ‘http://test.helei.com/return-url.html‘,
    "time_expire"   => ‘14‘,
];

//  生成退款单号 便于测试
function createPayid()
{
    return date(‘Ymdhis‘, time()).substr(floor(microtime()*1000),0,1).rand(0,9);
}

// 退款数据
$reundData = [
    ‘refund_no‘ => createPayid(),
    ‘refund_data‘   => [
        [‘transaction_id‘ => ‘2016011421001004330041239366‘, ‘amount‘   => ‘0.01‘, ‘refund_fee‘ => ‘0.01‘, ‘reason‘ => ‘测试退款1‘],
        [‘transaction_id‘ => ‘2016031521001004330271745693‘, ‘amount‘   => ‘0.01‘, ‘refund_fee‘ => ‘0.01‘, ‘reason‘ => ‘测试退款2‘],
    ],
];

$refund = new RefundContext();
try {
    $refund->initRefund(Config::ALI, $aliconfig);
    $ret = $refund->refund($reundData);
} catch (PayException $e) {
    echo $e->errorMessage();exit;
}

// 跳转支付宝
header("Location:{$ret}");

以上请求发送完毕后,会跳转到生成的url。界面如下:

这时候,只需要要输入支付密码。就可完成退款。确认完毕后会自动完成异步通知。异步通知数据内容在 支付的回调统一处理 已经说明。

备注:支付宝支持一次退款多笔。也可单次退款一笔,请自行根据情况进行设置。

请求参数

参数 参数名 参数说明 是否必须
refund_no 退款单号 由商家自定义生成,可由字母、数字组成
refund_data 退款数据 详细内容见后表,它是一个数组

refund_data数据

参数 参数名 参数说明 是否必须
transaction_id 支付宝流水号 支付成功时,异步通知时有返回
amount 订单总金额 订单总金额,应该等于支付时的金额
refund_fee 退款金额 退款金额,不能超过支付的总金额
reason 退款理由 退款理由

一笔订单,可分多次进行退款处理。比如:一笔支付100元的订单。可分为10次,每次退款10元。该思路可扩展一下,就可实现提现功能(原路返回),想要具体了解提现功能,可咨询我!

时间: 2024-10-19 08:03:50

6. PHP接入支付宝有密退款接口的相关文章

java支付宝无密退款

支付宝API提供了两处退款的接口文档: ①统一收单退款接口:https://doc.open.alipay.com/doc2/apiDetail.htm?spm=a219a.7395905.0.0.0ej0mo&docType=4&apiId=759 ②及时到账有密退款接口:https://doc.open.alipay.com/doc2/detail?treeId=66&articleId=103571&docType=1 两者的区别的是:如果你是alipay.trade

5. PHP接入支付宝单笔订单查询接口

巴西奥运会来了,刚好我又是做体育行业的互联网.哎!这个月又要加班成狗了.最近遇到好多莫名其妙的问题,待我忙完这段,再跟大家分享下.今天还是继续说说 Payment项目 今天主要说说支付宝订单查询接口. 接口调用 废话废话不多说.直接上支付宝订单查询的代码.微信的订单查询与此类似.后续也会更新文档. // 支付宝配置信息 $aliconfig = [ 'partner' => '2088xxxxx', 'md5_key' => 'xxxxxxxxxxxx', 'rsa_private_key'

7. PHP接入支付宝有密批量转款接口

这个接口蛮有用的,不过现阶段支付宝已经停止审核啦!微信的转账功能还可以继续使用.企业可以转账到其他支付宝账户.对于企业活动非常有帮助,比如:购买返现呀! 虽然现在已经不接收新的审核,但是我还是将该功能进行了集成,因为指不定什么时候又开放了,毕竟微信都有这个功能,支付宝不搞出来,实在说不过去. SDK调用 // 支付宝配置信息 $aliconfig = [ 'partner' => '2088xxxxx', 'md5_key' => 'xxxxxxxxxxxx', 'rsa_private_ke

ASP.NET Core Web 支付功能接入 支付宝-电脑网页支付篇

这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入支付宝-电脑网页支付接口及同步跳转及异步通知功能. 开发环境:Win 10 x64.VS2017 15.6.4..NET Core SDK 2.1.101..NET Core Runtime 2.0.6 1.新建"ASP.NET Core Web 应用程序"项目,我将它命名为AlipaySample. 2. 引入安装Nuget包 "Essensoft.AspNetCore.Alipay"

H5网站接入支付宝的支付接口

写本文章的目的是为了记录工作中遇到的问题,方便以后遇到可以迅速解决问题 H5手机网站接入支付宝的支付接口,推荐使用支付宝提供的SDK来快速开发 我使用的是SDK开发 引用命名空间 using Aop.Api; using Aop.Api.Request; using Aop.Api.Response; using Aop.Api.Util; 首页需要定义一些常量 static string serverUrl = "https://openapi.alipaydev.com/gateway.do

支付宝-批量付款接口和高级退款接口纪要

支付宝批量付款接口 接口文档:https://docs.open.alipay.com/64/103569demo地址:http://aopsdkdownload.cn-hangzhou.alipay-pub.aliyun-inc.com/demo/alipaytranspay.zip证书相关:首先就要安装证书,筒子们啊!否则你就会受到一个"证书有误,无法复核批次记录"的大大错误!这个是支付宝的校检证书链接:https://110.alipay.com/sc/index.htm,点击进

php接入支付宝接口以及嵌入thinkphp框架

最近在写个需要简单支付的小项目,用到了支付宝接口,现已完成.把php接入支付宝的流程写在这里供像我一样的小白参考. 1.首先要有一个创建一个应用(选好自己想要的功能,关于支付的功能,貌似都需要签约) 2.下载SDK&Dome(网址https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.CBtzBF&treeId=203&articleId=105910&docType=1) 我选择的是MD5签名方式,下面

接入支付宝支付接口(一):发起支付请求

一.前言 在接入支付宝接口之前,需要在支付宝官网进行应用注册和实名认证,地址不再贴出. 在此,贴出支付宝开放平台文档地址:https://docs.open.alipay.com/58/103585/ 在这个地址中,详细介绍了如何接入支付宝接口 二.发起请求 支付宝的签名方式等不做详细介绍,在开发文档中有详细说明,笔者建议:编码格式请使用UTF-8. 接下来的介绍中,主要贴出代码(代码仅供参考) 在贴出代码之前,首先大致了解一下如何发起支付请求: 第一步:组装阿里参数 该步骤组装的参数来自于商户

支付宝——手机网站支付接口研究

一 API版本说明 下面是官网的说明: 做个简单说明: API1.0接口主要用于网站(包括手机端的网站)的调用:API2.0主要用于手机app的调用.根据我们做的手机端网站的接口开发,主要使用API1.0接口. API1.0接口的请求参数如下: 根据上面的请求参数做开发前的准备工作. 二 开发准备工作 2.1 首先需要注册支付宝企业账户 详细步骤参考支付宝企业版官网注册. 2.2 PID(partner_id的简称),合作伙伴身份 由于我没有注册企业账户,就用一下官网的截图 2.3 密钥(签名)