Merge pull request 'feature/0302' (#9) from feature/0302 into master

Reviewed-on: http://8.136.139.249:3000/wmtx/sdk/pulls/9
master
廖金灵 4 years ago
commit de8d626463

@ -501,7 +501,7 @@ class NotifyController extends BaseController
'identifier' => $merNo 'identifier' => $merNo
])->find(); ])->find();
if (!$merchant) { if (!$merchant) {
$this->record_logs("找不到商户!".$notify['auth_app_id']); $this->record_logs("找不到商户!".$merNo);
echo 'fail'; echo 'fail';
exit(); exit();
} }
@ -543,101 +543,66 @@ class NotifyController extends BaseController
public function heepay_callback() public function heepay_callback()
{ {
Log::write(serialize($_REQUEST), Log::DEBUG);
$result = $_GET['result']; $result = $_GET['result'];
$pay_message = $_GET['pay_message']; $pay_message = $_GET['pay_message'];
$agent_id = $_GET['agent_id']; $agent_id = $_GET['agent_id'];
$jnet_bill_no = $_GET['jnet_bill_no']; $jnet_bill_no = $_GET['jnet_bill_no'];
$agent_bill_id = $_GET['agent_bill_id']; $agent_bill_id = $_GET['agent_bill_id'];
$pay_type = $_GET['pay_type']; $pay_type = $_GET['pay_type'];
$pay_amt = $_GET['pay_amt']; $pay_amt = $_GET['pay_amt'];
$remark = $_GET['remark']; $remark = $_GET['remark'];
$return_sign = $_GET['sign']; $return_sign = $_GET['sign'];
$merchant = M('payment_merchant', 'tab_')->where([
'identifier' => $agent_id
])->find();
if (!$merchant) {
$this->record_logs("找不到商户!".$agent_id);
echo 'fail';
exit();
}
$remark = iconv("GB2312", "UTF-8//IGNORE", urldecode($remark));//签名验证中的中文采用UTF-8编码; $remark = iconv("GB2312", "UTF-8//IGNORE", urldecode($remark));//签名验证中的中文采用UTF-8编码;
$signStr = ''; $signStr = '';
$signStr = $signStr . 'result=' . $result; $signStr = $signStr . 'result=' . $result;
$signStr = $signStr . '&agent_id=' . $agent_id; $signStr = $signStr . '&agent_id=' . $agent_id;
$signStr = $signStr . '&jnet_bill_no=' . $jnet_bill_no; $signStr = $signStr . '&jnet_bill_no=' . $jnet_bill_no;
$signStr = $signStr . '&agent_bill_id=' . $agent_bill_id; $signStr = $signStr . '&agent_bill_id=' . $agent_bill_id;
$signStr = $signStr . '&pay_type=' . $pay_type; $signStr = $signStr . '&pay_type=' . $pay_type;
$signStr = $signStr . '&pay_amt=' . $pay_amt; $signStr = $signStr . '&pay_amt=' . $pay_amt;
$signStr = $signStr . '&remark=' . $remark; $signStr = $signStr . '&remark=' . $remark;
$payConf = json_decode($merchant['config'], true);
$signStr = $signStr . '&key=' . C('heepay.key'); //商户签名密钥 $signStr = $signStr . '&key=' . $payConf['secret']; //商户签名密钥
$sign = '';
$sign = strtolower(md5($signStr)); $sign = strtolower(md5($signStr));
if ($sign == $return_sign) { //比较签名密钥结果是否一致,一致则保证了数据的一致性 if ($sign == $return_sign) { //比较签名密钥结果是否一致,一致则保证了数据的一致性
//商户自行处理自己的业务逻辑 //商户自行处理自己的业务逻辑
$pay_where = substr($agent_bill_id, 0, 2); $pay_where = substr($agent_bill_id, 0, 2);
$data['trade_no'] = $_GET['jnet_bill_no']; $data['trade_no'] = $_GET['jnet_bill_no'];
$data['out_trade_no'] = $_GET['agent_bill_id']; $data['out_trade_no'] = $_GET['agent_bill_id'];
switch ($pay_where) { switch ($pay_where) {
case 'SP': case 'SP':
$result = $this->set_spend($data); $result = $this->set_spend($data);
break; break;
case 'PF': case 'PF':
$result = $this->set_deposit($data); $result = $this->set_deposit($data);
break; break;
case 'AG': case 'AG':
$result = $this->set_agent($data); $result = $this->set_agent($data);
break; break;
default: default:
exit('accident order data'); exit('accident order data');
break; break;
} }
echo 'ok'; echo 'ok';
} else { } else {
echo 'error'; echo 'error';
//商户自行处理,可通过查询接口更新订单状态,也可以通过商户后台自行补发通知,或者反馈运营人工补发 //商户自行处理,可通过查询接口更新订单状态,也可以通过商户后台自行补发通知,或者反馈运营人工补发
} }
} }

@ -775,26 +775,34 @@ class PayH5Controller extends BaseController{
// redirect(U('Spend/notice',array('user_id'=>$user_id, 'is_platform' => 1,'game_id'=>$game_id,'msg'=>'支付失败', 'user_token' => $this->userToken)));exit; // redirect(U('Spend/notice',array('user_id'=>$user_id, 'is_platform' => 1,'game_id'=>$game_id,'msg'=>'支付失败', 'user_token' => $this->userToken)));exit;
} }
}elseif ($pay_info['channel'] == 5) { // 汇付宝 }elseif ($pay_info['channel'] == 5) { // 汇付宝
$request['pay_way'] = C('PAY_WAY.WFT_PAY'); // 威富通wx $request['pay_way'] = self::WX_PAY; // 威富通wx
$pay['agent_id'] = C('heepay.partner');//商户号 $pay['agent_id'] = $pay_conf['merno'];//商户号
$pay['order_no'] = $request['pay_order_number']; $pay['order_no'] = $request['pay_order_number'];
$pay['time'] = date('YmdHis', time()); $pay['time'] = date('YmdHis', time());
$pay['pay_type'] = 30; $pay['pay_type'] = 30;
$pay['amount'] = $request['price']; $pay['amount'] = $request['price'];
$pay['user_ip'] = get_client_ip(); $pay['user_ip'] = get_client_ip();
$pay['sign_key'] = C('heepay.key');//密钥 $pay['sign_key'] = $pay_conf['secret'];//密钥
$pay['payerName'] = iconv("UTF-8", "gb2312//IGNORE", "万盟天下"); $pay['payerName'] = iconv("UTF-8", "gb2312//IGNORE", "万盟天下");
$pay['number'] = 1; $pay['number'] = 1;
$pay['goods_note']= "消费-".$request["pay_order_number"]; $pay['goods_note']= "消费-".$request["pay_order_number"];
$pay['device'] = "wap"; $pay['device'] = "wap";
$pay['bank_card_type'] = 0; $pay['bank_card_type'] = 0;
$pay['notify_url'] = C('PAY_DOMAIN')."/callback.php/Notify/heepay_callback";
$pay['return_url'] = C('PAY_DOMAIN')."sdk.php/Spend/paycallback/orderno/{$request['pay_order_number']}/user_token/".$this->userToken."/paytype/weixinpay/game_id/{$game_id}"; $pay['return_url'] = C('PAY_DOMAIN')."sdk.php/Spend/paycallback/orderno/{$request['pay_order_number']}/user_token/".$this->userToken."/paytype/weixinpay/game_id/{$game_id}";
$heepay = new Heepay(); $heepay = new Heepay();
$url = $heepay->wxh5_pay($pay); $json_data = $heepay->wxh5_pay($pay);
$request['pay_url'] = $url;//."&tx_client=hideopen"; if($json_data['ret_code'] == "0000"){
$request['pay_url'] = $json_data['url'] . "&tx_client=hideopen";
$request['merchant_id'] = $pay_info['id'];
$request['merchant_way'] = self::WX_PAY;
$request['main_id'] = $main_id;
$this->add_deposit($request, 1); $this->add_deposit($request, 1);
} else {
jsonOutput(0, "支付失败");
exit;
}
}elseif(get_wx_pay_type() == 2){ }elseif(get_wx_pay_type() == 2){
if($request['code']==1){ if($request['code']==1){
@ -1400,11 +1408,8 @@ class PayH5Controller extends BaseController{
*/ */
public function weixin_pay($user_id,$game_id) { public function weixin_pay($user_id,$game_id) {
/* $file=file_get_contents("./Application/Sdk/OrderNo/".$user_id."-".$game_id.".txt");
$request = json_decode(think_decrypt($file),true); */
$request = $this->get_sdk_request($game_id); $request = $this->get_sdk_request($game_id);
// $request['pay_order_number'] = "SP_".date('Ymd').date('His').sp_random_string(4);
$request['pay_status'] = 0; $request['pay_status'] = 0;
$request['pay_way'] = C("PAY_WAY.WEIXIN"); $request['pay_way'] = C("PAY_WAY.WEIXIN");
$request['spend_ip'] = get_client_ip(); $request['spend_ip'] = get_client_ip();
@ -1499,15 +1504,15 @@ class PayH5Controller extends BaseController{
// redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'支付失败', 'user_token' => $this->userToken)));exit; // redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'支付失败', 'user_token' => $this->userToken)));exit;
} }
}elseif ($pay_info['channel'] == 5) { }elseif ($pay_info['channel'] == 5) {
$request['pay_way'] = C('PAY_WAY.WFT_PAY'); // 威富通wx $request['pay_way'] = self::WX_PAY;
$pay['agent_id'] = C('heepay.partner');//商户号 $pay['agent_id'] = $pay_conf['merno'];//商户号
$pay['order_no'] = $request['pay_order_number']; $pay['order_no'] = $request['pay_order_number'];
$pay['time'] = date('YmdHis', time()); $pay['time'] = date('YmdHis', time());
$pay['pay_type'] = 30; $pay['pay_type'] = 30;
$pay['amount'] = $request['price']; $pay['amount'] = $request['price'];
$pay['user_ip'] = get_client_ip(); $pay['user_ip'] = get_client_ip();
$pay['sign_key'] = C('heepay.key');//密钥 $pay['sign_key'] = $pay_conf['secret'];//密钥
$pay['payerName'] = iconv("UTF-8", "gb2312//IGNORE", "万盟天下"); $pay['payerName'] = iconv("UTF-8", "gb2312//IGNORE", "万盟天下");
$pay['number'] = 1; $pay['number'] = 1;
$pay['goods_note']= "消费-".$request["pay_order_number"]; $pay['goods_note']= "消费-".$request["pay_order_number"];
@ -1519,6 +1524,9 @@ class PayH5Controller extends BaseController{
$json_data = $heepay->wxh5_pay($pay); $json_data = $heepay->wxh5_pay($pay);
if($json_data['ret_code'] == "0000"){ if($json_data['ret_code'] == "0000"){
$request['pay_url'] = $json_data['url'] . "&tx_client=hideopen"; $request['pay_url'] = $json_data['url'] . "&tx_client=hideopen";
$request['merchant_id'] = $pay_info['id'];
$request['merchant_way'] = self::WX_PAY;
$request['main_id'] = $main_id;
$this->add_spend($request,1); $this->add_spend($request,1);
} else { } else {
echo json_encode(['code'=>0,'msg'=> '支付失败,请重试'.$json_data['ret_msg']]); echo json_encode(['code'=>0,'msg'=> '支付失败,请重试'.$json_data['ret_msg']]);

Loading…
Cancel
Save