위 챗 결제 개발 주문 조회 인 스 턴 스
8000 단어 위 챗 페 이 먼 트주문 조회
주문 조회 API 의 URL 은:
https://api.weixin.qq.com/pay/orderquery?access_token=xxxxxx
URL 의 매개 변 수 는 현재 위 챗 공식 플랫폼 증빙 access 만 포함 합 니 다.token,주문 조회 의 실제 데 이 터 는 PostData 에 놓 여 있 습 니 다.형식 은 다음 과 같 습 니 다.{
"appid" : "wwwwb4f85f3a797777",
"package" : "out_trade_no=11122&partner=1900090055&sign=4e8d0df3da0c3d0df38f",
"timestamp" : "1369745073",
"app_signature" : "53cca9d47b883bd4a5c85a9300df3da0cb48565c",
"sign_method" : "sha1"
}
상기 내용 의 매개 변 수 는 표 와 같다.
매개 변수
설명 하 다.
appid
공중 플랫폼 계 정의 AppId;
package
주문 의 관건 적 인 정보 데 이 터 를 조회 하고 제3자 의 유일한 주문 번호 out 를 포함 합 니 다.trade_통상 호신П엽 partner(즉 앞에서 말 한 partnerid),서명 sign 입 니 다.그 중에서 sign 은 매개 변수 사전 순 서 를 정렬 하고 사용&연합 합 니 다.마지막 으로&key=partnerkey(유일한 배분)를 더 해 md5 연산 을 한 다음 에 전체 대문자 로 전환 하여 sign 을 얻 습 니 다.
timestamp
linux 시간 스탬프;
app_signature
결제 서명(paysign)생 성 방법 에서 말 한 서명 방식 에 따라 생 성 된 서명 필드 는 appid,appkey,package,timestamp 입 니 다.
sign_method
서명 방법(서명 생 성 을 계산 하지 않 음);
2.세부 사항 실현
1.access token 획득
이 건 쉬 워 요.위 챗 공식 플랫폼 개발(26)ACCESS TOKEN 참고 하 세 요.
코드 는 다음 과 같 습 니 다:
$appid = "wx0000000000000000";
$appsecret = "e76050733c695748537fc4d4c21d0e2c";
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
$result = https_request($url);
$jsoninfo = json_decode($result, true);
$access_token = $jsoninfo["access_token"];
2.매개 변수 생 성appid:직접 할당
timestamp:프로그램 직접 가 져 오기
$timestamp = time();
sign_method:여 기 는 sha 1 입 니 다.난점 1:package 값 획득
싸 인 을 먼저 받 아야 합 니 다.
sign 은 outtrade_no,partner,key(partnerkey)세 가지 정보의 사전 순서 정렬,MD5 연산,대문자 로 전환
$sign= strtoupper(md5("out_trade_no=JfuKdiBig4zZnE4n&partner=1234567890&key=ebf5cf381de2d716d432bfda34fa9e57"));
package 는 주문 서 를 조회 하 는 관건 적 인 정보 데이터 로 제3자 의 유일한 주문 번호 out 를 포함 합 니 다.trade_통상 호신П엽 partner(즉 앞에서 말 한 partnerid),서명 sign
$package = "out_trade_no=JfuKdiBig4zZnE4n&partner=1234567890&sign=".$sign;
난점 2:app 획득signatureapp_signature 는 여전히 결제 서명(paySign)생 성 방법 에서 말 한 서명 방식 에 따라 생 성 되 었 습 니 다.서명 필드 는 appid,appkey,package,timestamp 입 니 다.
$obj['appid'] = "wx0000000000000000";
$obj['appkey'] = "8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6k";
$obj['package'] = $package;
$obj['timestamp'] = $timestamp;
$WxPayHelper->get_biz_sign($obj);
이렇게 각 항목 의 매개 변 수 를 모두 얻 었 다.3.조회 제출
$jsonmenu = '
{
"appid" : "wx0000000000000000",
"package" : "'.$package.'",
"timestamp" : "'.$timestamp.'",
"app_signature" : "'.$app_signature.'",
"sign_method" : "sha1"
}
';
$url = "https://api.weixin.qq.com/pay/orderquery?access_token=".$access_token;
$result = https_request($url, $jsonmenu);
var_dump($result);
전체 코드 는 다음 과 같다.
include_once("WxPayHelper.php");
//1. access token
$appid = "wx0000000000000000";
$appsecret = "e76050733ce76050733ce76050733cdd";
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
$result = https_request($url);
$jsoninfo = json_decode($result, true);
$access_token = $jsoninfo["access_token"];
//2.
$timestamp = time();
$sign= strtoupper(md5("out_trade_no=JfuKdiBig4zZnE4n&partner=1234567890&key=asdfasdfasdfasdfasdfasdfasdfasdf"));
$package = "out_trade_no=JfuKdiBig4zZnE4n&partner=1234567890&sign=".$sign;
//2.1 app_signature
$obj['appid'] = "wx0000000000000000";
$obj['appkey'] = "8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6k";
$obj['package'] = $package;
$obj['timestamp'] = $timestamp;
$WxPayHelper = new WxPayHelper();
//get_biz_sign , ,
$app_signature = $WxPayHelper->get_biz_sign($obj);
//3. json ,
$jsonmenu = '
{
"appid" : "wx0000000000000000",
"package" : "'.$package.'",
"timestamp" : "'.$timestamp.'",
"app_signature" : "'.$app_signature.'",
"sign_method" : "sha1"
}
';
$url = "https://api.weixin.qq.com/pay/orderquery?access_token=".$access_token;
$result = https_request($url, $jsonmenu);
var_dump($result);
function https_request($url, $data = null){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if (!empty($data)){
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}
3.주문 결과상기 절 차 를 실행 한 후 주문 결 과 는 다음 과 같다.
{
"errcode": 0,
"errmsg": "ok",
"order_info": {
"ret_code": 0,
"ret_msg": "",
"input_charset": "GBK",
"trade_state": "0",
"trade_mode": "1",
"partner": "1234567890",
"bank_type": "CMB_FP",
"bank_billno": "201405273540085997",
"total_fee": "1",
"fee_type": "1",
"transaction_id": "1218614901201405273313473135",
"out_trade_no": "JfuKdiBig4zZnE4n",
"is_split": "false",
"is_refund": "false",
"attach": "",
"time_end": "20140527194139",
"transport_fee": "0",
"product_fee": "1",
"discount": "0",
"rmb_total_fee": ""
}
}
각 필드 의 의 미 는 표 와 같다.매개 변수
설명 하 다.
ret_code
조회 결과 상태 코드,0 은 성공 을 나타 내 고 다른 것 은 오 류 를 나타 낸다.
ret_msg
결과 오류 정보 조회 하기;
input_charset
정보 에 있 는 인 코딩 방식 되 돌리 기;
trade_state
주문 상태,0 은 성공,기타 실패;
trade_mode
거래 모델,1 은 즉시 입금,기타 보류;
partner
재부 통상 호,즉 앞의 partnerid;
bank_type
은행 유형;
bank_billno
은행 주문 번호;
total_fee
총 금액,단 위 는 분 리 됩 니 다.
fee_type
화폐 종 류 는 1 위안 이다.
transaction_id
돈 지불 주문 번호;
out_trade_no
제3자 주문 번호;
is_split
분개장 여 부 는 false 는 무 분개장 이 고 true 는 분개장 이 있 습 니 다.
is_refund
환불 여부,false 는 환불 이 없 으 며,ture 는 환불 입 니 다.
attach
상점 데이터 패키지,즉 주문 패 키 지 를 생 성 할 때 상점 이 기입 한 attach;
time_end
완료 시간 지불;
transport_fee
물류 비용 은 단위 별로 나눈다.
product_fee
물품 비용 은 단위 별로 나눈다.
discount
할인 가격 은 단위 별로 나눈다.
rmb_total_fee
인민폐 로 환산 한 후의 총 금액,단 위 는 분,일반적으로 totalfee 면 됩 니 다.
프로그램 이 잘못 되면 errcode 와 errmsg 에서 설명 합 니 다.
위 챗 개발 에서 조회 기능 에 대한 자 료 를 정리 하고 위 챗 개발 결제 에 도움 이 되 고자 하 는 친구 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
위 챗 애플 릿 서비스 업 체 자바 버 전 결제WeixinUtil.java Pay.Util...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.