当前位置:首页 » 编程语言 » php手机支付

php手机支付

发布时间: 2022-07-14 02:19:24

‘壹’ 如何用php实现微信支付,求教。新手!说明详细点

以PHP语言为例,对微信支付的开发流程进行一下说明:

1.获取订单信息。

2.根据订单信息和支付相关的账号生成sign,并且生成支付参数。

3.将支付参数信息POST到微信服务器,获取返回信息。

4.根据返回信息生成相应的支付代码(微信内部)或是支付二维码(非微信内),完成支付。

‘贰’ 如何利用PHP实现 APP端微信支付功能

一丶PHP后台后台生成预支付交易单,返回正确的预支付交易回话标识后再在APP里面调起支付!官方文档:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1

根据文档拼接微信需要的参数,这里需要几个方法,直接上代码!

传输给微信的参数要组装成xml格式发送,传如参数数组!
publicfunctionToXml($data=array())

{
if(!is_array($data)||count($data)<=0)
{
return'数组异常';
}

$xml="";
foreach($dataas$key=>$val)
{
if(is_numeric($val)){
$xml.="<".$key.">".$val."";
}else{
$xml.="<".$key.">";
}
}
$xml.="";
return$xml;
}

2.生成随机字符串,微信所需参数!这里方法很多,看自己爱好都行!

functionrand_code(){
$str='';//62个字符
$str=str_shuffle($str);
$str=substr($str,0,32);
return$str;
}

3.这里是微信比较重要的一步了,这个方法会多次用到!生成签名

privatefunctiongetSign($params){
ksort($params);//将参数数组按照参数名ASCII码从小到大排序
foreach($paramsas$key=>$item){
if(!empty($item)){//剔除参数值为空的参数
$newArr[]=$key.'='.$item;//整合新的参数数组
}
}
$stringA=implode("&",$newArr);//使用&符号连接参数
$stringSignTemp=$stringA."&key="."************************";//拼接key
//key是在商户平台API安全里自己设置的
$stringSignTemp=MD5($stringSignTemp);//将字符串进行MD5加密
$sign=strtoupper($stringSignTemp);//将所有字符转换为大写
return$sign;
}

4.传递参数给微信,生成预支付订单!接收微信返回的数据,在反给APP端,APP端调用支付接口,完成支付!APP端所需参数见微信文档:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_12&index=2

publicfunctionwx_pay(){

$nonce_str=$this->rand_code();//调用随机字符串生成方法获取随机字符串
$data['appid']='wxdbc5dc*******';//appid
$data['mch_id']='1493*****';//商户号
$data['body']="APP支付测试";
$data['spbill_create_ip']=$_SERVER['HTTP_HOST'];//ip地址
$data['total_fee']=1;//金额
$data['out_trade_no']=time().mt_rand(10000,99999);//商户订单号,不能重复
$data['nonce_str']=$nonce_str;//随机字符串
$data['notify_url']='https://www.5wx.org/';接收支付后的通知,必须为能直接访问的网址,不能跟参数
$data['trade_type']='APP';//支付方式
//将参与签名的数据保存到数组注意:以上几个参数是追加到$data中的,$data中应该同时包含开发文档中要求必填的剔除sign以外的所有数据
$data['sign']=$this->getSign($data);//获取签名
$xml=$this->ToXml($data);//数组转xml
//curl传递给微信方
$url="https://api.mch.weixin.qq.com/pay/unifiedorder";
//header("Content-type:text/xml");
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
if(stripos($url,"https://")!==FALSE){
curl_setopt($ch,CURLOPT_SSLVERSION,CURL_SSLVERSION_TLSv1);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
}else{
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//严格校验
}
//设置header
curl_setopt($ch,CURLOPT_SSLVERSION,CURL_SSLVERSION_TLSv1);
curl_setopt($ch,CURLOPT_HEADER,FALSE);
//要求结果为字符串且输出到屏幕上
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
//设置超时
curl_setopt($ch,CURLOPT_TIMEOUT,30);
curl_setopt($ch,CURLOPT_POST,TRUE);
//传输文件
curl_setopt($ch,CURLOPT_POSTFIELDS,$xml);
//运行curl
$data=curl_exec($ch);
//返回结果
if($data){
curl_close($ch);
//返回成功,将xml数据转换为数组.
$re=$this->FromXml($data);
if($re['return_code']!='SUCCESS'){
json("201",'签名失败');
}
else{
//接收微信返回的数据,传给APP!
$arr=array(
'prepayid'=>$re['prepay_id'],
'appid'=>'wxdbc5dc*****',
'partnerid'=>'14937****',
'package'=>'Sign=WXPay',
'noncestr'=>$nonce_str,
'timestamp'=>time(),
);
//第二次生成签名
$sign=$this->getSign($arr);
$arr['sign']=$sign;
json('200','签名成功',$arr);
}
}else{
$error=curl_errno($ch);
curl_close($ch);
json('201',"curl出错,错误码:$error");
}
}

5.将xml数据转换为数组,接收微信返回数据时用到.

publicfunctionFromXml($xml)
{
if(!$xml){
echo"xml数据异常!";
}
//将XML转为array
//禁止引用外部xml实体
libxml_disable_entity_loader(true);
$data=json_decode(json_encode(simplexml_load_string($xml,'SimpleXMLElement',LIBXML_NOCDATA)),true);
return$data;
}

二.APP支付成功后,会调用你填写的回调地址.返回参数详见微信文档:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_7&index=3

//微信支付回调
functionwx_notify(){
//接收微信返回的数据数据,返回的xml格式
$xmlData=file_get_contents('php://input');
//将xml格式转换为数组
$data=$this->FromXml($xmlData);
//用日志记录检查数据是否接受成功,验证成功一次之后,可删除。
$file=fopen('./log.txt','a+');
fwrite($file,var_export($data,true));
//为了防止假数据,验证签名是否和返回的一样。
//记录一下,返回回来的签名,生成签名的时候,必须剔除sign字段。
$sign=$data['sign'];
unset($data['sign']);
if($sign==$this->getSign($data)){
//签名验证成功后,判断返回微信返回的
if($data['result_code']=='SUCCESS'){
//根据返回的订单号做业务逻辑
$arr=array(
'pay_status'=>1,
);
$re=M('order')->where(['order_sn'=>$data['out_trade_no']])->save($arr);
//处理完成之后,告诉微信成功结果!
if($re){
echo'';exit();
}
}
//支付失败,输出错误信息
else{
$file=fopen('./log.txt','a+');
fwrite($file,"错误信息:".$data['return_msg'].date("Y-m-dH:i:s"),time()." ");
}
}
else{
$file=fopen('./log.txt','a+');
fwrite($file,"错误信息:签名验证失败".date("Y-m-dH:i:s"),time()." ");
}

}

在这里,微信APP支付流程就成功走完了!谢谢支持!

---------------------

‘叁’ php 微信支付几种方式

用支付金额绑定支付用户,监听到收款金额就能知道哪个用户支付的,从而达到无需人工处理的效果,也能实现多笔订单同时处理。点击查看支付演示,了解个人网站实现微信收款流程。

‘肆’ php怎样实现手机支付功能

程序不可以随便给人发短信的。

1.理论上需要你和移动或联通谈,拿到SP(服务提供商)营业执照,才可以使用手机短信的API。(比较困难)

2.如果你找到了一家SP,并谈成合作,他会分给你接口的引用方法。一般是socket+xml或是http+xml的.用PHP的socket相关的函数可以很方便的去调用。

3.如果还有更简单的方法,那就是通过一些免费/收费的短信发送服务商,他们提供发送短信的插件以及接口,有各种方式,大部分都有PHP可调用的HTTP方式和webservice方式的接口。如这个平台:
()

4.还有人使用PHP调用飞信的API发送,但不是官方提供的,所以不是很稳定,请搜索 飞信API PHP 了解详细的情况。

‘伍’ 怎样用PHP进行支付宝手机网站支付开发

支付宝的手机网站支付签约产品里面有配套的实例代码,再配合网络查一下就会的。
基本来说就是完成参数配置发起支付,然后用户支付完以后,通过支付宝那边来回调你自己的支付成功处理业务(异步),或用户按完成按钮回调你自己的支付处理成功业务(同步)。

‘陆’ php支付宝手机网站支付,异步回调和同步回调里面应该怎么写

你在支付宝商户中心申请到相应的接口,例如大多数网站对接支付宝用的“即时转账接口”,申请到之后在支付宝商户中心能够找到相应的接口demo下载,里面就有php的demo,参考里面的异步回调和同步回调的写法即可

‘柒’ PHP可以实现打开手机支付宝软件

如果只要php 拉起支付宝,还是可以的,但是你拉起支付宝来做什么,这才是关键,不用php,就普通的html 都能拉起手机上的支付宝。

‘捌’ php 手机支付宝接口要配置哪些文件

登录支付宝,然后有个商户版的,进入申请双功能接口,

然后下载下来的接口包文件有很多语言的源码

我们选择PHP版的UFT-8

里面包括一些文件

images文件里是支付宝相关的一些标志的图片,lib文件很重要,是整个接口的核心类文件;
alipay.config.php是相关参数的配置文件
alipayapi.php 是支付宝接口入口文件
notify_url.php 是服务器异步通知页面文件;
return_url.php 是页面跳转同步通知文件;

按照开发文档开发即可

注:开发文档就是支付宝官方给你的一些文档,这么接入等等的。注意事项。不用担心,下载下来,已经有例子给你的了,你只能修改下配置即可,更详细的介绍可以去看下php中文网的这篇文章http://www.php.cn/php-weizijiaocheng-326873.html,希望对你有帮助

热点内容
linux指定组 发布:2024-05-17 05:04:39 浏览:85
鲁班算法 发布:2024-05-17 04:59:46 浏览:488
分布钢筋配置有哪些 发布:2024-05-17 04:51:57 浏览:147
轩逸宝来朗逸配置一样哪个平易 发布:2024-05-17 04:48:59 浏览:432
c盘删除缓存文件对系统有影响吗 发布:2024-05-17 04:27:47 浏览:339
python不能输入中文 发布:2024-05-17 04:27:34 浏览:110
小米电视密码设置在哪里 发布:2024-05-17 04:06:12 浏览:426
java正则sql 发布:2024-05-17 04:05:52 浏览:620
51单片机c语言教程郭天祥 发布:2024-05-17 03:46:13 浏览:890
c语言程序特点 发布:2024-05-17 03:41:13 浏览:461