微信H5支付 EasyWechat


其中如果想在一個laravel中使用多個不同主題的支付賬戶,可以在方法實例對象時,將對應的參數進行修改配置。

其中小程序支付,已得到驗證。

1、公眾號支付等資格申請

2、公眾號對應的支付商戶主體申請 開通H5支付

3、配置easywechat,並填寫配置文件

4、方法中如下

public function userOrderWechatMobile(Request $request)
{
$data = $request->all();
//金錢特殊處理,通過后台查詢取得
$res_order = \DB::table('dxjk_order')
->where('order_id',$data['order_id'])
->first();
$order_sid = $res_order->order_sid;
$money = $res_order->order_money;
$attributes = [
'trade_type' => 'MWEB', // JSAPI,NATIVE,APP...微信H5就是MWEB
'body' => '測試',
'detail' => '測試',
'out_trade_no' => $order_sid,
'total_fee' => $money * 100, // 單位:分
'notify_url' => 'https://jiankang.danxigu.com/dxjk/notifyUrlJk',
// 'openid' => $request->get('openid'),//小程序支付等需要
       'scene_info' => "{\"h5_info\": {\"type\":\"Wap\",\"wap_url\": \"http://jiankang.danxigu.com/m_web\",\"wap_name\": \"丹溪預約\"}}",//這個是H5支付場景所用,項目中使用的jso
        ];
$orde = new Order($attributes);
     $dre_url = '指定路徑';
// 統一下單
$result = $this->wechat->payment->prepare($orde);
$prepayId = null;
if ($result->return_code == 'SUCCESS' && $result->result_code == 'SUCCESS') {
$prepayId = $result->prepay_id;

        $mweb_url = $result->mweb_url . "&redirect_url=" . $dre_url;//返回前台跳轉支付的中間也,網址默認跳到發起支付的頁面,加參數redirect_url后,跳到指定頁面
//            $config = $this->wechat->payment->configForPayment($prepayId,false);// 返回 json 字符串,如果想返回數組,傳第二個參數 false
$config_jsp = $this->wechat->payment->configForJSSDKPayment($prepayId);//兩種不同的返回
return ['code' => 1000, 'data' => $config_jsp,'mweb_url' => $mweb_url];
} else {
return ['code' => 1001, 'data' => ['message' => '訂單支付失敗']];
}

}
//EasyWechat laravel中多個公眾號,和商戶的支付處理 示例
$options = [
/*
* Debug 模式,bool 值:true/false
*
* 當值為 false 時,所有的日志都不會記錄
*/
'debug' => true,

/*
* 使用 Laravel 的緩存系統
*/
'use_laravel_cache' => true,

/*
* 賬號基本信息,請從微信公眾平台/開放平台獲取
*/
'app_id' => env('WECHAT_APPID', 'wx5b80a44ad4'), // AppID
'secret' => env('WECHAT_SECRET', 'cdea2e4e50137'), // AppSecret
'token' => env('WECHAT_TOKEN', 'danxigu'), // Token
'aes_key' => env('WECHAT_AES_KEY', 'pG9BO18oH5u'), // EncodingAESKey

/**
* 開放平台第三方平台配置信息
*/
//'open_platform' => [
/**
* 事件推送URL
*/
//'serve_url' => env('WECHAT_OPEN_PLATFORM_SERVE_URL', 'serve'),
//],

/*
* 日志配置
*
* level: 日志級別,可選為:
* debug/info/notice/warning/error/critical/alert/emergency
* file:日志文件位置(絕對路徑!!!),要求可寫權限
*/
'log' => [
'level' => env('WECHAT_LOG_LEVEL', 'debug'),
'file' => env('WECHAT_LOG_FILE', storage_path('logs/wechat.log')),
],

/*
* OAuth 配置
*
* only_wechat_browser: 只在微信瀏覽器跳轉
* scopes:公眾平台(snsapi_userinfo / snsapi_base),開放平台:snsapi_login
* callback:OAuth授權完成后的回調頁地址(如果使用中間件,則隨便填寫。。。)
*/
'oauth' => [
'only_wechat_browser' => false,
'scopes' => array_map('trim', explode(',', env('WECHAT_OAUTH_SCOPES', 'snsapi_base'))),
'callback' => env('WECHAT_OAUTH_CALLBACK', '/callbackAuthorized'),
],

/*
* 微信支付
*/
'payment' => [
'merchant_id' => env('WECHAT_PAYMENT_MERCHANT_ID', '129695'),
'key' => env('WECHAT_PAYMENT_KEY', 'c90bac7e771c266f8'), // md5('')
'cert_path' => env('WECHAT_PAYMENT_CERT_PATH', public_path('jio/cert/apiclient_cert.pem')), // XXX: 絕對路徑!!!!
'key_path' => env('WECHAT_PAYMENT_KEY_PATH', public_path('jiao/cert/apiclient_key.pem')), // XXX: 絕對路徑!!!!
// 'device_info' => env('WECHAT_PAYMENT_DEVICE_INFO', ''),
// 'sub_app_id' => env('WECHAT_PAYMENT_SUB_APP_ID', ''),
// 'sub_merchant_id' => env('WECHAT_PAYMENT_SUB_MERCHANT_ID', ''),
// ...
],
];

$app = new Application($options);

$payment = $app->payment;
$money = $goods->goods_money;
$order_sid = $morder['morder_sid'];
$openid = $data['openid'];
$goods_name = $goods->goods_name;
$attributes = [
'trade_type' => 'JSAPI', // JSAPI,NATIVE,APP...
'body' => $goods_name,
'detail' => $goods_name,
'out_trade_no' => $order_sid,
'total_fee' => $money * 100, // 單位:分
'notify_url' => 'https://jiankang.danxigu.com/dxjk/notifyJbb',
'openid' => $openid,
];
$order = new Order($attributes);
// 統一下單
$result = $payment->prepare($order);
$prepayId = null;
if ($result->return_code == 'SUCCESS' && $result->result_code == 'SUCCESS') {
$prepayId = $result->prepay_id;
$config = $payment->configForJSSDKPayment($prepayId);
return ['code' => 1000, 'data' => $config,'order_sid' => $order_sid];
} else {
return ['code' => 1015, 'data' => ['message' => '生成訂單錯誤!']];
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM