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
34
35
36
$tradeType = "支付场景,APP/JSAPI";
$accountPayment = [
'APP' => [
'app_id' => 'app_id',
'mch_id' => 'mch_id',
'key' => 'XXXXXXXXXXXXXXXXXXXXXXX',
'cert_path' => app_path('resources/cert/apiclient_cert.pem'),
'key_path' => app_path('resources/cert/apiclient_key.pem'),
'notify_url' => route('weChatNotifyUrl'),
],
'JSAPI' => [
'app_id' => 'app_id',
'mch_id' => 'mch_id',
'key' => 'XXXXXXXXXXXXXXXXXXXXXXX',
'cert_path' => app_path('resources/cert2/apiclient_cert.pem'),
'key_path' => app_path('resources/cert2/apiclient_key.pem'),
'notify_url' => route('weChatNotifyUrl'),
],
];

$app = Factory::payment($accountPayment[$tradeType]);

$order_info = [
'body' => $title,
'out_trade_no' => $order_number,
'total_fee' => $amount,
'trade_type' => $tradeType, // 交易类型 JSAPI | NATIVE |APP | WAP
];

$result = $app->order->unify($order_info);
if ($tradeType == 'JSAPI') { // 微信内H5/小程序支付
$jssdk = $app->jssdk;
$config = $jssdk->bridgeConfig($result['prepay_id'], false);
} else { // APP支付
$config = $app->jssdk->appConfig($result['prepay_id']);
}

微信内H5/小程序支付$config信息

1
2
3
4
5
6
7
8
config: {
appId: "wxfd3ca09bb10e3a63",
timeStamp: "1527846324",
nonceStr: "5b1115b465d95",
package: "prepay_id=wx01174524358388e762240d961371110515",
signType: "MD5",
paySign: "96B18F3E55A9F09123C007074C62849C"
}

APP支付$config信息

1
2
3
4
5
6
7
8
9
config: {
appid: "wxaba67d5bcd2c0a6c",
partnerid: "1494244042",
prepayid: "wx0117351453138316e25af7282351919901",
noncestr: "5b11135296ddf",
timestamp: 1527845714,
package: "Sign=WXPay",
sign: "93A42757183D28CBCB7BF8A408C8675F"
}