微信支付
微信支付目前直接内置支持以下快捷方式支付方法,对应的支付 method 如下:
method | 说明 | 参数 | 返回值 |
---|---|---|---|
mp | 公众号支付 | array $order | Collection |
h5 | H5 支付 | array $order | Collection |
app | APP 支付 | array $order | Collection |
mini | 小程序支付 | array $order | Collection |
pos | 刷卡支付 | array $order | Collection |
scan | 扫码支付 | array $order | Collection |
transfer | 转账 | array $order | Collection |
TIP
默认情况下,除 APP支付、小程序支付 外所使用的 appid 均是微信公众号的 appid,即配置文件中的 mp_app_id
参数
如果想使用其他类型的 appid,则只需要在调用参数中增加 _type
参数即可,例如,如果想使用小程序的 appid,则:['_type' => 'mini']
公众号支付
例子
Pay::config($config);
$order = [
'out_trade_no' => time().'',
'description' => 'subject-测试',
'amount' => [
'total' => 1,
],
'payer' => [
'openid' => 'onkVf1FjWS5SBxxxxxxxx',
],
];
$result = Pay::wechat()->mp($order);
// 返回 Collection 实例。包含了调用 JSAPI 的所有参数,如appId,timeStamp,nonceStr,package,signType,paySign 等;
// 可直接通过 $result->appId, $result->timeStamp 获取相关值。
// 后续调用不在本文档讨论范围内,请自行参考官方文档。
订单配置参数
所有订单配置中,客观参数均不用配置,扩展包已经为大家自动处理了,比如,appid
,sign
等参数,大家只需传入订单类主观参数即可。
所有订单配置参数和官方无任何差别,兼容所有功能,所有参数请参考这里,查看「请求参数」一栏。
H5 支付
例子
Pay::config($config);
$order = [
'out_trade_no' => time().'',
'description' => 'subject-测试',
'amount' => [
'total' => 1,
],
'scene_info' => [
'payer_client_ip' => '1.2.4.8',
'h5_info' => [
'type' => 'Wap',
]
],
];
return Pay::wechat()->h5($order);
// $result->h5_url;
订单配置参数
所有订单配置中,客观参数均不用配置,扩展包已经为大家自动处理了,比如,trade_type
,appid
,sign
等参数,大家只需传入订单类主观参数即可。
所有订单配置参数和官方无任何差别,兼容所有功能,所有参数请参考这里,查看「请求参数」一栏。
调用支付
后续调起支付不再本文档讨论范围内,请参考官方文档
其它
使用小程序的 app_id 关联 h5 支付
默认情况下,H5 支付所使用的 appid 是微信公众号的 appid,即配置文件中的 mp_app_id 参数,如果想使用关联的小程序的 appid,则只需要在调用参数中增加 ['_type' => 'mini']
即可,例如:
$order = [
'_type' => 'mini', // 注意这一行
'out_trade_no' => time().'',
'description' => 'subject-测试',
'amount' => [
'total' => 1,
],
'scene_info' => [
'payer_client_ip' => '1.2.4.8',
'h5_info' => [
'type' => 'Wap',
]
],
];
APP 支付
例子
Pay::config($config);
$order = [
'out_trade_no' => time().'',
'description' => 'subject-测试',
'amount' => [
'total' => 1,
],
];
// 将返回 Collection 实例,供后续 APP 调用,调用方式不在本文档讨论范围内,请参考官方文档。
return Pay::wechat()->app($order);
订单配置参数
所有订单配置中,客观参数均不用配置,扩展包已经为大家自动处理了,比如,trade_type
,appid
,sign
等参数,大家只需传入订单类主观参数即可。
所有订单配置参数和官方无任何差别,兼容所有功能,所有参数请参考这里,查看「请求参数」一栏。
调用支付
后续调起支付不再本文档讨论范围内,请参考官方文档
小程序支付
例子
Pay::config($config);
$order = [
'out_trade_no' => time().'',
'description' => 'subject-测试',
'amount' => [
'total' => 1,
'currency' => 'CNY',
],
'payer' => [
'openid' => '123fsdf234',
]
];
$result = Pay::wechat()->mini($order);
// 返回 Collection 实例。包含了调用 JSAPI 的所有参数,如appId,timeStamp,nonceStr,package,signType,paySign 等;
// 可直接通过 $result->appId, $result->timeStamp 获取相关值。
// 后续调用不在本文档讨论范围内,请自行参考官方文档。
订单配置参数
所有订单配置中,客观参数均不用配置,扩展包已经为大家自动处理了,比如,trade_type
,appid
,sign
等参数,大家只需传入订单类主观参数即可。
所有订单配置参数和官方无任何差别,兼容所有功能,所有参数请参考这里,查看「请求参数」一栏。
调用支付
后续调起支付不再本文档讨论范围内,请参考官方文档
刷卡支付(付款码,被扫码)
例子
Pay::config($config);
$order = [
'description' => '测试 - yansongda - 1',
'out_trade_no' => time().'',
'payer' => [
'auth_code' => 'xxxxxxxxxxx'
],
'amount' => [
'total' => 1,
],
'scene_info' => [
'id' => '5678'
],
];
$result = Pay::wechat()->pos($order);
订单配置参数
所有订单配置中,客观参数均不用配置,扩展包已经为大家自动处理了,比如,appid
,sign
等参数,大家只需传入订单类主观参数即可。
所有订单配置参数和官方无任何差别,兼容所有功能,所有参数请参考这里,查看「输入参数」一节。
扫码支付
例子
Pay::config($config);
$order = [
'out_trade_no' => time().'',
'description' => 'subject-测试',
'amount' => [
'total' => 1,
],
];
$result = Pay::wechat()->scan($order);
// 二维码内容: $qr = $result->code_url;
订单配置参数
所有订单配置中,客观参数均不用配置,扩展包已经为大家自动处理了,比如,trade_type
,appid
,sign
等参数,大家只需传入订单类主观参数即可。
所有订单配置参数和官方无任何差别,兼容所有功能,所有参数请参考这里,查看「请求参数」一栏。
调用支付
后续调起支付不再本文档讨论范围内,请参考官方文档
账户转账
例子
Pay::config($config);
$order = [
'out_batch_no' => time().'',
'batch_name' => 'subject-测试',
'batch_remark' => 'test',
'total_amount' => 1,
'total_num' => 1,
'transfer_detail_list' => [
[
'out_detail_no' => time().'-1',
'transfer_amount' => 1,
'transfer_remark' => 'test',
'openid' => 'MYE42l80oelYMDE34nYD456Xoy',
// 'user_name' => '闫嵩达' // 明文传参即可,sdk 会自动加密
],
],
];
$result = Pay::wechat()->transfer($order);
订单配置参数
所有订单配置中,客观参数均不用配置,扩展包已经为大家自动处理了,比如,appid
,sign
等参数,大家只需传入订单类主观参数即可。
所有订单配置参数和官方无任何差别,兼容所有功能,所有参数请参考这里,查看「请求参数」一节。