Пример #1
0
function pay($mchid, $appid, $no, $payurl, $openid, $money, $desc = '美啦啦砸金蛋活动')
{
    //签名参与参数
    $parameters = ['partner_trade_no' => $mchid . date('Ymd') . $no, 'mchid' => $mchid, 'mch_appid' => $appid, 'openid' => $openid, 'check_name' => 'NO_CHECK', 'amount' => $money, 'desc' => $desc, 'spbill_create_ip' => '124.172.237.174', 'nonce_str' => createNoncestr()];
    $sign = getSign($parameters);
    //获取签名
    $parameters['sign'] = $sign;
    $xml = arrayToXml($parameters);
    //生成请求XML
    return postXmlSSLCurl($xml, $payurl);
}
Пример #2
0
<?php

header("content-type:text/html;charset=utf-8");
// $data['viptime']=strtotime("+1 years",time());
// echo $data['viptime'];
// exit();
$cfg = (include 'config.php');
include 'common.php';
$access_token = getAccessToken($cfg['appid'], $cfg['appsecret']);
$jsapi_ticket = getJsapiTicket($access_token);
// var_dump($jsapi_ticket);
$noncestr = createNoncestr();
$timestamp = time();
$protocol = !empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443 ? "https://" : "http://";
$url = "{$protocol}{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
$signature = sha1("jsapi_ticket=" . $jsapi_ticket . "&noncestr=" . $noncestr . "&timestamp=" . $timestamp . "&url=" . $url);
$signPackage = array('appId' => $cfg['appid'], 'nonceStr' => $noncestr, 'timestamp' => $timestamp, 'signature' => $signature);
function getJsApiTicket($accessToken)
{
    // jsapi_ticket 应该全局存储与更新,以下代码以写入到文件中做示例
    $data = json_decode(file_get_contents("jsapi_ticket.json"));
    if ($data->expire_time < time()) {
        // 如果是企业号用以下 URL 获取 ticket
        // $url = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=$accessToken";
        $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=" . $accessToken;
        $res = json_decode(https_request($url));
        $ticket = $res->ticket;
        if ($ticket) {
            $data->expire_time = time() + 7000;
            $data->jsapi_ticket = $ticket;
            $fp = fopen("jsapi_ticket.json", "w");