jh-admin/addon/alipay/model/Order.php

42 lines
1.4 KiB
PHP

<?php
/***
* 芝麻先用后付
*/
namespace addon\alipay\model;
use addon\aliapp\model\MinCode;
use app\model\BaseModel;
class Order extends BaseModel
{
/**
* 订单扣款
* @param $order_id
* @return array
*/
public function takeDelivery($order_id)
{
$json = [
['pay p', 'o.out_trade_no=p.out_trade_no', 'inner'],
['member m', 'o.member_id=m.member_id', 'inner'],
];
$field = 'o.site_id,o.out_trade_no,o.pay_type,o.member_id,o.order_type,m.ali_openid,p.trade_no,p.pay_money';
$order = model('order')->getInfo([['o.order_id', '=', $order_id]], $field, 'o', $json);
if (!is_null($order) && $order['pay_type'] == 'zmxxpay') { //电商版自动扣款
$apiApp = new MinCode($order['site_id']);
$data = [
'out_request_no' => $order['out_trade_no'] . rand(100, 999),
'trade_no' => $order['trade_no'],
'fulfillment_amount' => $order['pay_money'],
'order_pay_mode' => 'CREDIT_FULFILLMENT_ZM',
'is_async_pay' => true,
];
$res = $apiApp->requestApi('alipay.trade.order.pay', $data)['alipay_trade_order_pay_response'];
if ($res['code'] != 10000) {
return $this->error('', $res['sub_msg']);
}
}
return $this->success();
}
}