本文整理匯總了PHP中WxPayApi::micropay方法的典型用法代碼示例。如果您正苦於以下問題:PHP WxPayApi::micropay方法的具體用法?PHP WxPayApi::micropay怎麽用?PHP WxPayApi::micropay使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類WxPayApi
的用法示例。
在下文中一共展示了WxPayApi::micropay方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: pay
/**
*
* 提交刷卡支付,並且確認結果,接口比較慢
* @param WxPayMicroPay $microPayInput
* @throws WxpayException
* @return 返回查詢接口的結果
*/
public function pay($microPayInput)
{
//①、提交被掃支付
$result = WxPayApi::micropay($microPayInput, 5);
//如果返回成功
if (!array_key_exists("return_code", $result) || !array_key_exists("out_trade_no", $result) || !array_key_exists("result_code", $result)) {
echo "接口調用失敗,請確認是否輸入是否有誤!";
throw new WxPayException("接口調用失敗!");
}
//簽名驗證
$out_trade_no = $microPayInput->GetOut_trade_no();
//②、接口調用成功,明確返回調用失敗
if ($result["return_code"] == "SUCCESS" && $result["result_code"] == "FAIL" && $result["err_code"] != "USERPAYING" && $result["err_code"] != "SYSTEMERROR") {
return false;
}
//③、確認支付是否成功
$queryTimes = 10;
while ($queryTimes > 0) {
$succResult = 0;
$queryResult = $this->query($out_trade_no, $succResult);
//如果需要等待1s後繼續
if ($succResult == 2) {
sleep(2);
continue;
} else {
if ($succResult == 1) {
//查詢成功
return $queryResult;
} else {
//訂單交易失敗
break;
}
}
$queryTimes--;
}
//④、次確認失敗,則撤銷訂單
if (!$this->cancel($out_trade_no)) {
throw new WxpayException("撤銷單失敗!");
}
return false;
}