42 lines
1.4 KiB
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();
|
|
}
|
|
} |