/** *红包发送代码 */ public function sendRed() { //发送红包钱判断用户是否有发送机会 $customer = Customer::where('openid', Session::get('logged_user')['openid'])->firstOrFail(); if ($customer->chances <= 0) { $result['return_code'] = 'FAIL'; $result['return_msg'] = '红包机会已用完'; return $result; } //$appId, $appSecret, $mchId, $mchKey /** * 第 1 步:定义商户 */ $business = new Business($this->appid, $this->secret, $this->mch_id, $this->mch_key); /** * 第 2 步:设置证书路径 * CLIENTCERT_PATH即证书apiclient_cert.pem的路径 * CLIENTkey_PATH即证书apiclient_key.pem的路径 */ $business->setClientCert(storage_path('cert/apiclient_cert.pem')); $business->setClientKey(storage_path('cert/apiclient_key.pem')); /** * 第 3 步:创建LuckMoney实例 */ $luckMoneyServer = new LuckMoney($business); /** * 第 4 步:要发送的红包相关数据(本代码以发送现金红包为例) */ $luckMoneyData['mch_billno'] = time(); //红包记录对应的商户订单号 $luckMoneyData['send_name'] = '犟骨头'; //红包发送者名称 $luckMoneyData['re_openid'] = Session::get('logged_user')['openid']; //红包接收者的openId $luckMoneyData['total_amount'] = 100; //红包总额(单位为分),现金红包至少100,裂变红包至少300 $luckMoneyData['total_num'] = 1; //现金红包时为1,裂变红包时至少为3 $luckMoneyData['wishing'] = '恭喜发财'; $luckMoneyData['act_name'] = '关注有礼'; $luckMoneyData['remark'] = 'test'; /** * 第 5 步:发送红包 * 第二个参数表示发送的红包类型,有现金红包('CASH_LUCK_MONEY')和裂变红包('GROUP_LUCK_MONEY')可选,红包工具类中已定义相关常量。 */ $result = $luckMoneyServer->send($luckMoneyData); //判断红包是否发送成功 if ($result['return_code'] == 'SUCCESS') { //将用户存入数据库 $customer->chances -= 1; $customer->save(); } return $result; }