本文整理汇总了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;
}