php開發微信APP支付介面

2022-08-30 19:30:19 字數 3305 閱讀 8193

$request_data = array(

'mch_id' => c('wx_mchid'), #商戶號

'nonce_str' => \org\util\string::randstring(30), #隨機字串 不長於32位

'body' => '商品名稱', #商品名稱

'out_trade_no' => '12345678912456', #商戶後台訂單號

'total_fee' => '1', #商品**

'spbill_create_ip' => get_client_ip(), #使用者端實際ip

);

下來我們就要使用這些引數生成簽名了

$request_data['sign'] = $this -> get_sign($request_data);
$xml_data = $this -> set_xmldata($request_data);
列印$xml_data結果如下

$res = $this -> send_prepaycurl($xml_data);
這是請求的返回值

到這裡拿到prepay_id還沒完我們還需要對返回的資料進行二次簽名

if($res['return_code'] == 'success' && $res['result_code'] == 'success')else
//一次簽名的函式

private function get_sign($data)

$str.='&key='.c('wx_key');

$sign = strtoupper(md5($str));

return $sign;

}//二次簽名的函式

private function get_twosign($data)

//生成xml格式的函式

private function set_xmldata($data)

$xmldata = $xmldata."";

return $xmldata;

}private function send_prepaycurl($xmldata)

curl_close($curl);

return $this -> _xmldataparse($data);

}//xml資料解析函式

private function _xmldataparse($data)

支付有了,肯定還得有**

public function wx_notify()else

} **用到的方法如下

// 接收post資料  

/*

*/

public function post_data()

} return $receipt;

} //把物件轉成陣列

public function object_toarray($arr) if(is_array($arr))

} return $arr;

} /**

* 格式化引數格式化成url引數

*/

private function params_tourl($arr)

} $buff = trim($buff, "&");

return $buff.'&key='.$weipay_key;

}

這是最後完成的功能

下面分享一下全部的**

<?php 

namespace home\controller;

use think\controller;

/** * @global wx_key 商戶支付秘鑰

* @author codehi 2017-12-23

*/class wxpaycontroller extends controller

else

}private function send_prepaycurl($xmldata)

curl_close($curl);

return $this->_xmldataparse($data);

}//xml資料解析函式

private function _xmldataparse($data)

//生成xml格式的函式

private function set_xmldata($data)

$xmldata = $xmldata."";

return $xmldata;

}//一次簽名的函式

private function get_sign($data)

$str.='&key='.c('wx_key');

$sign = strtoupper(md5($str));

return $sign;

}//二次簽名的函式

private function get_twosign($data)

public function wx_notify()else

} // 接收post資料

/*

*/

public function post_data()

} return $receipt;

} //把物件轉成陣列

public function object_toarray($arr) if(is_array($arr))

} return $arr;

} /**

* 格式化引數格式化成url引數

*/

private function params_tourl($arr)

} $buff = trim($buff, "&");

return $buff.'&key='.$weipay_key;

}

}

微信支付app支付3 0介面開發

123 4567 步驟5 商戶後台接收支付通知。api參見 支付結果通知api 步驟6 商戶後台查詢支付結果。api參見 查詢訂單api 服務端要做的,就是步驟1235,客戶端做步驟4就行了,步驟6看自己的需求,我們沒有做.首先,生成商戶伺服器訂單,這個自不必說,只有生成訂單,才有訂單號,才能做後面...

php 對接微信APP支付

開發前準備 應用簽名和應用包名如何寫,如果你是用apicloud開發的,前端會知道的,具體可參考官方文件 下面我們就可以開始開發了 支付流程 1.先呼叫統一下單api生成預付訂單 2.獲取到prepay id後將引數再次簽名 4.支付成功,非同步 具體看 wxpay是處理支付的 namespace ...

微信app支付

商戶id public static final string partner id 14698sdfs402dsfdew402 常量固定值 public static final string grant type client credential 獲取預支付id的介面url public st...