Files
youlegames/codes/agent/game/api/payment/wechat/WxPay.AppPay.php
2026-03-15 01:27:05 +08:00

79 lines
1.8 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
require_once dirname(__FILE__) . "/lib/WxPay.Api.php";
/**
*
* APP支付实现类
* @author widyhu
*
*/
class AppPay
{
/**
*
* 参数数组转换为url参数
* @param array $urlObj
*/
private function ToUrlParams($urlObj)
{
$buff = "";
foreach ($urlObj as $k => $v)
{
$buff .= $k . "=" . $v . "&";
}
$buff = trim($buff, "&");
return $buff;
}
/**
* 生成直接支付url支付url有效期为2小时,模式二
* @param WxPayUnifiedOrder $input
* @param array $wechatInfo
* @return array
* @throws WxPayException
*/
public function GetPayPrepayId($input, $wechatInfo)
{
if ($input->GetTrade_type() == "APP")
{
$result = WxPayApi::unifiedOrder($input, 6, $wechatInfo);
return $result;
}
}
/**
*
* 获取app支付的参数
* @param array $UnifiedOrderResult 统一支付接口返回的数据
* @param array $weixinInfo 微信公众号相关信息
* @throws WxPayException
*
* @return string json数据可直接填入js函数作为参数
*/
public function GetAppApiParameters($UnifiedOrderResult, $weixinInfo)
{
if(!array_key_exists("appid", $UnifiedOrderResult)
|| !array_key_exists("prepay_id", $UnifiedOrderResult)
|| $UnifiedOrderResult['prepay_id'] == "")
{
throw new WxPayException("参数错误");
}
$appapi = new WxPayAppApiPay();
$appapi->SetAppid($UnifiedOrderResult["appid"]);
$appapi->SetPartnerId($UnifiedOrderResult["mch_id"]);
$appapi->SetPrepayId($UnifiedOrderResult["prepay_id"]);
$timeStamp = time();
$appapi->SetTimeStamp($timeStamp);
$appapi->SetNonceStr(WxPayApi::getNonceStr());
$appapi->SetPackage("Sign=WXPay");
$appapi->SetSign($appapi->MakeSign($weixinInfo));
$back_arr=$appapi->GetValues();
$back_arr['prepay_id']=$UnifiedOrderResult["prepay_id"];
$parameters = json_encode($appapi->GetValues());
return $parameters;
}
}