2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > PHP微信根据订单号查询支付结果 9. PHP接入微信支付订单 退款订单 转款订单的查询...

PHP微信根据订单号查询支付结果 9. PHP接入微信支付订单 退款订单 转款订单的查询...

时间:2021-07-29 10:01:07

相关推荐

PHP微信根据订单号查询支付结果 9. PHP接入微信支付订单 退款订单 转款订单的查询...

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

$wxconfig = [

'app_id' => 'wxxxx', // 公众账号ID

'mch_id' => 'xxxx',// 商户id

'md5_key' => 'xxxxxx',// md5 秘钥

'notify_url' => '/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 Payment\QueryContext;

use Payment\Common\PayException;

use Payment\Config;

$query = new QueryContext();

// 通过交易号查询, 推荐

$data = [

//'order_no' => '011402433464',// 商户订单号

'transaction_id' => '400757200107098672633287',// 微信订单查询 微信退款单查询

//'trans_no' => '100757043901142692427764', // 微信批量转款查询

];

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

交易付款时间

格式为-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

转账时间

发起转账的时间 格式:-04-21 20:00:00

desc

付款描述

付款时候的描述

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。