php 는 은 련 비 즈 니스 공중 번호+서비스 창 결제 의 예제 코드 를 실현 합 니 다.

이전에 우 리 는 은 련 비 즈 니스 의 H5 결 제 를 배 웠 지만 현재 H5 결 제 는 위 챗 결 제 를 지원 하지 않 습 니 다.마지막 으로 은 련 비 즈 니스 의 공중 번호+서비스 창 결 제 는 알 리 페 이 결제+위 챗 결제+은 련 결 제 를 지원 할 수 있 습 니 다.
1:인터페이스 주소:
테스트 인터페이스 주소:https://qr-test2.chinaums.com/netpay-portal/qmf/webPay.do?
정식 인터페이스 주소:https://qr.chinaums.com/netpay-portal/qmf/webPay.do?
2.주요 매개 변수 설명:
인 터 페 이 스 는 get 매개 변 수 를 인터페이스 주소 에 직접 넣 은 후 이 인 터 페 이 스 는 브 라 우 저 에서 인터페이스 로 직접 이동 합 니 다.
1:instMid
업무 유형,직접 입력:YEDANDEFULT
2:merOrderId
상점 주문 번호
3:mid
은 련 비 즈 니스 의 공중 번호+서비스 창 결제 제품 의 상점 번호
4:msgSrc
뉴스 출처:WWW.TEST.COM
5:msg Type(이 매개 변수 가 중요 한 지,주로 무엇 을 사용 하여 지불 하 는 지 구분 합 니 다)
메시지 유형:위 챗 결제 사용:WXPay.jsPay,알 리 페 이 결제 사용:trade.jsPay,은 련 결제 사용:qmf.jspay 또는 qmf.webPay
6:orderDesc
주문 설명
7:requestTimestamp
메시지 요청 시간:yyy-MM-dd HH:mm:ss,예 를 들 어 2019-10-01 12:12:12
8:tid
은 련 비 즈 니스 의 공중 번호+서비스 창 결제 제품 의 단말기 번호
9:totalAmount
총 금액 을 지불 하고 단 위 는 나 누 어 진다.
10:notifyUrl
지불 결과 알림 주소
11:returnUrl
웹 페이지 이동 주소
12:sign
서명,위의 매개 변 수 를 a-z 순서에 따라 정렬 하고 정렬 이 끝 난 후에&문자 로 연결 합 니 다.연결 한 후에 전의 문자 가 존재 하면 전의 문 자 를 제거 하고 md5 암호 화 를 통 해 서명 을 가 져 옵 니 다.
3.은 련 비 즈 니스 의 공중 번호+서비스 창 결제 인 스 턴 스:

//       
$mdKey = 'fcAmtnx7MwismjWNhNKdHC44mNXtnEQeJkRrhKJwyrW2ysRR';
$mid = '898340149000005';
$tid = '88880001';
$time = time();
$requestTimestamp = date('Y-m-d H:i:s',$time);
$merOrderId = date('YmdHis') . mt_rand(100000, 999999);
$msgType = 'qmf.jspay';//    :WXPay.jsPay,     :trade.jsPay,    :qmf.jspay(qmf.webPay)
$data = [
  'instMid' => 'YUEDANDEFAULT',//    
  'merOrderId' => $merOrderId,//   
  'mid' => $mid,//   
  'msgSrc' => 'WWW.TEST.COM',//    
  'msgType' => $msgType,//    
  'orderDesc' => '  ',//    
  'requestTimestamp' => $requestTimestamp,//      
  'tid' => $tid,//   
  'totalAmount' => '1',//    
  'notifyUrl' => 'http://d9vhs4.natappfree.cc',//        ,            post   。  status          
  'returnUrl' => 'http://d9vhs4.natappfree.cc',//      ,            get   。  status          
];
ksort($data);
reset($data);
$options = '';
foreach ($data as $key => $value) {
  $options .= $key . '=' . $value .'&';
}
$options = rtrim($options, '&');
//      ,      
if(get_magic_quotes_gpc()){
  $options = stripslashes($options);
}
$sign = md5($options . $mdKey);
$options .= '&sign=' . $sign;
$url = 'https://qr-test2.chinaums.com/netpay-portal/webpay/pay.do?'.$options;
//   url        
지불 이 끝 난 후 돌아 오 는 status 매개 변수 값:

환불
지불 이 있 는 이상 환불 이 있 습 니 다.환불 은 어떻게 진행 합 니까?
1:환불 인터페이스
테스트 인터페이스:https://qr-test2.chinaums.com/netpay-route-server/api/
정식 인터페이스:https://qr.chinaums.com/netpay-route-server/api/
2:주요 매개 변수 설명
(1)msgSrc
메시지 출처,예:WWW.TEST.COM
(2)msgType
메시지 출처,직접 입력:refund
(3)requestTimestamp
메시지 요청 시간,형식 yyy-MM-dd HH:mm:ss,예:2019-10-01 12:12:12
(4)merOrderId
상점 주문 번호
(5)instMid
비 즈 니스 유형,YUEDANDEFULT 직접 입력
(6)mid
은 련 비 즈 니스 의 공중 번호+서비스 창 결제 제품 의 상점 번호
(7)tid
은 련 비 즈 니스 의 공중 번호+서비스 창 결제 제품 의 단말기 번호
(8)refundAmount
환불 금액
(9)refundDesc
환불 설명
(10)sign
서명 하 다.
실현 방식 은 지불 중 서명 과 같 습 니 다.
5.환불 사례 지불

//       
$mdKey = 'fcAmtnx7MwismjWNhNKdHC44mNXtnEQeJkRrhKJwyrW2ysRR';
$mid = '898340149000005';
$tid = '88880001';
$requestTimestamp = date('Y-m-d H:i:s',time());
$data = [
  'msgSrc' => 'WWW.TEST.COM',//    
  'msgType' => 'refund',//    
  'requestTimestamp' => $requestTimestamp,//      
  'merOrderId' => $merOrderId,//   
  'instMid' => $params['instMid'],//    
  'mid' => $mid,//   
  'tid' => $tid,//   
  'refundAmount' => 1,//    
  'refundDesc' => '  ',//    
];
ksort($data);
reset($data);
$options = '';
foreach ($data as $key => $value) {
  $options .= $key . '=' . $value .'&';
}
$options = rtrim($options, '&');
//      ,      
if(get_magic_quotes_gpc()){
  $options = stripslashes($options);
}
//  
$sign = md5($options . $mdKey);
$data['sign'] = $sign;
$client = new Client();
$response = $client->createRequest()
  ->setMethod('POST')
  ->setUrl('https://qr-test2.chinaums.com/netpay-route-server/api/')
  ->setData($data)
  ->setHeaders([
    'Content-Type'=>'application/json'
  ])
  ->setFormat(Client::FORMAT_JSON) //        
  ->send();
if ($response->isOk) {
  $data = $response->data;
  if ($data['refundStatus'] == 'SUCCESS') {
    //    
    return true;
  }
}
return false;
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기