$data['merno'], 'Amount'=>$data['amount'], 'BillNo'=>$data['order_no'], 'TranCode'=>"SMZF012", 'PayType'=> "SMZF", 'PaymentType'=> $data['paymenttype'],//"UNION","ZFBZF", 'MerRemark' => $data['MerRemark'], 'subject' => $data['subject'], 'NotifyURL' => $data['notifyurl'], 'ReturnURL' => $data['returnurl'], 'mchAppId' => $data['mchAppId'], 'mchAppName' => $data['mchAppName'], 'deviceInfo' => $data['deviceInfo'], 'clientIp' => $data['clientIp'], 'MD5info' => $sign, ]; var_dump($params); $ret = curl_post("https://scan.95epay.cn/ScanCodePayment.action", $params); return $ret; } // 小程序支付 双乾 public function sq_wxsmallpay($data){ Log::write("wxpay:".serialize($_REQUEST), Log::DEBUG); $returnurl = empty($data['returnurl'])?"http://".$_SERVER['HTTP_HOST']:$data['returnurl'];//成功跳转 $notifyurl = "http://".$_SERVER['HTTP_HOST']."/callback.php/Notify/sq_callback"; //通知 $ordertime =date("Ymdhms",time()); // 168885 12345678 $sign = md5("Amount={$data['amount']}&BillNo={$data['order_no']}&MerNo={$data['merno']}&PayType=SMZF&".strtoupper(md5($data['secret']))); $sign = strtoupper($sign); $params=[ 'MerNo' => $data['merno'], 'isSubMerPay' => 0, // 'subMerNo' => $data['merno'], 'appId' => $data['appId'],//'wx0ba5be5c8bb9f1b7', 'Amount'=> $data['amount'], 'BillNo'=> $data['order_no'], 'TranCode'=>"SMZF010", 'PayType'=> "SMZF", 'PaymentType'=> "WXZF", 'MerRemark' => $data['MerRemark'], 'subject' => $data['subject'], 'userId' => $data['userId']?$data['userId']:'oqFwC5TRQX1wpM8KfBQHy5FI6yJM',//'oqFwC5TRQX1wpM8KfBQHy5FI6yJM', 'NotifyURL' => $notifyurl, 'MD5info' => $sign, ]; $ret = curl_post("https://scan.95epay.cn/ScanCodePayment.action", $params); return json_decode($ret, true); } /* * 'cardType' => string 'CC' (length=2) DC为储蓄卡,CC为信用卡 'bank' => string 'CMB' (length=3) 'key' => string '1567737106107-2456-11.34.191.208-899687252' (length=42) 'messages' => array (size=0) empty 'validated' => boolean true 'stat' => string 'ok' (length=2) */ private function getbankinfo($cardNo) { $url = "https://ccdcapi.alipay.com/validateAndCacheCardInfo.json"; $r = curl_post($url, array('cardNo' => $cardNo, 'cardBinCheck' => 'true', '_input_charset' => 'utf-8')); $r = (json_decode($r, true)); return $r; } /* * 查询用户银行卡信息的签约状态 */ public function contract_status($data) { $url = "https://fastpay.95epay.cn/pay/querySignResult.action"; // $url = "http://218.4.234.150:9600/pay/querySignResult.action"; $sign = md5("cardNo={$data['cardNo']}&custName={$data['custName']}&idNo={$data['idNo']}&merNo={$data['merNo']}&payType=XYPAY&phoneNo={$data['phoneNo']}&".strtoupper(md5($data['secret']))); $sign = strtoupper($sign); $param = array( 'merNo' => $data['merNo'], 'custName' => $data['custName'], 'phoneNo' => $data['phoneNo'], 'cardNo' => $data['cardNo'], 'idNo' => $data['idNo'], 'payType' => 'XYPAY', 'payAmount' => $data['payAmount'], 'MD5Info' => $sign, ); $ret = curl_post($url, $param); return json_decode($ret, true); } /* * 协议支付发送短信 */ public function protocol_pay_send_sms($data) { $url = "https://fastpay.95epay.cn/pay/realnameAuth.action"; /* $url = "http://218.4.234.150:9600 /realnameAuth.action"; $data['merNo'] = 168885; $data['secret'] = 12345678; */ $data['transDate'] = date('Ymd'); $data['transTime'] = date('His'); $bankInfo = $this->getbankinfo($data['cardNo']); $data['cardType'] = $bankInfo['cardType'] == 'CC' ? 2: 1; // pp($bankInfo); $sign = md5("merNo={$data['merNo']}&custName={$data['custName']}&phone={$data['phoneNo']}&cardNo={$data['cardNo']}&idNo={$data['idNo']}&idType=0&payAmount={$data['payAmount']}&merOrderNo={$data['merOrderNo']}&cardType={$data['cardType']}&year=&month=&CVV2=&transDate={$data['transDate']}&transTime={$data['transTime']}&".strtoupper(md5($data['secret']))); $sign = strtoupper($sign); $param = array( 'merNo' => $data['merNo'], 'custName' => $data['custName'], 'cardNo' => $data['cardNo'], 'phone' => $data['phoneNo'], 'idNo' => $data['idNo'], 'idType' => '0', 'payAmount' => $data['payAmount'], 'merOrderNo' => $data['merOrderNo'], 'bankCode' => $bankInfo['bank'], 'payType' => 'XYPAY', 'cardType' => $data['cardType'], 'NotifyURL' => $data['NotifyURL'], 'transDate' => $data['transDate'], 'transTime' => $data['transTime'], 'purpose' => $data['purpose'], 'MD5Info' => $sign, ); $ret = curl_post($url, $param); return json_decode($ret, true); } /** * 交易 */ // 快捷支付 双乾 public function shortcut_pay($data){ $url = "https://fastpay.95epay.cn/pay/hfDaikouTrade.action"; /* $url = "http://218.4.234.150:9600 /realnameAuth.action"; $data['merNo'] = 168885; $data['secret'] = 12345678; */ $notifyurl = "http://".'api.wmtxkj.com'."/callback.php/Notify/sq_callback";//通知 $data['NotifyURL'] = $notifyurl; $bankInfo = $this->getbankinfo($data['cardNo']); $data['cardType'] = $bankInfo['cardType'] == 'CC' ? 2: 1; // pp($bankInfo); $sign = md5("merNo={$data['merNo']}&merOrderNo={$data['merOrderNo']}&custName={$data['custName']}&phone={$data['phoneNo']}&cardNo={$data['cardNo']}&idType=0&idNo={$data['idNo']}&payAmount={$data['payAmount']}&bankCode={$bankInfo['bank']}&NotifyURL={$data['NotifyURL']}&".strtoupper(md5($data['secret']))); $sign = strtoupper($sign); $param = array( 'merNo' => $data['merNo'], 'merOrderNo' => $data['merOrderNo'], 'cardNo' => $data['cardNo'], 'custName' => $data['custName'], 'idType' => '0', 'idNo' => $data['idNo'], 'phone' => $data['phoneNo'], 'purpose' => $data['purpose'], 'payAmount' => $data['payAmount'], 'bankCode' => $bankInfo['bank'], 'payType' => 'XYPAY', 'NotifyURL' => $data['NotifyURL'], 'txnTime' => $data['txnTime'], 'smsCode' => $data['smsCode'], 'MD5Info' => $sign, ); $ret = curl_post($url, $param); return json_decode($ret, true); } /* * 认证/签约 */ public function sign_contract($data) { $url = "https://fastpay.95epay.cn/pay/identifyAuthAndSign.action"; /* $url = "http://218.4.234.150:9600/pay/identifyAuthAndSign.action"; $data['merNo'] = 168885; $data['secret'] = 12345678; */ $data['transDate'] = date('Ymd'); $data['transTime'] = date('His'); $bankInfo = $this->getbankinfo($data['cardNo']); $data['cardType'] = $bankInfo['cardType'] == 'CC' ? 2: 1; $sign = md5("authMsg=&bankCode={$bankInfo['bank']}&cardNo={$data['cardNo']}&cardType={$data['cardType']}&custName={$data['custName']}&custType={$data['custType']}&idNo={$data['idNo']}&idType=0&merNo={$data['merNo']}&payType=XYPAY&phoneNo={$data['phoneNo']}&reqMsgId={$data['reqMsgId']}&".strtoupper(md5($data['secret']))); $sign = strtoupper($sign); $param = array( 'merNo' => $data['merNo'], 'custName' => $data['custName'], 'phoneNo' => $data['phoneNo'], 'cardNo' => $data['cardNo'], 'bankCode' => $bankInfo['bank'], 'idNo' => $data['idNo'], 'idType' => 0, 'reqMsgId' => $data['reqMsgId'], 'cardType' => $data['cardType'], 'authMsg' => $data['authMsg'], 'custType' => $data['custType'], // 01:认证,02:签约 'payType' => 'XYPAY', 'MD5Info' => $sign, ); $ret = curl_post($url, $param); pp($ret); return json_decode($ret, true); } }