资讯专栏INFORMATION COLUMN

微信支付订单、退款订单、转款订单的查询

leanxi / 3553人阅读

摘要:对于微信支付订单以及退款订单可以根据微信支付的流水号进行查询。

payment 项目2.0版本

微信并未提供一个统一的查询接口。对应每种查询均需要不同的api。为了便于大家在项目中使用,忽略细节。对以上三种进行了封装。通过工厂的方式降低调用成本。

$wxconfig = [
    "app_id"    => "wxxxx",  // 公众账号ID
    "mch_id"    => "xxxx",// 商户id
    "md5_key"   => "xxxxxx",// 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",
];

use PaymentQueryContext;
use PaymentCommonPayException;
use PaymentConfig;

$query = new QueryContext();

// 通过交易号查询,  推荐
$data = [
    //"order_no"    => "2016011402433464",// 商户订单号
    "transaction_id"    => "4007572001201607098672633287",// 微信订单查询  微信退款单查询
    //"trans_no"  => "1007570439201601142692427764", // 微信批量转款查询
];

try {
    // 微信订单查询
    $query->initQuery(Config::WEIXIN, $wxconfig);

    // 微信退款订单状态查询
    //$query->initQuery(Config::WEIXIN_REFUND, $wxconfig);

    // 微信企业付款查询
    //$query->initQuery(Config::WEIXIN_TRANS, $wxconfig);

    $ret = $query->query($data);

} catch (PayException $e) {
    echo $e->errorMessage();exit;
}

订单查询非常简单。对于微信支付订单以及退款订单可以根据微信支付的流水号进行查询。对于微信支付的订单还可根据商户的订单号进行查询。但是强烈建议通过微信自身的流水号进行查询。

对于批量转款查询。需要提供再转款时,生产的转款单号(此单号是由商家自行生产的)。这里我也蛮迷惑,为什么不提供使用微信返回的转款流水号进行查询呢?

接下来对返回值进行解释,以下结构为一个顶层结构

参数 参数名 参数说明 是否必须
is_success 成功标识 请求是否成功,T:成功,F:失败
error 错误提示 只有is_success=F时才返回
response 响应数据 查询成功后返回的数据,一个数组,is_success=T时返回
微信支付订单返回值

支付订单中关于 response 中包含字段的描述

参数 参数名 参数说明 是否必须
amount 交易金额 本次订单总金额,单位为元,最多两位小数
channel 支付渠道 本处取值: wx
order_no 商户网站唯一订单号 商户生成的订单号,必须确保在系统中唯一
buyer_id 用户标识 用户在商户appid下的唯一标识
trade_state 交易状态 支付成功与否,可取值:success not_pay
transaction_id 微信交易号 微信系统中的交易流水号,可用于查询订单状态
time_end 交易付款时间 格式为2016-07-28 16:01:01
微信退款订单

退款有以下两点需要注意

交易时间超过一年的订单无法提交退款;

微信支付退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。一笔退款失败后重新提交,要采用原来的退款单号。总退款金额不能超过用户实际支付金额。

由于一笔支付订单,可能存在多笔退单的情况,因此退款记录将返回一个数组

退款订单中关于 response 中包含字段的描述

参数 参数名 参数说明 是否必须
amount 交易金额 本次订单总金额,单位为元,最多两位小数
order_no 商户网站唯一订单号 商户生成的订单号,必须确保在系统中唯一
transaction_id 微信交易号 微信系统中的交易流水号,可用于查询订单状态
refund_data 退款数据 其结构是一个数组,每一个元素包含一个退单信息

refund_data 中包含字段的描述

参数 参数名 参数说明 是否必须
refund_no 商户退款单号 商户退款单号
refund_id 微信退款单号 微信退款单号
refund_channel 退款渠道 ORIGINAL—原路退款 BALANCE—退回到余额
refund_fee 退款金额 退款总金额,单位为元,可以做部分退款
refund_status 退款状态 SUCCESS—退款成功 FAIL—退款失败 PROCESSING—退款处理中 NOTSURE—未确定,需要商户原退款单号重新发起 CHANGE—转入代发
recv_accout 退款入账账户 退款入账账户
转款订单查询结果
            "trans_id"  => $data["detail_id"],// 付款单号
            "trans_status"  => $data["status"],// 转账状态
            "reason"    => $data["reason"],// 失败原因
            "buyer_id"   => $data["openid"],
            "trans_name"   => $data["transfer_name"],// 收款用户姓名
            "trans_time"   => $data["transfer_time"],
            "desc"   => $data["desc"],// 付款描述
参数 参数名 参数说明 是否必须
amount 付款金额 付款金额 单位元
order_no 商户单号 商户使用查询API填写的单号的原路返回.
trans_id 付款单号 调用企业付款API时,微信系统内部产生的单号
trans_status 转账状态 SUCCESS:转账成功 FAILED:转账失败 PROCESSING:处理中
reason 失败原因 如果失败则有失败原因
buyer_id 收款用户openid 收款用户openid
trans_name 收款用户姓名 真实姓名,如果是需要实名验证,则会返回
trans_time 转账时间 发起转账的时间 格式:2015-04-21 20:00:00
desc 付款描述 付款时候的描述

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

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

相关文章

  • PHP接入微信退款接口

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

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

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

    chnmagnus 评论0 收藏0
  • 浅析微信支付:申请退款退款回调接口、查询退款

    摘要:注意交易时间超过一年的订单无法提交退款微信支付退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。 本文是【浅析微信支付】系列文章的第八篇,主要讲解商户如何处理微信申请退款、退款回调、查询退款接口,其中有一些坑的地方,会着重强调。 浅析微信支付系列已经更新七篇了哟~,没有看过的朋友们可以看一下哦。 浅析微信支付:查询订单和关闭订单 浅析微信支付:支...

    silenceboy 评论0 收藏0
  • 浅析微信支付:下载对账单和资金账单

    摘要:本文是浅析微信支付系列文章的第九篇,主要讲解商户下载对账单接口和资金账单接口的实现和一些注意事项。注意微信侧未成功下单的交易不会出现在对账单中。 本文是【浅析微信支付】系列文章的第九篇,主要讲解商户下载对账单接口和资金账单接口的实现和一些注意事项。 浅析微信支付系列已经更新九篇了哟~,没有看过的朋友们可以看一下哦。 浅析微信支付:申请退款、退款回调接口、查询退款 浅析微信支付:查询订...

    Ethan815 评论0 收藏0
  • 支付系统设计实现(1)——支付退款

    摘要:支付流程以上是微信支付的流程用户进入选择商品进行购买,在内部结算时生成用户本系统订单待支付状态,此时返回订单信息与支付方式列表用户确认金额无误,并选择支付方式。 支付流程 showImg(https://segmentfault.com/img/bVytNT?w=894&h=1042); 以上是微信app支付的流程: 用户进入app选择商品进行购买,在app内部结算时生成用户本系统订...

    zhigoo 评论0 收藏0

发表评论

0条评论

leanxi

|高级讲师

TA的文章

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