当前位置:首页 > 微信运营 > 正文

php微信扫码支付,php微信扫码支付需要注意什么

2021-07-01 23:07:02 暂无评论 微信运营

php 微信扫码支付需要注意什么

获得token id换取票据ticket,换取二维码。支付接口的话要提前申请,认证通过,好像暂时不对个人开发者开放

微信支付的二维码怎么生成php

开通线下扫码支付即可实现。
解决方案:
1、首先服务号必须先完成认证。
2、然后在申请开通微信支付。
3、启动设计和开发,支付接口已可以在开发环境下调用调试。
场景介绍:
用户扫描商户展示在各种场景的二维码进行支付。

步骤1:商户根据微信支付的规则,为不同商品生成不同的二维码,展示在各种场景,用于用户扫描购买。

微信扫码支付2 支付成功后是如何返回给微信参数通知处理成功 (php版)

已解决 请问微信支付V3,在支付成功后通过哪个回调的值更新订单状态呢?
<?php
ini_set('date.timezone','Asia/Shanghai');
// error_reporting(E_ERROR);
error_reporting(0);
require_once "WxPay.Api.php";
require_once 'log.php';
require_once("../../includes/mysql.class.php");
//初始化日志
// $logHandler= new CLogFileHandler("./logs/".date('Y-m-d').'.log');
// $log = Log::Init($logHandler, 15);
$xml = $GLOBALS['HTTP_RAW_POST_DATA'];
//禁止引用外部xml实体
$successdata=xmlToArray($xml);
// file_put_contents('log.txt',json_encode($successdata));
function xmlToArray($xml)
{
//将XML转为array
$array_data = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
return $array_data;
}
// function printf_info($data)
// {
// foreach($data as $key=>$value){
// echo "<font color='#f00;'>$key</font> : $value <br/>";
// }
// }
$out_trade_no=$successdata['out_trade_no'];

if(!empty($out_trade_no)){

$input = new WxPayOrderQuery();
$input->SetOut_trade_no($out_trade_no);
$result=WxPayApi::orderQuery($input);
// printf_info($result);
if(array_key_exists("return_code", $result)&& array_key_exists("result_code", $result)&& $result["return_code"] == "SUCCESS"&& $result["result_code"] == "SUCCESS")
{
//file_put_contents('log.txt','支付成功'.$out_trade_no.$pid.$tel.$numbers.$poss);
//支付成功
//改变订单状态
$sql="update pai_deposit set status='1',paytime='".date("Y-m-d H:i:s")."' where out_trade_no='{$out_trade_no}'";
// file_put_contents('log.txt',$sql);
$con=new connection();
$result=$con->Query($sql);
echo "success";
$openid=$successdata['openid'];
$total_fee=$successdata['total_fee']*0.01;
$attach=$successdata['attach'];
$sql="select * from pai_deposit where out_trade_no='{$out_trade_no}'";
$result_deposit=$con->QueryArray($sql);

$sql="select * from paipro where id='".$result_deposit[0]['pid']."'";
$result_pro=$con->QueryArray($sql);

sendmsg($openid,$total_fee,$result_pro[0]['title'],$out_trade_no,$result_deposit[0]['tel']);
exit();
}

echo 'fail';
exit();
}
else
{
//file_put_contents('log.txt','支付失败2'.$out_trade_no);
echo 'fail';
exit();
}
function sendmsg($wxid,$total,$title,$order_id,$tel)
{

$access_token=new_access_token();
$url = ''.$access_token;

$w_title="付款成功通知";
// $w_url='http://'.$_SERVER['HTTP_HOST']."/mobile/user.php?act=fenxiao1&wxid=".$wxid;
$w_url='';

$rtime=date("Y-m-d H:i:s");
$w_description="订单编号:{$order_id}rn保证金:¥{$total}元rn商品详情:{$title}rn联系电话:{$tel}rn付款时间:{$rtime}";
$post_msg = '{
"touser":"'.$wxid.'",
"msgtype":"news",
"news":{
"articles": [
{
"title":"'.$w_title.'",
"description":"'.$w_description.'",
"url":"'.$w_url.'",
"picurl":"'.$w_picurl.'"
}
]
}
}';
$ret_json = curl_grab_page($url, $post_msg);

$ret = json_decode($ret_json);

if($ret->errmsg != 'ok')
{

$access_token = new_access_token();
$url = ''.$access_token;
$ret_json = curl_grab_page($url, $post_msg);
$ret = json_decode($ret_json);
}

}
function curl_grab_page($url, $data, $proxy = '', $proxystatus = '', $ref_url = '') {
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if ($proxystatus == 'true') {
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
}
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
if (!empty($ref_url)) {
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_REFERER, $ref_url);
}
if (defined('CURLOPT_IPRESOLVE') && defined('CURL_IPRESOLVE_V4')) {
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
}
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
ob_start();
return curl_exec ($ch);
ob_end_clean();
curl_close ($ch);
unset($ch);
}

function new_access_token() {

$appid = 'wx52dc8c34087d302c';
$appsecret ='d70878f040f08fa55766bf6d3db5508a';

$time = time();
$url = "";
$ret_json = curl_get_contents($url);
$ret = json_decode($ret_json);

return $ret->access_token;

}

function curl_get_contents($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
curl_setopt($ch, CURLOPT_USERAGENT, _USERAGENT_);
curl_setopt($ch, CURLOPT_REFERER, _REFERER_);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if (defined('CURLOPT_IPRESOLVE') && defined('CURL_IPRESOLVE_V4')) {
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
}
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$r = curl_exec($ch);
curl_close($ch);
return $r;
}
?>

参考地址
已解决 请问微信支付V3,在支付成功后通过哪个回调的值更新订单状态呢?

微信支付接口开发?php?pc?扫码支付,

有的,API不分语言

php微信支付二维码怎么生成二维码

1)打开微信,点击右下角【我】,选择钱包,再点击左上角【转账】。
2)点击【面对面收钱】,然后点击右上角【设置金额】。
3)输入金额(最高支持500元),可以点击【添加收钱说明】进行文字说明,设置好后点击【确定】。
4)全部完成后,一个二维码就生成了,只需朋友用微信扫描即可完成转账。

博客主人破茧短视频培训
破茧短视频为你分享抖音、快手等短视频平台的视频拍摄、剪辑和运营技巧,另有短视频培训学习教程,海量干货助你玩转短视频运营!。
  • 51952 文章总数
  • 4876728访问次数
  • 2205建站天数