# 支付

# 功能说明

  • 默认只支持微信小程序和微信公众平台,APP因需要开放者账号暂时无法开通,其它家的懒的搞,等有业务需求了再说
  • 支持下单、退款(退款仅支持一次操作,且退款后需要同步才能完成在线退款,未发现微信有走退款回调接口)

# 参数说明

# 请求参数

属性 类型 默认值 必填 说明
id number 订单ID
platform string 支付平台 alipay:支付宝 weixin:微信支付
type string 支付类型 goodsIndent:商品订单

# 示例代码

public function weixinPayment($body,$fee,$openid,$trade_type='JSAPI'){
    $number= orderNumber();
    $config = config('wechat.payment.default');
    $config['notify_url'] = request()->root().'/api/v1/app/paymentNotify';
    $app = Factory::payment($config);
    $result = $app->order->unify([
        'body' => $body,
        'out_trade_no' => $number,
        'total_fee' => $fee,
        'trade_type' => $trade_type,
        'openid' => $openid,
    ]);
    $return =[
        'result'=>'error',
        'msg'=>'支付异常,请联系管理员'
    ];
    if ($result['return_code'] == 'SUCCESS' && $result['result_code'] == 'SUCCESS') {
        $prepayId = $result['prepay_id'];
        $config = $app->jssdk->sdkConfig($prepayId);
        $return =[
            'result'=>'ok',
            'msg'=>$config,
            'number'=>$number
        ];
    }
    if ($result['return_code'] == 'FAIL' && array_key_exists('return_msg', $result)) {
        $return =[
            'result'=>'error',
            'msg'=>$result['return_msg']
        ];
    }
    return $return;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

# 返回参数

属性 类型 默认值 必填 说明
result string 返回状态,成功:ok 失败:error
code string 错误码,当result为error时需填写
msg string 错误原因,当result为error时需填写
number string 订单号,当result为ok时需填写

# 新加支付说明

  • 首先得先确认标识,在前端支付页,添加支付平台,并设置唯一标识
  • 后台App\Models\v1\MiniProgram复制一份weixinPayment方法,将weixin换成上一步设置的标识
  • 完成支付接口对接,按返回参数返回即可

# 新加支付类型说明

  • 首先在前端添加支付类型,如充值,然后设置唯一标识
  • 后台添加很简单,只需要添加三个观察者,然后编写对应的业务代码即可
#商品订单支付生成
#api\app\Observers\PaymentLog\GoodIndentPaymentCreateObserver.php
#商品订单支付完成
#api\app\Observers\PaymentLog\GoodIndentPaymentSucceedObserver.php
#商品订单退款
#api\app\Observers\PaymentLog\GoodIndentRefundObserver.php
1
2
3
4
5
6