當前位置:首頁 » 微商推廣 » 微信服務商支付phpsdk

微信服務商支付phpsdk

發布時間: 2021-08-06 20:01:42

① 第三方開發者怎麼申請成為微信支付的服務商

三方開發者可以通過申請成為微信支付的服務商。申請的步驟就幾步,根據它的要求即可申請成功啦,具體的要求步驟是:1:到公眾平台注冊一個公眾號,記得是要服務號,並且要它認證的哦。如果沒有認證,可以根據要求先認證。2:認證通過後,根據要求填寫資料。3:驗證一下賬戶,查看功能是否都正常能用,4:和它在線簽署協議,成功後,即可成為它的服務商了。
嗯,我的回答應該很詳細,如果有幫到你,記得給個好評哦。

② 如何用PHP實現微信支付,求教。新手!說明詳細點

微信公眾號JSAPI支付
一:配置參數
申請成功後,獲取介面文件, 將所有文件放入項目根目錄weixin下,在WxPay.ub.config.php中填入配置賬戶信息;

二:設置授權
開發者中心->網頁服務->網頁授權獲取用戶基本信息->修改;
「授權回調頁面域名修改成你的域名地址即可,須保證網頁授權已獲得,不然會報redirect_uri 參數錯誤;

三:網頁授權獲取用戶openid
js_api_call.php 請求文件中改動(所有傳給微信的參數都在入口文件中接收)
$out_trade_no = $_GET['out_trade_no']; //商戶系統內部訂單號 32個字元內
$total_fee = $_GET['total_fee']*100; //訂單總金額 單位為分,不能帶小數點,所以須把價格乘以100,
不然獲取prepay_id時會報錯誤(設置金額欄位時最好設為小數點後2位)
$pay_status = get_pay_status($out_trade_no);//查看訂單支付狀態
$return_url = get_return_url($out_trade_no); //設置支付成功後跳轉頁面
//使用jsapi介面
$jsApi = new JsApi_pub();
//通過code獲得openid
if (!isset($_GET['code'])) { //觸發微信返回code碼
//設置redirect_uri參數,返回code碼地址,其實就是重定向到當前頁面,獲取用戶code碼參數
$url = WxPayConf_pub::JS_API_CALL_URL."?showwxpaytitle=1&out_trade_no=$out_trade_no&total_fee=$total_fee";
$url = $jsApi->createOauthUrlForCode($url);
Header("Location: $url");
}else{ //獲取code碼,以獲取openid
$code = $_GET['code'];
$jsApi->setCode($code);
$openid = $jsApi->getOpenId(); //用戶標識
}
再就是WxPayHubHelper.php文件 JsApi_pub()類下createOauthUrlForCode($redirectUrl)方法, 第二個參數
改為 $urlObj["redirect_uri"] = urlencode($redirectUrl); //對$url變數進行url編碼 不然header重定向時無法獲取訂單號和金額

四:設置統一支付介面參數,獲取prepay_id (預支付ID 微信生成的預支付 ID,用於後續介面調用中使用)
微信支付->開發配置->支付測試->測試授權目錄和測試白名單添加
(支付授權目錄需要精確到最細一級的目錄,且在使用時,目錄名稱後直接加文件名,如ccc.com/weixin/)
確保你 WxPayPubHelper.php文件里 UnifiedOrder_pub 這個類的getPrepayId這個方法能正常使用
這一步的調試在 getPrepayId()內 var_mp($this->result); 就能看到錯誤代碼;
posXml這個方法後調用了createXml這個方法
function postXml() {
$xml = $this->createXml();
//**在此處查看xml文件是否正常生成
include_once("log_.php");
$log = new Log_();
$log->log_result("log.txt",$xml);
//** 由於列印一些xml格式的文件只顯示字元長度,不顯示內容。於是用log的形式寫在伺服器上調試
$this->response = $this->postXmlCurl($xml,$this->url,$this->curl_timeout);
return $this->response;
}
保證xml這個變數格式如下;
<xml><openid><![CDATA[UKqsyD_711nkk2c]]></openid>
<body><![CDATA[pay]]</body>
<out_trade_no>201504101658571802></out_trade_no>
<total_fee>120</total_fee>
<notify_url><![CDATA[http://www.hao123.com/weixin/notify_url.php]]></notify_url>
<trade_type><![CDATA[JSAPI]]></trade_type>
<appid><![CDATA[wxfd3c4asdf]]></appid>
<mch_id>123334333102</mch_id>
<spbill_create_ip><![CDATA[192.168.0.1]]></spbill_create_ip>
<nonce_str><![CDATA[imsdasdcmlkhfa]]></nonce_str>
<sign><![CDATA[CBE62F36806A3E1]]></sign></xml>
參數正確,postXmlCurl才能正確提交,提交後就能得到正確的prepay_id,就能彈出支付框了

五:使用jsapi調起支付
根據prepay_id生成jsapi支付參數
$jsApi->setPrepayId($prepay_id);
$jsApiParameters = $jsApi->getParameters();
//調用微信JS api 支付
function jsApiCall() {
WeixinJSBridge.invoke(
'getBrandWCPayRequest',
<?php echo $jsApiParameters; ?>,
function(res){
WeixinJSBridge.log(res.err_msg);
if(res.err_msg == "get_brand_wcpay_request:ok") { //支付成功後
window.location.href="<?php echo $return_url;?>" //跳轉地址及訂單操作,在非同步頁面也須處理訂單,防止同步時失敗
}else{
alert("支付失敗"+res.err_code+res.err_desc+res.err_msg);
}
}
);
}(每次請求callpay方法時須判斷訂單狀態,防止重復提交)

六:通用通知介面 非同步處理微信返回結果
支付完成後,notify.php中獲取微信的回調
$xml = $GLOBALS['HTTP_RAW_POST_DATA'];
//須驗證簽名,並回應微信。
if($notify->checkSign() == TRUE) //簽名驗證通過並更新訂單狀態後
$notify->setReturnParameter("return_code","SUCCESS"); //設置返回碼,保證支付狀態改變後才返回成功
//對後台通知交互時,如果微信收到商戶的應答不是成功或超時,微信認為通知失敗,
//微信會通過一定的策略(如30分鍾共8次)定期重新發起通知,
$returnXml = $notify->returnXml();
echo $returnXml;(將xml數據返回微信 當return_code為SUCCESS時,不會再通知)
//當收到通知進行處理時,首先檢查對應業務數據的狀態,判斷該通知是否已經處理過,如果沒有處理過再進行處理,
如果處理過直接返回結果成功。在對業務數據進行狀態檢查和處理之前,要採用數據鎖進行並發控制,
以避免函數重入造成的數據混亂.
//判斷是否在微信瀏覽器打開
function isWeiXin(){
var ua = window.navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i) == 'micromessenger'){
return true;
}else{
return false;
}
}

步驟夠詳細了吧,我自己實現過,所以寫了日誌,結合php版本的demo 大致弄得出來了,如果對整個流程不太清楚,仔細的看完微信公眾號支付介面文檔,你申請微信公眾號支付成功了就會有的,

③ 微信支付php sdk怎麼使用

它裡面集成了微信支付的很多功能函數。
你只需要直接調用這個介面即可,
如果能看的明白代碼,你也可以自己根據自己的喜歡封裝成類。
具體的用法只能去找api文檔。

④ 微信支付介面 php

;;;;;;;;;;;;;;這個 你找找 是不是 有一行沒有結束 或者是 單引號 雙引號 用的不對

⑤ 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;

}

}

?>

⑥ PHP調用微信支付介面

不一定,看你業務需要。這些步驟只是描述微信系統會發出和接收什麼數據,商戶需要發送和會接收到什麼數據,用戶需要執行什麼操作。回調的URL是用來接收數據的,至於發送並沒有要求。

⑦ 微信支付服務商申請怎麼弄

微信支付服務商申請條件:
1、 微信認證的企業類型服務號,微信支付服務商目前只面對企業認證的服務號才能開發申請。
2、 申請資料
A、 公司聯系方式:包含聯系人姓名、聯系電話和聯系郵箱
B、 客服電話
C、 公司對公賬戶信息:包含開戶行省市信息,開戶賬號
微信支付商戶平台申請步驟:
一、 資料填寫
1、
登錄微信支付服務商平台(MP),網址為https://pay.weixin.qq.com/index.php/partner/public/home。點擊「微信支付」,然後「服務商申請」
2、 按照頁面的指引,填寫申請資料
3、 資料提交後,將等待審核,同時微信支付會向填寫的對公賬戶打一筆金額隨機的驗證款。
如果資料審核通過,則進行下一步賬戶驗證,如果資料沒有審核通過,申請人從新提交資料,可以根據駁回的理由重新修改提交。
二、 賬戶驗證
1、 登錄服務商平台,查收開戶郵件,獲取商戶平台登錄賬號和密碼
2、 登錄商戶平台,網址: https://pay.weixin.qq.com
3、 在商戶平台中,輸入驗證款金額數字,通過商戶身份驗證
通過賬戶驗證後,就進入協議簽約
三、 協議簽約
1、 確認商戶信息無誤後,在線閱覽協議後,簽約
2、 簽約完成後,支付服務商申請流程完成,則服務商功能開放。

熱點內容
微信三天可見我還能看到對方朋友圈 發布:2021-08-17 15:55:04 瀏覽:114
微商神器x3朋友圈 發布:2021-08-17 15:54:12 瀏覽:667
微信朋友圈怎麼才能不壓縮視頻 發布:2021-08-17 15:53:58 瀏覽:746
af男裝微商 發布:2021-08-17 15:53:01 瀏覽:455
微信發朋友圈文字只顯示一行 發布:2021-08-17 15:53:01 瀏覽:775
微信怎麼看對方設置不看自己朋友圈 發布:2021-08-17 15:53:00 瀏覽:564
微商的萬斯是正品嗎 發布:2021-08-17 15:51:29 瀏覽:246
通過微信朋友圈加好友嗎 發布:2021-08-17 15:50:38 瀏覽:802
微信發了朋友圈之後怎麼修改 發布:2021-08-17 15:46:26 瀏覽:633
微商猜拳送手機詐騙怎麼辦 發布:2021-08-17 15:46:25 瀏覽:765