$weixinpay = new weixinpay($openid,$orderid.'_'.$res2,'訂單支付'.$res3['goods_name'],$total_price*100,'tsd|'.$res2);
$ret = $weixinpay->pay();
<?php
/* */
class weixinpay
public function pay()
//統一下單介面
private function unifiedorder()
private static function postxmlcurl($xml, $url, $second = 30) else
} //陣列轉換成xml
private function arraytoxml($arr) else
} $xml .= "";
return $xml;
} //xml轉換成陣列
private function xmltoarray($xml)
//統一下單介面
$unifiedorder = $this->unifiedorder();
log::write('統一下單介面返回:'.print_r($unifiedorder,1));
//列印報錯資訊
print_r($unifiedorder);
$parameters = array(
'timestamp' => '' . time() . '', //時間戳
'noncestr' => $this->createnoncestr(), //隨機串
'package' => 'prepay_id=' . $unifiedorder['prepay_id'], //資料報
'signtype' => 'md5'//簽名方式
);//簽名
$parameters['paysign'] = $this->getsign($parameters);
return $parameters;
} //作用:產生隨機字串,不長於32位
private function createnoncestr($length = 32)
return $str;
} //作用:生成簽名
private function getsign($obj)
//簽名步驟一:按字典序排序引數
ksort($parameters);
$string = $this->formatbizqueryparamap($parameters, false);
log::write('簽名陣列排序返回string:'.$string);
//簽名步驟二:在string後加入key
$string = $string . "&key=" . $this->key;
//簽名步驟三:md5加密
$string = md5($string);
//簽名步驟四:所有字元轉為大寫
$result_ = strtoupper($string);
return $result_;
} ///作用:格式化引數,簽名過程需要使用
private function formatbizqueryparamap($paramap, $urlencode)
$buff .= $k . "=" . $v . "&";
} $reqpar;
if (strlen($buff) > 0)
return $reqpar;
}}
微信小程式支付
class wxpay protected mch id protected key protected openid protected out trade no protected body protected total fee protected notifyurl protected un...
微信小程式微信支付流程
1.小程式呼叫wx.login獲取登入憑證code wx.login 無請求引數 返回code 有效期5分鐘 wx.login 2.小程式通過code獲取openid 向介面位址 請求引數 返回引數 openid 使用者唯一標識 session key 回話金鑰 3.小程式向服務端傳送openid,...
微信小程式 微信支付模組
1 小程式登入介面 獲取openid 小程式登入 2 商戶端呼叫支付統一下單介面,返回預付單資訊 統一下單 3 小程式端顯示 客戶掃碼支付,小程式端鑑權調起支付,返回支付結果到小程式端 再次簽名 4 推送支付結果到小程式端 支付結果通知api 5 商戶查詢支付結果 查詢訂單api 注意點 1 簽名 ...