资讯专栏INFORMATION COLUMN

PHP接入微信退款接口

caspar / 3044人阅读

摘要:项目版本微信的退款操作,通过封装与前面支付宝退款除了配置文件,基本一样。微信仅能每次退款笔如果想要实现一次退订多笔订单,可在客户端通过循环来处理。

payment 项目2.0版本

微信的退款操作,通过封装与前面支付宝退款除了配置文件,基本一样。

退款代码如下:

use PaymentRefundContext;
use PaymentCommonPayException;
use PaymentConfig;

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

$config = [
    "app_id"    => "wxa244db59a34996fc",  // 公众账号ID
    "mch_id"    => "1331302101",// 商户id
    "md5_key"   => "adslkfjiKQJLAIQLJ393201482333333",// md5 秘钥

    "notify_url"    => "http://test.helei.com/pay-notify.html",
    "time_expire"    => "14",

    // 涉及资金流动时 退款  转款,需要提供该文件
    "cert_path" => dirname(__FILE__) . DIRECTORY_SEPARATOR . "wx" . DIRECTORY_SEPARATOR . "apiclient_cert.pem",
    "key_path"  => dirname(__FILE__) . DIRECTORY_SEPARATOR . "wx" . DIRECTORY_SEPARATOR . "apiclient_key.pem",
];

// 退款数据
$reundData = [
    "refund_no" => createPayid(),
    "refund_data"   => [
        ["transaction_id" => "4007572001201607098672633287", "amount"   => "5", "refund_fee" => "5", "reason" => "微信测试金额退款"],
    ],
];

$refund = new RefundContext();
try {
    // 微信退款
    $type = Config::WEIXIN;
    $refund->initRefund(Config::WEIXIN, $wxconfig);

    $ret = $refund->refund($reundData);
} catch (PayException $e) {
    echo $e->errorMessage();exit;
}

var_dump($ret);

当前sdk支付宝可一次退款多笔数据。微信仅能每次退款1笔(如果想要实现一次退订多笔订单,可在客户端通过循环来处理。)

接下来解释下相关的配置信息

微信的配置文件解释参考 微信的三种支付方式接入:APP支付、公众号支付、扫码支付 中的微信配置信息。

请求参数
参数 参数名 参数说明 是否必须
transaction_id 微信交易号 微信系统中的交易流水号,可用于查询订单状态
amount 总金额 微信交易对应的交易总金额
refund_fee 退款金额 本次申请的退款金额,退款金额不能大于总金额
reason 退款理由 退款的理由,可在用户端查看到
响应数据
参数 参数名 参数说明 是否必须
is_success 成功标识 请求是否成功,T:成功,F:失败
error 错误提示 只有is_success=F时才返回
response 响应数据 查询成功后返回的数据,一个数组,is_success=T时返回

response 数据描述

参数 参数名 参数说明 是否必须
transaction_id 微信订单号 微信订单号,下单成功后,微信返回
order_no 商户订单号 商户系统内部的订单号
refund_no 商户退款单号 商户退款单号
refund_id 微信退款单号 微信退款单号
refund_fee 申请退款金额 退款总金额,单位为元(已被我处理),可以做部分退款
amount 订单金额 订单总金额,单位为元,最多两位小数

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21898.html

相关文章

  • 浅析微信支付:支付验收示例和验收指引

    摘要:本文是浅析微信支付系列文章的第十一篇,主要讲解支付验收示例和验收指引。为保证商户接入质量,提升交易安全及用户体验,微信支付的合作服务商在正式上线交易前,必须先根据本文指引完成验收。 本文是【浅析微信支付】系列文章的第十一篇,主要讲解支付验收示例和验收指引。 浅析微信支付系列已经更新十一篇了哟~,没有看过的朋友们可以看一下。 浅析微信支付:如何使用沙箱环境测试 浅析微信支付:下载对账单...

    Cympros 评论0 收藏0
  • 浅析微信支付:前篇大纲

    摘要:浅析微信支付前篇大纲本文是浅析微信支付系列文章的第一篇,主要会介绍一下为何写下这个系列以及对于微信支付的一点小经验,与君共勉。下面讲一下我是如何去学习微信支付的。 浅析微信支付:前篇大纲 本文是【浅析微信支付】系列文章的第一篇,主要会介绍一下为何写下这个系列以及对于微信支付的一点小经验,与君共勉。 以下会分几个步骤讲一下我学习微信支付的过程,也是一部辛酸史,也是希望朋友们不要再次跌进...

    mayaohua 评论0 收藏0
  • PHP接入微信企业付款功能

    摘要:是金额企业付款金额,单位为元是企业付款描述信息企业付款操作说明信息。 payment 项目2.0版本 这个功能与支付宝的批量付款到支付宝帐号功能类似。但是当前支付宝这个接口已经停止审核了。 当前很多提问平台就用到了这两个平台。比如[来问医生],你提的问题如果被人看了。医生得0.5元,你得0.5元。然后累积够1元后,[来问医生]就会通过微信的企业付款功能给你的微信余额增加1元。 代码调用...

    chnmagnus 评论0 收藏0
  • 浅析微信支付:如何使用沙箱环境测试

    摘要:本文是浅析微信支付系列文章的第十篇,主要讲解如何使用沙箱环境来测试微信支付。图为微信支付仿真测试系统后简称仿真系统的简化原理图。沙箱说明微信支付沙箱环境,是提供给微信支付商户的开发者,用于模拟支付及回调通知。 本文是【浅析微信支付】系列文章的第十篇,主要讲解如何使用沙箱环境来测试微信支付。 浅析微信支付系列已经更新十篇了哟~,没有看过的朋友们可以看一下。 浅析微信支付:下载对账单和资...

    骞讳护 评论0 收藏0
  • PHP接入支付宝有密退款接口

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

    leonardofed 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<