前置条件
已有商户号、商户私钥、商户证书、APIV3密钥,通过此包内置的 平台证书下载器,已取得平台证书。
安装软件
composer require wechatpay/wechatpay
WeChatPay\Builder::factory 工厂方法
在工厂方法内,只需传入指定的接入点base_uri
即可支持,例如:
1
2
3
4
5
6
7
8
9
|
$instance = \WeChatPay\Builder::factory([
'base_uri' => 'https://api.mch.weixin.qq.com/hk/',
'mchid' => '1234567',
'serial' => '7654321',
'privateKey' => \WeChatPay\Util\PemUtil::loadPrivateKey('/path/to/apiclient_key.pem'),
'certs' => [
'7890123' => \WeChatPay\Util\PemUtil::loadCertificate('/path/to/wechatpay_7890123.pem'),
]
]);
|
融合钱包-请求下单
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
$instance->v3->pay->transactions->micropay
->postAsync(['json' => [
'mchid' => '1234567',
'appid' => 'wx8888888888888888',
'out_trade_no' => 'your_out_trade_no',
'trade_type' => 'MICROPAY',
'description' => 'QQ Doll',
'amount' => [
'total' => 528800,
'currency' => 'HKD',
]
]])
->then(function(\Psr\Http\Message\ResponseInterface $response) {
// do some successful procedure
})
->otherwise(function(\Psr\Http\Message\ResponseInterface $response) {
// do some fail procedure
});
|
融合钱包-查单
1
2
3
4
5
6
7
8
9
10
|
$instance->v3->pay->transactions->transaction_id->'{transaction_id}'
->getAsync([
'transaction_id' => 'your_achived_transaction_id',
])
->then(function(\Psr\Http\Message\ResponseInterface $response) {
// do some successful procedure
})
->otherwise(function(\Psr\Http\Message\ResponseInterface $response) {
// do some fail procedure
});
|
OR
1
2
3
4
5
6
7
8
9
10
|
$instance->v3->pay->transactions->outTradeNo->'{out_trade_no}'
->getAsync([
'out_trade_no' => 'your_out_trade_no',
])
->then(function(\Psr\Http\Message\ResponseInterface) {
// do some successful procedure
})
->otherwise(function(\Psr\Http\Message\ResponseInterface) {
// do some fail procedure
});
|
融合钱包-撤销订单
1
2
3
4
5
6
7
8
9
10
|
$instance->v3->pay->transactions->transaction_id->'{transaction_id}'->reverse
->postAsync([
'transaction_id' => 'your_achived_transaction_id',
])
->then(function(\Psr\Http\Message\ResponseInterface $response) {
// do some successful procedure
})
->otherwise(function(\Psr\Http\Message\ResponseInterface $response) {
// do some fail procedure
});
|
OR
1
2
3
4
5
6
7
8
9
10
|
$instance->v3->pay->transactions->outTradeNo->'{out_trade_no}'->reverse
->postAsync([
'out_trade_no' => 'your_out_trade_no',
])
->then(function(\Psr\Http\Message\ResponseInterface $response) {
// do some successful procedure
})
->otherwise(function(\Psr\Http\Message\ResponseInterface $response) {
// do some fail procedure
});
|
融合钱包-退款
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
$instance->v3->refunds->postAsync(['json' => [
'mchid' => '1234567',
'appid' => 'wx8888888888888888',
'out_trade_no' => 'your_out_trade_no',
'out_refund_no' => 'your_out_refund_no',
'trade_type' => 'MICROPAY',
'description' => 'QQ Doll',
'amount' => [
'refund' => 528800,
'total' => 528800,
'currency' => 'HKD',
]
]])
->then(function(\Psr\Http\Message\ResponseInterface $response) {
// do some successful procedure
})
->otherwise(function(\Psr\Http\Message\ResponseInterface $response) {
// do some fail procedure
});
|
融合钱包-查询单笔退款
1
2
3
4
5
6
7
8
9
10
|
$instance->v3->refunds->transaction_id->'{transaction_id}'
->getAsync([
'transaction_id' => 'your_achived_transaction_id',
])
->then(function(\Psr\Http\Message\ResponseInterface $response) {
// do some successful procedure
})
->otherwise(function(\Psr\Http\Message\ResponseInterface $response) {
// do some fail procedure
});
|
OR
1
2
3
4
5
6
7
8
9
10
|
$instance->v3->refunds->outTradeNo->'{out_trade_no}'
->getAsync([
'out_trade_no' => 'your_out_trade_no',
])
->then(function(\Psr\Http\Message\ResponseInterface $response) {
// do some successful procedure
})
->otherwise(function(\Psr\Http\Message\ResponseInterface $response) {
// do some fail procedure
});
|
融合钱包-查询所有退款
1
2
3
4
5
6
7
8
9
10
11
|
$instance->v3->refunds->getAsync(['query' => [
'mchid' => '1234567',
'offset' => 0,
'count' => 20,
]])
->then(function(\Psr\Http\Message\ResponseInterface $response) {
// do some successful procedure
})
->otherwise(function(\Psr\Http\Message\ResponseInterface $response) {
// do some fail procedure
});
|
最后
对照着文档,写代码就是如此简单。。。
Repo: https://github.com/TheNorthMemory/wechatpay-php 欢迎 Star .