1 使用有密退款
2 $gateway = Omnipay::create('Alipay_LegacyExpress');
3 $gateway->setSignType($sign_type);
4 $gateway->setReturnUrl($return_url);
5 $gateway->setNotifyUrl($notify_url);
6 $gateway->setSellerEmail($seller_email);
7 $gateway->setPartner($partner);
8 $gateway->setKey($key);
9 $data = [
10 'refund_date' => date('Y-m-d H:i:s'),
11 "seller_user_id" => trim($seller_id),
12 'batch_no'=> date('Ymd') . substr($r_order['third_part_order_id'], 8),
13 'batch_num' => 1,//退款笔数与refund_items数组中保持一致
14 '_input_charset' => 'UTF-8',
15 'refund_items'=> [
16 [
17 'out_trade_no' => $r_order['third_part_order_id'],
18 'amount' => $r_order['amount']/100.0,
19 'reason' => 'Userrefund'
20 ]
21 ],
22 ];
23 $request = $gateway->refund($data);
24 $response = $request->send();
25 $url = $response->getRedirectUrl();#在浏览器中打开此url就可以看到有密退款界面
此库中并没有提供即时到账无密退款服务 手动添加一把
1在LegacyAppGateway.php文件中加一个方法
public function refundNoPwd(array $parameters = [])
{
return $this->createRequest(LegacyRefundNoPwdRequest::class, $parameters);
}
2复制一份LegacyRefundRequest.php文件在当前目录下重命名为
LegacyRefundNoPwdRequest.php
3.把LegacyRefundNoPwdRequest.php文件中的
protect $server = 'refund_fastpay_by_platform_pwd';
改为
protect $server='refund_fastpay_by_platform_nopwd';
ok其他后续操作同有密退款 只需把生成的url用curl发出即可收到支付宝的返回值