phpweb微信支付
Ⅰ php版本,微信掃碼支付native模式二,掃碼支付成功,頁面靜止不動,怎麼可以支付回調URL
你好
微信的native支付模式本身是沒有成功後的回調地址的(他有個notify_url配置,但是那個是微信方成功後向你的伺服器發送的結果通知,是非同步執行的)
如果你想要根據支付結果跳轉不同的頁面,只能在本頁用js輪詢結果,再根據來進行跳轉
Ⅱ php寫的微信支付,支付結果提示:支付失敗,調用支付jsapi缺少參數 total_fee、
可以建議你,把發送給微信伺服器統一下單的參數包與你js調起微信支付所發送的參數包對比一下,大小寫也看看,肯定哪裡出問題了,我以前接微信支付的時候,遇到很多問題,後來查看下來,基本上都是自己這邊不對。
Ⅲ php開發微信支付要多久
1到5天。使用php開發微信支付時,由於審核速度較慢,需要花費1到5天的時間。微信支付是騰訊集團旗下的第三方支付平台,致力於為用戶和企業提供安全、便捷、專業的在線支付服務。
Ⅳ PHP對接第三方支付渠道之微信支付v3版本
文接上篇 PHP如何更科學地接入第三方渠道 ,既然已經寫到這了,索性創建了一個gitee倉庫,地址: https://gitee.com/wuzhh/tp6-payment ,有需要的可以去看看。
言歸正傳,微信支付v3版本剛推出不久,鑒於微信官方一貫語焉不詳的尿性,論壇上自然仍舊一片哀嚎,鄙人一路踩坑下來,倒也還算順利,把過程分享給大家參考~
在微信商戶平台中找到API安全,這一步按照官方提示操作即可,比較簡單不再贅述
注意,第1步中導出的證書有三個文件,以我的經驗只有apiclient_key.pem是有用的,apiclient_cert.pem則沒什麼用(沒發現它有什麼用),拿到apiclient_key.pem的路徑之後:
上面是官方提供的命令,此處:
apiV3key = 設置的v3秘鑰
mchId = 商戶號
mchPrivateKeyFilePath = apiclient_key.pem的路徑
mchSerialNo = 商戶API證書序列號
outputFilePath = 微信支付平台證書的存儲路徑
你可能會問,-c參數填啥?這里需要說一下這個參數是驗證證書用的,填的是微信支付平台證書的路徑,因為我們現在是 第一次創建證書,所以-c參數不需要填寫 ,需要特別注意一下。
這樣就能確保上文注入的支付實例都有共同的支付和回調方法
有部分方法文中沒上,我個人的項目中用上了,就暫且保留吧
通知部分過段時間再更,明天就算端午節就更到這了,有需要的小夥伴可以留言,我爭取盡快補上~
Ⅳ thinkphp微信h5支付sdk怎麼用
主要的支付代碼如下:
<?php
namespaceHomeController;
useThinkController;
//微信支付類
{
//獲取access_token過程中的跳轉uri,通過跳轉將code傳入jsapi支付頁面
publicfunctionjs_api_call(){
$order_sn=I('get.order_sn','');
if(empty($order_sn)){
header('location:'.__ROOT__.'/');
}
vendor('Weixinpay.WxPayPubHelper');
//使用jsapi介面
$jsApi=newJsApi_pub();
//=========步驟1:網頁授權獲取用戶openid============
//通過code獲得openid
if(!isset($_GET['code'])){
//觸發微信返回code碼
$url=$jsApi->createOauthUrlForCode('域名/Wxpay/js_api_call?order_sn='.$order_sn);
//$url=$jsApi->createOauthUrlForCode(WxPayConf_pub::JS_API_CALL_URL);
Header("Location:$url");
}else{
//獲取code碼,以獲取openid
$code=$_GET['code'];
$jsApi->setCode($code);
$openid=$jsApi->getOpenId();
}
$res=array(
'order_sn'=>'20150109113322',
'order_amount'=>255
);
//=========步驟2:使用統一支付介面,獲取prepay_id============
//使用統一支付介面
$unifiedOrder=newUnifiedOrder_pub();
//設置統一支付介面參數
//設置必填參數
//appid已填,商戶無需重復填寫
//mch_id已填,商戶無需重復填寫
//noncestr已填,商戶無需重復填寫
//spbill_create_ip已填,商戶無需重復填寫
//sign已填,商戶無需重復填寫
$total_fee=$res['order_amount']*100;
//$total_fee=1;
$body="訂單支付{$res['order_sn']}";
$unifiedOrder->setParameter("openid","$openid");//用戶標識
$unifiedOrder->setParameter("body",$body);//商品描述
//自定義訂單號,此處僅作舉例
$out_trade_no=$res['order_sn'];
$unifiedOrder->setParameter("out_trade_no",$out_trade_no);//商戶訂單號
$unifiedOrder->setParameter("total_fee",$total_fee);//總金額
//$unifiedOrder->setParameter("attach","order_sn={$res['order_sn']}");//附加數據
$unifiedOrder->setParameter("notify_url",WxPayConf_pub::NOTIFY_URL);//通知地址
$unifiedOrder->setParameter("trade_type","JSAPI");//交易類型
//非必填參數,商戶可根據實際情況選填
//$unifiedOrder->setParameter("sub_mch_id","XXXX");//子商戶號
//$unifiedOrder->setParameter("device_info","XXXX");//設備號
//$unifiedOrder->setParameter("attach","XXXX");//附加數據
//$unifiedOrder->setParameter("time_start","XXXX");//交易起始時間
//$unifiedOrder->setParameter("time_expire","XXXX");//交易結束時間
//$unifiedOrder->setParameter("goods_tag","XXXX");//商品標記
//$unifiedOrder->setParameter("openid","XXXX");//用戶標識
//$unifiedOrder->setParameter("proct_id","XXXX");//商品ID
$prepay_id=$unifiedOrder->getPrepayId();
//=========步驟3:使用jsapi調起支付============
$jsApi->setPrepayId($prepay_id);
$jsApiParameters=$jsApi->getParameters();
$wxconf=json_decode($jsApiParameters,true);
if($wxconf['package']=='prepay_id='){
$this->error('當前訂單存在異常,不能使用支付');
}
$this->assign('res',$res);
$this->assign('jsApiParameters',$jsApiParameters);
$this->display('jsapi');
}
//非同步通知url,商戶根據實際開發過程設定
publicfunctionnotify_url(){
vendor('Weixinpay.WxPayPubHelper');
//使用通用通知介面
$notify=newNotify_pub();
//存儲微信的回調
$xml=$GLOBALS['HTTP_RAW_POST_DATA'];
$notify->saveData($xml);
//驗證簽名,並回應微信。
//對後台通知交互時,如果微信收到商戶的應答不是成功或超時,微信認為通知失敗,
//微信會通過一定的策略(如30分鍾共8次)定期重新發起通知,
//盡可能提高通知的成功率,但微信不保證通知最終能成功。
if($notify->checkSign()==FALSE){
$notify->setReturnParameter("return_code","FAIL");//返回狀態碼
$notify->setReturnParameter("return_msg","簽名失敗");//返回信息
}else{
$notify->setReturnParameter("return_code","SUCCESS");//設置返回碼
}
$returnXml=$notify->returnXml();
//==商戶根據實際情況設置相應的處理流程,此處僅作舉例=======
//以log文件形式記錄回調信息
//$log_name="notify_url.log";//log文件路徑
//$this->log_result($log_name,"【接收到的notify通知】: ".$xml." ");
$parameter=$notify->xmlToArray($xml);
//$this->log_result($log_name,"【接收到的notify通知】: ".$parameter." ");
if($notify->checkSign()==TRUE){
if($notify->data["return_code"]=="FAIL"){
//此處應該更新一下訂單狀態,商戶自行增刪操作
//$this->log_result($log_name,"【通信出錯】: ".$xml." ");
//更新訂單數據【通信出錯】設為無效訂單
echo'error';
}
elseif($notify->data["result_code"]=="FAIL"){
//此處應該更新一下訂單狀態,商戶自行增刪操作
//$this->log_result($log_name,"【業務出錯】: ".$xml." ");
//更新訂單數據【通信出錯】設為無效訂單
echo'error';
}
else{
//$this->log_result($log_name,"【支付成功】: ".$xml." ");
//我這里用到一個process方法,成功返回數據後處理,返回地數據具體可以參考微信的文檔
if($this->process($parameter)){
//處理成功後輸出success,微信就不會再下發請求了
echo'success';
}else{
//沒有處理成功,微信會間隔的發送請求
echo'error';
}
}
}
}
//訂單處理
privatefunctionprocess($parameter){
//此處應該更新一下訂單狀態,商戶自行增刪操作
/*
*返回的數據最少有以下幾個
*$parameter=array(
'out_trade_no'=>xxx,//商戶訂單號
'total_fee'=>XXXX,//支付金額
'openid'=>XXxxx,//付款的用戶ID
);
*/
returntrue;
}
}
?>
Ⅵ thinkphp微信支付回調是什麼意思
微信支付回調就是說用戶通過微信支付完畢時的返回值去判斷支付結果。
通過返回的結果,去修改資料庫(完成你想實現的功能)
例:用戶支付成功->通過回調判斷->資料庫操作(為會員充值積分)
用戶支付失敗(或取消支付)->通過回調判斷->跳轉到支付失敗頁
Ⅶ 微信支付介面開發用php如何實現
你好。關於這個問題:
先進入開發者中心-》網頁授權獲取用戶基本信息-》修改成你的測試域名。否則會出現redirect_uri 參數
微『信』支『付』介面現在也慢慢的像支『付』寶一個可以利用api介面來實現第3方網|站(pigcms)或應用進行支付了。
希望我的回答對您有用,望採納~
Ⅷ 如何用PHP實現微信支付,求教。新手!說明詳細點
以PHP語言為例,對微信支付的開發流程進行一下說明:
1.獲取訂單信息。
2.根據訂單信息和支付相關的賬號生成sign,並且生成支付參數。
3.將支付參數信息POST到微信伺服器,獲取返回信息。
4.根據返回信息生成相應的支付代碼(微信內部)或是支付二維碼(非微信內),完成支付。
Ⅸ 由PHP開發的H5微信支付介面
這個必須需要公眾號,而且認證後的公眾號。
開通對應介面才可以使用,沒有對應的,是不允許的。
Ⅹ PHP調用微信支付介面
不一定,看你業務需要。這些步驟只是描述微信系統會發出和接收什麼數據,商戶需要發送和會接收到什麼數據,用戶需要執行什麼操作。回調的URL是用來接收數據的,至於發送並沒有要求。