//验证信息
public function pay(){
$params = input();
unset($params['/callback']);
$validate = $this->validate($params,[
'order_number|订单号'=>'require',
'pay|支付方式'=>'require',
'goods_price|价格'=>'require',
'consignee|卖家名称'=>'require',
]);
if ($validate !== true){
$this->error($validate);
}
$id = Cookie::get('user_id');
$order = \app\shopp\model\Order::where('user_id',$id)->where('order_number',$params['order_number'])->find();
if (!$order){
$this->error('订单号不存在');
}
//自动提交表单
echo "<form id='alipayment' action='plugins/alipay/pagepay/pagepay.php' method='post'>
<input id='WIDout_trade_no' name='WIDout_trade_no' value='{$params['order_number']}' />
<input id='WIDsubject' name='WIDsubject' value='{$params['consignee']}' />
<input id='WIDtotal_amount' name='WIDtotal_amount' value='{$params['goods_price']}'/>
<input id='WIDbody' name='WIDbody' />
</form> <script>document.getElementById('alipayment').submit();</script>";
}
//回调方法
public function callback(){
$params = input();
require_once('./plugins/alipay/config.php');
require_once('./plugins/alipay/pagepay/service/AlipayTradeService.php');
$alipaySevice = new \AlipayTradeService($config);
$result =$alipaySevice->check($params);
if ($result){
$order_number = $params['out_trade_no'];
// print_r($params);die;
$order = \app\shopp\model\Order::where('order_number',$order_number)->find();
return view('callback',['order'=>$order]);
}
}
HTML
<form action="/pay" method="post">
<table>
<tr>
<td>
<input type="checkbox" checked name="pay" value="支付宝">支付宝
<input type="checkbox" name="pay" value="微信">微信
<input type="checkbox" name="pay" value="余额宝">余额宝
<input type="hidden" name="order_number" value="{$order.order_number}">
<input type="hidden" name="goods_price" value="{$order.goods_price}">
<input type="hidden" name="consignee" value="{$order.consignee}">
</td>
<tr>
<td>
<input type="submit" value="支付" style="width: 200px;height: 50px">
</td>
</tr>
</table>
</form>