配置
$config = [
'app_id' => env('WECHAT_APP_ID'),
'mch_id' => env('WECHAT_PAYMENT_MERCHANT_ID'),
'key' => env('WECHAT_PAYMENT_KEY'), // API 密钥
];
微信支付
$attributes = [
'trade_type' => 'NATIVE', // JSAPI,NATIVE,APP...
'body' => '支付订单',
'detail' => '支付订单',
'out_trade_no' => '121775250120140703323336',//商户系统内部订单号(自己生成的)
'total_fee' => 1, // 单位:分
'notify_url' => $notify_url,//支付完成回调
'product_id' => 0,
// 'openid' => 'oICyY57**********i44HGxjPc', // trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识,
];
$result = $app->order->unify($attributes);
if($result['return_code'] == 'SUCCESS'){
return $result;
}else{
\Log::error('微信支付签名失败:'.var_export($result,1));
return $result['return_msg'];
}
支付成功的回调 $notify_url
$app = Factory::payment($this->config);
$response = $app->handlePaidNotify(function ($notify, $fail) {
$out_trade_no = $notify['out_trade_no']; // 商户订单号
$wechat_trade_no = $notify['transaction_id'];
if ($notify['return_code'] === 'SUCCESS') { // return_code 表示通信状态,不代表支付状态
// 用户是否支付成功
if ($notify['result_code'] === 'SUCCESS') {
//回调信息
}
}
微信支付退款
参数分别为:商户订单号、商户退款单号、订单金额、退款金额、其他参数
$result = $app->refund->byOutTradeNumber( $ordertradeno->out_trade_no, $refundNumber, $totalFee, $refundFee, $config = []);