孙军玲1
已更新 793篇
勤奋鸟旗下 软件定制开发 安全交付平台!一次合作,终身售后!全程项目经理一对一跟进测试!公司以自研团队结合搭档圈,为用户提供安全快速稳定的软件源码开发服务!
必要->必要->后台创建数据库订单表(订单表根据自己需要的数据进行创建)
我这里有个验证手机号的
var zffs = $('input[name="zffs"]:checked').val();
var phone = $('#mobilePhone').val();
var yzm = $('#yanma').val();
获取到输入的手机号
$(function () {
$('#submit_btn').click(function () {
var phone = $('#mobilePhone').val();
if (!(/^1[3456789]\d{9}$/.test(phone))) {
alert("手机号格式有误,请重试!");
return;
}
$.ajax({
url: "{:url('index/index/send')}",
type: 'post',
data: {phone: phone},
dataType: 'json',
success: function (data) {
layer.msg(''+'发送成功!'+'');
}
});
return false;
});
});
提交到后台方法
public function tijiao()
{
$phone = input('phone');
$yzm = input('code');
$zffs = input('zffs');
if(!$this->isMobile($phone)){
return json(['code'=>0,'msg'=>'请输入正确的手机号']);
}
if(empty($yzm)){
return json(['code'=>0,'msg'=>'请获取验证码']);
}
if($yzm != Session::get('code')){
return json(['code'=>0,'msg'=>'验证码不正确']);
}
if($zffs == '1'){
$zffs = '微信支付';
}else{
$zffs = '支付宝支付';
}
$data = [
'code' => time() . mt_rand(1000,9999),
'amount' => 0.01,
'title'=>'暖心情感课程VIP会员',
'phone'=>$phone,
'pay_status'=>$zffs,
'code_time'=>date("Y-m-d H:i:s",time()),
'status' => 0, //0未支付1已支付
];
$res = Db::name('order')->insertGetId($data);
if($res)
{
return json(['code'=>1,'msg'=>'创建订单成功','id'=>$res]);
}else{
return json(['code'=>0,'msg'=>'失败']);
}
}
这里发送短信验证码引用一个类()
/**
* 发送短信
* @return stdClass
*/
//code
public static function sendSms($phone,$code,$config) {
// 初始化SendSmsRequest实例用于设置发送短信的参数
$request = new SendSmsRequest();
//可选-启用https协议
//$request->setProtocol("https");
// 必填,设置短信接收号码
$request->setPhoneNumbers($phone);
// 必填,设置签名名称,应严格按"签名名称"填写,请参考: https://dysms.console.aliyun.com/dysms.htm#/develop/sign
$request->setSignName($config['sign']);
// 必填,设置模板CODE,应严格按"模板CODE"填写, 请参考: https://dysms.console.aliyun.com/dysms.htm#/develop/template
$request->setTemplateCode($config['code']);
// 可选,设置模板参数, 假如模板中存在变量需要替换则为必填项
$request->setTemplateParam(json_encode(array( // 短信模板中字段的值
"code"=>$code,
// "product"=>"dsd"
), JSON_UNESCAPED_UNICODE));
// 可选,设置流水号
$request->setOutId("yourOutId");
// 选填,上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)
$request->setSmsUpExtendCode("1234567");
// 发起访问请求
$acsResponse = static::getAcsClient($config)->getAcsResponse($request);
return $acsResponse;
}
验证成之后,提交方法到控制器创建订单
//支付宝支付
$.ajax({
url: "{:url('index/index/tijiao')}",
type: 'post',
data: {zffs:zffs,phone:phone,code:yzm},
success:function(res){
// console.log(res);
if (res.code == 1){
var id =res.id;
$.ajax({
url: "{:url('index/Alipay/pay')}",
type: 'post',
data: {id:id},
success:function(res) {
// console.log(res);
$('#mm_kt_four_list').append(res);
}
});
}else{
alert(res.msg);
}
}
});
控制器接收到数据创建订单
public function tijiao()
{
$phone = input('phone');
$yzm = input('code');
$zffs = input('zffs');
if(!$this->isMobile($phone)){
return json(['code'=>0,'msg'=>'请输入正确的手机号']);
}
if(empty($yzm)){
return json(['code'=>0,'msg'=>'请获取验证码']);
}
if($yzm != Session::get('code')){
return json(['code'=>0,'msg'=>'验证码不正确']);
}
if($zffs == '1'){
$zffs = '微信支付';
}else{
$zffs = '支付宝支付';
}
$data = [
'code' => time() . mt_rand(1000,9999),
'amount' => 0.01,
'title'=>'暖心情感课程VIP会员',
'phone'=>$phone,
'pay_status'=>$zffs,
'code_time'=>date("Y-m-d H:i:s",time()),
'status' => 0, //0未支付1已支付
];
$res = Db::name('order')->insertGetId($data);
if($res)
{
return json(['code'=>1,'msg'=>'创建订单成功','id'=>$res]);
}else{
return json(['code'=>0,'msg'=>'失败']);
}
}
--这里这个code是在获取短信验证码的时候,存的一个Session--
到这来就完成一半了,接着继续,创建完订单,肯定有订单id,(这里要单独创建一个订单编号以便不会有重复的编号,一般都是当前时间加四位随机数)
'code' => time() . mt_rand(1000,9999),
将获取到的id返回给页面,用id去请求支付方法
if (res.code == 1){
var id =res.id;
$.ajax({
url: "{:url('index/Alipay/pay')}",
type: 'post',
data: {id:id},
success:function(res) {
// console.log(res);
$('#mm_kt_four_list').append(res);
}
});
}else{
alert(res.msg);
}
前台提交到控制器的id,请求这个支付方法
public function pay($id=0){
if($id==0){
return json(['status'=>'error','msg'=>'未知错误,请刷新重试']);
}
vendor('alipay.wappay.service.AlipayTradeService');
vendor('alipay.wappay.buildermodel.AlipayTradeWapPayContentBuilder');
$order=Db('order')->where('id',$id)->field('code,amount,title')->find();
//商户订单号,商户网站订单系统中唯一订单号,必填
$out_trade_no = $order['code'];
//订单名称,必填
$subject = $order['title'];
//付款金额,必填 单位 元
$total_amount = $order['amount'];//$order['money'];
//商品描述,可空
$body = '暖心情感';
//超时时间
$timeout_express="1m";
$payRequestBuilder = new \AlipayTradeWapPayContentBuilder();
$payRequestBuilder->setBody($body);
$payRequestBuilder->setSubject($subject);
$payRequestBuilder->setOutTradeNo($out_trade_no);
$payRequestBuilder->setTotalAmount($total_amount);
$payRequestBuilder->setTimeExpress($timeout_express);
$config=Db('alipay_config')->where('id',1)->find();
$payResponse = new \AlipayTradeService($config);
$result=$payResponse->wapPay($payRequestBuilder,$config['return_url'],$config['notify_url']);
return ;
}
(-----这里请求成功之后,支付宝接口会返回一个表单的形式
表单类型
将表单嵌入到HTML里
$('#mm_kt_four_list').append(res);
HTML代码
-----)
--->这里面需要配置参数,参数具体获取方式需要到(支付宝开放平台)--
链接https://openhome.alipay.com/platform/home.htm
具体需要参数(下图)
这里异步通知地址就是(回调地址)
回调成功需要在回调方法里,进行回调之后的操作,就给完成订单支付啦
public function notify(){
/* *
* 功能:支付宝服务器异步通知页面
* 版本:2.0
* 修改日期:2016-11-01
* 说明:
* 以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。
*************************页面功能说明*************************
* 创建该页面文件时,请留心该页面文件中无任何HTML代码及空格。
* 该页面不能在本机电脑测试,请到服务器上做测试。请确保外部可以访问该页面。
* 如果没有收到该页面返回的 success 信息,支付宝会在24小时内按一定的时间策略重发通知
*/
$config=Db('alipay_config')->where('id',1)->find();
vendor('alipay/wappay/service/AlipayTradeService');
$arr=$_POST;
$alipaySevice = new \AlipayTradeService($config);
$alipaySevice->writeLog(var_export($_POST,true));
$result = $alipaySevice->check($arr);
// Db('user_order')->where('id',27)->update(['attr'=>json_encode($arr)]);
if($result) {//验证成功
//商户订单号
//$out_trade_no = $_POST['out_trade_no'];
//支付宝交易号
$trade_no = $_POST['trade_no'];
//交易状态
//$trade_status = $_POST['trade_status'];
if($_POST['trade_status'] == 'TRADE_FINISHED' || $_POST['trade_status'] == 'TRADE_SUCCESS') {
$order=Db('order')->where('code',$_POST['out_trade_no'])->find();
if($order){
Db::name('order')->where('id',$order['id'])->update(['status'=>1,'success_date'=>date("Y-m-d H:i:s",time())]);
$res = Db::name('order')->where(['id'=>$order['id']])->find();
if($res['status' == 1]){
require_once "extend/aliyun-dysms-php-sdk/api_demo/SmsDemo.php";
$config=Db('alisms_config')->where('id',2)->find();
$phone = $order['phone'];
$response = \SmsDemo::sendSmss($phone,$config);
}
}else{
echo "fail";
die;
}
}
}else {
//验证失败
echo "fail"; //请不要修改或删除
}
}
有需要支付成功支付要跳转页面的可以在支付回调完之后重定向一下
$this->redirect('http:跳转地址');
多线程同步开发
项目经理1v1跟进
源码定制交付
一次合作/终身售后
您的诉求已经提交请等待工作人员联系,快速通过请联系管理员!
欢迎访问我们的网站!我们非常重视用户的隐私权和信息安全,因此制定了以下用户协议,以明确我们与您之间的关系以及您在使用本网站时应遵守的条款。请您仔细阅读并同意本协议的所有条款,以便您能够合法、安全地使用本网站。如果您不同意本协议的任何内容,请立即停止使用本网站。
服务说明:本网站是一个提供定制软件开发服务和在线找技术搭档的互联网平台。我们保留随时更改、更新或暂停本网站的权利。我们会尽力确保网站的正常运行,但对于因技术问题、系统维护或其他原因导致的网站暂时不可用,我们不承担任何责任。
用户注册:用户需要通过提供手机号、微信扫码和其他必要信息来注册一个账户。您有责任保护您的用户名和密码,不得将其透露给任何第三方。对于因您的用户名和密码被泄露而导致的任何损失或损害,我们将不承担责任。
用户行为规范:用户应遵守中华人民共和国相关法律法规,不得发布或传播违法信息、侵犯他人权益的内容。用户应对其发布的内容负责,并承担因发布不当内容而引起的任何法律责任。
版权声明:本网站所包含的所有文字、图片、音频、视频等素材的著作权均归本网站所有(会员用户上传的默认承诺为不侵权的合法自有技术成果,本网站审核信息后可展示,所有权不归本网站)。未经本网站书面许可,任何单位或个人不得以任何形式复制、转载、修改或传播本网站的任何内容。对于侵犯本网站知识产权的行为,将依法追究其法律责任。
免责声明:本网站不对因使用本网站而引起的任何直接、间接、偶然、特殊或后果性的损害承担责任。包括但不限于利润损失、数据丢失、业务中断等。
适用法律和争议解决:本协议的签订、履行、解释及争议解决均适用中华人民共和国法律。如发生争议,双方应首先协商解决;协商不成的,任何一方均有权向有管辖权的人民法院提起诉讼。
本协议的解释权归本网站所有。如有未尽事宜,本网站保留最终解释权。
本协议自用户点击“同意”或“接受”按钮时生效。
欢迎访问我们的网站!我们致力于为您提供一个安全、可靠的在线环境。本隐私政策旨在说明我们在您使用我们的网站时如何收集、使用和保护您的个人信息。请仔细阅读以下内容,以了解我们的隐私政策。
在使用我们的网站时,我们可能会收集以下类型的信息:
a) 个人识别信息:如姓名、电子邮件地址、电话号码等。 b) 非个人识别信息:如浏览器类型、操作系统、设备类型、IP地址等。 c) 用户行为信息:如访问页面、点击链接、搜索查询等。
我们收集的信息将用于以下目的:
a) 提供、改进和个性化我们的服务。 b) 与您联系,回应您的询问和请求。 c) 发送您请求的或我们认为对您有帮助的信息。 d) 进行市场调研和分析,以改进我们的产品和服务。 e) 防止欺诈和其他非法活动。
我们不会出售、出租或以其他方式与第三方共享您的个人信息,除非:
a) 获得您的明确同意。 b) 与可信赖的合作伙伴共享,以提供您请求的服务。 c) 根据法律要求或政府机关的要求。 d) 为保护我们的权利、财产或安全。
我们采取合理的安全措施,以保护您的个人信息不受未经授权的访问、披露、更改或破坏。然而,请注意,没有任何一种电子存储方法是100%安全的。
我们的网站使用Cookie和类似的跟踪技术来收集有关您使用我们网站的信息。这些信息有助于我们分析和改进我们的网站,以及提供个性化的内容和广告。您可以通过浏览器设置拒绝接受Cookie,但这可能会影响您使用我们网站的能力。
我们的网站可能包含指向其他网站的链接。请注意,我们对其他网站的隐私政策和实践不承担任何责任。我们建议您在访问这些网站时查看其隐私政策。
我们可能会不时更新本隐私政策。请定期查看此页面,以确保您了解我们对个人信息的最新政策。
如果您对我们的隐私政策有任何疑问或建议,请通过以下联系方式与我们联系:
电子邮件:[wangye-101@163.com]
电话:+86-173-3019-6230
地址:中国石家庄市长安区吾悦广场2010室
感谢您的信任和支持!我们将竭诚为您提供更优质的服务。