php 做支付宝电脑网站和app支付

摘要:
postCharset='utf-8';//同步回调回调地址$bizcontent=json_encode(array('subject'=>'out_trade_no'=<'total_amount'=>'product_code'=<charset='UTF-8';$bizcontent=json_encode(array;

首先支付宝的文档真是看得头晕眼花,摸不着北的感觉,网上百度PHP支付宝一堆都是花里胡哨的,看得一脸懵逼。所以自己整理了一下,其实也没那么复杂直接上代码:

php 电脑支付的方法:

    /**
     * 支付宝支付
     *$order_sn 单号  $total_amount 价格
     */
    public function alipay($order_sn,$total_amount)
    {
        require_once INCLUDES_PATH.'class'.DS.'Pay'.DS.'mobile'.DS.'alipaytest/'.'AopClient.php';
        $aop = new AopClient();//这个类支付宝php服务端 都要用到 (app支付服务端也要用到这个类)
        $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';//支付宝网关,也就是接口地址
        $aop->appId = '201709010........';//APPID
        $aop->rsaPrivateKey =''";//商户的私钥()
        $aop->format = 'json';
        $aop->apiVersion = '1.0';
        $aop->postCharset= 'utf-8';
        $aop->signType = 'RSA2';
      
        $request = new AlipayTradePagePayRequest();//支付宝电脑网站支付需要用到的类 这个类支付宝SDK可以下载
        $request->setNotifyUrl(HTTP_HOST.'pay/alipay_notify.php');//支付结果的异步通知回调地址
        $request->setReturnUrl(HTTP_HOST.'pay/alipay_return.php');//同步回调回调地址

        $bizcontent = json_encode(array(
            'subject'=>'商品订单'.$order_sn,
            'out_trade_no'=>$order_sn,
            'body'=>'商品订单',
            'total_amount'=>sprintf('%.2f',$total_amount),
            'product_code'=>'FAST_INSTANT_TRADE_PAY',//支付类型,APP和电脑支付 手机支付是不一样的 所以这个类型也是不一样的
        ), JSON_UNESCAPED_UNICODE);



        $request->setBizContent($bizcontent);
        $test = $aop->pageExecute($request,'post');//支付宝返回来的地址,直接是可以跳转的
        echo $test;


    }

附上所需要用到的类:

php 做支付宝电脑网站和app支付第1张


只需要这三个类就好了,支付宝的sdk 满满的一堆 ,但是我们不需要那么多,需要用到类再把它抠出来就好了
 

app 支付 我们PHP 服务端的代码,其实就是生成一堆支付的参数 直接上代码了,其实和上面的电脑支付没什么区别 只不过是参数有所变动:
    /**
     * 生成支付宝app支付参数
     * @param string $title
     * @param string $order_sn
     * @param float $amount
     * @return string
     */
    public function alipay_app($title, $order_sn, $amount)
    {
        require_once BASE_DATA_PATH.'/vendors/alipay/AopClient.php';
        $aop = new AopClient();
        $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
        $aop->appId = '20170901。。。';
       
        $aop->rsaPrivateKey = ''; //商户私钥 
        $aop->format = 'json';
        $aop->charset = 'UTF-8';
        $aop->signType = 'RSA2';
       
        $aop->alipayrsaPublicKey   = '';//支付宝公钥
        $request = new AlipayTradeAppPayRequest();
        $bizcontent = json_encode(array(
            'subject'=>$title,
            'out_trade_no'=>$order_sn,
            'timeout_express'=>'30m',
            'total_amount'=>sprintf('%.2f',$amount),
            'product_code'=>'QUICK_MSECURITY_PAY',
        ), JSON_UNESCAPED_UNICODE);
        $request->setNotifyUrl('http://xxx/control/alipay_notify.php');
        $request->setBizContent($bizcontent);
        $response = $aop->sdkExecute($request);

        return $response;
    }
还是三个类 

php 做支付宝电脑网站和app支付第2张

只不过这个类有所变动而已

php 做支付宝电脑网站和app支付第3张

再者多了一个应用公钥:

php 做支付宝电脑网站和app支付第4张

电脑支付是不要这个PUBLIC key的

好啦 以上就是支付宝电脑网站支付和app 支付的方法  其实手机支付也是差不多的 变得就是支付类型 和支付类

php 做支付宝电脑网站和app支付第5张



免责声明:文章转载自《php 做支付宝电脑网站和app支付》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇c++ 控制台输入参数Jmeter 性能测试报告导出下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Jsp标签字典开发_基于Spring+Hibernate

目录 1. Jsp标签字典开发_基于Spring+Hibernate   1.1. 简述   1.2. 定义DictItem实体   1.3. 定义字典的@interface   1.4. 定义字典缓存类   1.5. 定义tld标签   1.6. 持久层实体使用注解   1.7. 页面调用jsp标签 2. 补充点   2.1. Hibernate设置属性...

使用 ejs 渲染数据库中的数据

const http = require('http'); const Router = require('./Router') const {MongoClient} = require('mongodb') const ejs = require('ejs') const queryString = require('querystring') co...

MybatisPlus学习笔记7:插件的配置

MP提供了很多好用的插件,而且配置简单,使用方便。接下来一起看看MP的插件如何使用。 1、分页插件: 之前就有说到,BaseMapper的selectPage方法和AR提供的selectPage方法都不是物理分页,需要配置分页插件后才是物理分页,那么现在就来看看如何配置这个插件。 在sqlSessionFactory这个bean中,通过配置插件,接下来的所...

SVProgressHUD在某些情况下不显示的问题解决办法

SVProgressHUD 是强大的toast工具,但有些情况下会失效。个人遇到的情况是从相册选择照片,返回到上一级页面时,SVProgressHUD就会失效。 解决方法是更改SVProgressHUD默认配置: [SVProgressHUD setMaxSupportedWindowLevel:NSIntegerMax]; [SVProgressHUD...

智能指针的实现(指针运算符重载)

智能指针的实现 Person类有showAge 成员函数 如果new出来的Person对象,就要让程序员自觉的去释放  delete 有了智能指针,让智能指针托管这个Person对象,对象的释放就不用操心了,让智能指针管理 为了让智能指针想普通的Person*指针一样使用 就要重载 -> 和* #define _CRT_SECURE_NO_WARNI...

vue的学习总结---事件处理

v-on的理解 监听DOM元素的事件,并在触发时执行一些js代码 <template> <div> <!-- v-on监听DOM事件,并在触发时做一些js的操作,如下代码可以将js操作直接放在事件中 --> <button v-on:click="num++">点击按钮+1</but...