支付宝接口里partner为什么是2088开始的

2024-05-10

1. 支付宝接口里partner为什么是2088开始的

问客服

支付宝接口里partner为什么是2088开始的

2. java支付宝支付需要什么参数

吐槽一下:支付宝的接口文档真心太难看懂了,乱七八糟,都不知道去哪里找自己要的东西,还要有技术客服,感谢技术客服(┬_┬)
支付宝技术客服https://support.open.alipay.com/alipay/support/index.htm 点机器人,输入“转人工”
1.https://doc.open.alipay.com/doc2/apiList?docType=4 
在支付宝开放平台-文档中心中找到你业务对应的接口文档,比如移动支付的接口文档: 
https://doc.open.alipay.com/doc2/detail?treeId=59&articleId=103563&docType=1 
移动支付java后台的接口也在这里下。
2.解压后找到里面服务端的demo,在Alipay.java中配置好partner跟key,具体如何调用,查看Webroot下的jsp demo
3.一般集成好一个接口后,其他接口调用方式都一样的,只不过更改参数service的值以及根据具体的业务增减参数就行了。
单笔交易SDK(可在开放平台中找到,或者问客服): 
http://aopsdkdownload.cn-hangzhou.alipay-pub.aliyun-inc.com/demo/alipaysinglequery.zip
坑1:错误码ILLEGAL_PARTNER_EXTERFACE,不一定是你的签名或者资料错了,也有可能是接口没签约(小编就是如此)。
坑2:退款接口 
如果你是网站还好,可以申请即时到帐。但是APP的话,很抱歉的跟你说,没有APP退款的接口,是的,没有。。。支付宝即时到帐需要有独立的网站,而且网站需要有支付相关的操作。
总结:看文档还不能解决问题,问客服,最快的方式解决。当然,也可以给小编留言。

3. 支付宝接口代码怎么用

在使用支付宝支付的时候,首先必须注册一个支付宝的账户,然后下载支付宝提供的接口文件,通过支付宝提供的接口文件,实现电子商务与支付宝的交互。
        在支付宝提供的接口文件中,提供了完整的实例程序,只要依照实例程序中的操作方法,将电子商务网站中指定的数据提交到支付宝提供的数组参数中,然后支付宝通过自己的定义的方法将数据提交到指定的网站中。实现代码如下所示:
require_once("alipay_service.php");require_once("alipay_config.php");  $array=explode("@",$info["spc"]);$arraynum=explode("@",$info["slc"]);$arrayinfo=array();                                     //创建数组$arrayinfo_count=array();                               //创建数组for($i=0;$i "trade_create_by_buyer", //交易类型,必填实物交易=trade_create_by_buyer(需要填写物流)"partner" =>$partner,                                               //合作商户号"return_url" =>$return_url, //同步返回"notify_url" =>$notify_url, //异步返回"_input_charset" => $_input_charset,                                //字符集,默认为GBK"subject" => $commodity_name,                                                //商品名称,必填"body" => $commodity_count,                                           //商品描述,必填"out_trade_no" => $ddnumber,                      //商品外部交易号,订单号,必填,每次测试都须修改"logistics_fee"=>$yprice,                       //物流配送费用"logistics_payment"=>'BUYER_PAY',               //物流配送费用付款方式:BUYER_PAY(买家支付)"logistics_type"=>'EXPRESS',                    // 物流配送方式:POST(平邮)、EMS(EMS)、EXPRESS(其他快递)"price" => $amount,                                 //商品单价,必填"payment_type"=>"1",                               // 默认为1,不需要修改"quantity" => "1",                                 //商品数量,必填"show_url" => $show_url,            //商品相关网站"seller_email" => $seller_email                //卖家邮箱,必填);$alipay = new alipay_service($parameter,$security_code,$sign_type);$link=$alipay->create_url();$smarty->assign("link",$link);
       这里介绍的知识通过php来实现电子商务网站与支付宝进行交互的方法。其中涉及到支付宝提供的参数和设置都是个人虚拟的,真实的参数将在实际的运作中由支付宝提供,使用支付宝时,需要想支付宝申请一个账户,然后由支付宝提供相应的参数,就可以应用此功能了。

支付宝接口代码怎么用

4. java调用支付宝接口怎么保证安全

支付宝提供的接口前提都是基于用户对商家的概念,就是说支付都是打到商家的账户上的.没有个人之间的转账.
支付其实就是生成一个单号,相当于在商家那里买了一个商品.

在 支付宝开发平台有提供各种形式的demo;java版本的包名create_direct_pay_by_user-JAVA-UTF-8;这个后面需要.

看看支付宝提供的几个接口类:
1配置类:
提示:如何获取安全校验码和合作身份者ID
 *1.用您的签约支付宝账号登录支付宝网站(www.alipay.com)
 *2.点击“商家服务”(https://b.alipay.com/order/myOrder.htm)
 *3.点击“查询合作者身份(PID)”、“查询安全校验码(Key)”
//支付的流程就是本地根据配置好的参数和参数生成的签名,通过form表单,自动提交,生成链接提交给支付宝,支付宝验证处理完后,回调给return_url的地址,
//然后在本地通过上传前的参数和回调来的参数再次生成签名对比,来看是否数值有变化,这样双向签名认证后保证成功后用户在进行自己的业务逻辑处理
public class AlipayConfig {
    /**
     * 合作身份者ID,以2088开头由16位纯数字组成的字符串
     */
    public static String partner = Global.getConfig("partner");//我是参数内容我是写在了配置文件里面
    /**
     * 收款支付宝账号,一般情况下收款账号就是签约账号
     */
    public static String seller_email =Global.getConfig("seller_email");
    /**
     * 商户的私钥
     */
    public static String key = Global.getConfig("key");
    /**
     * notify_url 交易过程中服务器通知的页面 要用 http://格式的完整路径,不允许加?id=123这类自定义参数
    *这里不需要支付宝主动提供订单状态变化的回调的话,是暂时没有用的,我这里没用到
     */
    public static String notify_url = Global.getConfig("notify_url");
    /**
     * 付完款后跳转的页面 要用 http://格式的完整路径,不允许加?id=123这类自定义参数
     * 不能写成http://localhost/
     */
    public static String return_url = Global.getConfig("return_url");
    // 网站商品的展示地址,不允许加?id=123这类自定义参数
    //public static String show_url = Global.getConfig("");//这里我也没用到
    //↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
    //访问模式,根据自己的服务器是否支持ssl访问,若支持请选择https;若不支持请选择http
    public static String transport = "http";
    // 调试用,创建TXT日志文件夹路径;没用到
//    public static String log_path = Global.getConfig("");//"D:\\";
    public static String log_path = "D:\\";
    /**
     * 字符编码格式 目前支持 gbk 或 utf-8
     * 好像必须是小写的(没试过)
     */
    public static String input_charset = "utf-8";
    /**
     * 签名方式 不需修改
     */
    public static String sign_type = "MD5";
//所有没用的配置信息,可以不用删掉,但是不能为空,不然支付宝会报错
}

5. 微信端微信支付 提示 package中的参数partner或prepay_id为空

我也遇到了童演的问题,是不是这个提示?


我已经有解决办法了。哈哈
原因在于第三方开发平台的“财付通商户身份标识[PartnerId]“填写错了,并不是财付通邮件中的十位数商户号,而是weixinpay邮件当中的八位微信支付商户号(接口文档中的商户号MCHID)。改过来就成了。加分吧,亲!~本来是来同求答案的!

微信端微信支付 提示 package中的参数partner或prepay_id为空

6. thinkphp中怎么加入支付宝接口

重新整理接口包文件,这一步应该算是比较关键的(个人认为)
下载下来的接口包文件有很多语言的源码,

我们选择 create_direct_pay_by_user-PHP-UTF-8 这个名称的接口文件。里面包括如下文件:

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

在ThinkPHP的框架文件下,找到Extend 进入,再进入Vendor,在Vendor文件夹下,新建文件夹Alipay,把支付宝作为第三方类库引入。然后,复制支付宝接口文件包中lib文件里的所有文件。一共4个文件,如下:

现在对以上文件进行重命名,
alipay_core.function.php重命名为:Corefunction.php;
alipay_md5.function.php重命名为:Md5function.php;
alipay_notify.class.php重命名为:Notify.php;
alipay_submit.class.php重命名为:Submit.php;

然后,打开Submit.php文件,把以下代码去掉;
require_once("alipay_core.function.php");
require_once("alipay_md5.function.php");
复制代码
同样,打开Notify.php文件,把以下两段代码去掉
require_once("alipay_core.function.php");
require_once("alipay_md5.function.php");
复制代码
为什么要去掉以上两个文件中的这两段代码,因为在项目中调用接口文件的时候,我把所有4个核心文件都通过vendor来进行引入。所以,这不再需要导入。

到此,支付宝接口包相关核心类库的整理基本完成。现在开始在项目中调用;

三、在项目中调用支付宝接口
调用分两步:
1、在配置文件中Conf/Config.php文件中对支付宝相关参数进行配置:
//支付宝配置参数
'alipay_config'=>array(
       'partner' =>'20********50',   //这里是你在成功申请支付宝接口后获取到的PID;
    'key'=>'9t***********ie',//这里是你在成功申请支付宝接口后获取到的Key
    'sign_type'=>strtoupper('MD5'),
    'input_charset'=> strtolower('utf-8'),
    'cacert'=> getcwd().'\\cacert.pem',
    'transport'=> 'http',
      ),
     //以上配置项,是从接口包中alipay.config.php 文件中复制过来,进行配置;
    
'alipay'   =>array(
 //这里是卖家的支付宝账号,也就是你申请接口时注册的支付宝账号
'seller_email'=>'pay@xxx.com',

//这里是异步通知页面url,提交到项目的Pay控制器的notifyurl方法;
'notify_url'=>'http://www.xxx.com/Pay/notifyurl', 

//这里是页面跳转通知url,提交到项目的Pay控制器的returnurl方法;
'return_url'=>'http://www.xxx.com/Pay/returnurl',

//支付成功跳转到的页面,我这里跳转到项目的User控制器,myorder方法,并传参payed(已支付列表)
'successpage'=>'User/myorder?ordtype=payed',   

//支付失败跳转到的页面,我这里跳转到项目的User控制器,myorder方法,并传参unpay(未支付列表)
'errorpage'=>'User/myorder?ordtype=unpay', 
),
复制代码
2、新建一个PayAction控制器代码如下:
<?php
class PayAction extends Action{
       //在类初始化方法中,引入相关类库    
       public function _initialize() {
        vendor('Alipay.Corefunction');
        vendor('Alipay.Md5function');
        vendor('Alipay.Notify');
        vendor('Alipay.Submit');    
    }
    
    //doalipay方法
        /*该方法其实就是将接口文件包下alipayapi.php的内容复制过来
          然后进行相关处理
        */
    public function doalipay(){
            /*********************************************************
            把alipayapi.php中复制过来的如下两段代码去掉,
            第一段是引入配置项,
            第二段是引入submit.class.php这个类。
           为什么要去掉??
            第一,配置项的内容已经在项目的Config.php文件中进行了配置,我们只需用C函数进行调用即可;
            第二,这里调用的submit.class.php类库我们已经在PayAction的_initialize()中已经引入;所以这里不再需要;
            *****************************************************/
       // require_once("alipay.config.php");
       // require_once("lib/alipay_submit.class.php");
       
       //这里我们通过TP的C函数把配置项参数读出,赋给$alipay_config;
       $alipay_config=C('alipay_config');  
 
        /**************************请求参数**************************/

        $payment_type = "1"; //支付类型 //必填,不能修改
        $notify_url = C('alipay.notify_url'); //服务器异步通知页面路径
        $return_url = C('alipay.return_url'); //页面跳转同步通知页面路径
        $seller_email = C('alipay.seller_email');//卖家支付宝帐户必填
        $out_trade_no = $_POST['trade_no'];//商户订单号 通过支付页面的表单进行传递,注意要唯一!
        $subject = $_POST['ordsubject'];  //订单名称 //必填 通过支付页面的表单进行传递
        $total_fee = $_POST['ordtotal_fee'];   //付款金额  //必填 通过支付页面的表单进行传递
        $body = $_POST['ordbody'];  //订单描述 通过支付页面的表单进行传递
        $show_url = $_POST['ordshow_url'];  //商品展示地址 通过支付页面的表单进行传递
        $anti_phishing_key = "";//防钓鱼时间戳 //若要使用请调用类文件submit中的query_timestamp函数
        $exter_invoke_ip = get_client_ip(); //客户端的IP地址 
        /************************************************************/
    
        //构造要请求的参数数组,无需改动
    $parameter = array(
        "service" => "create_direct_pay_by_user",
        "partner" => trim($alipay_config['partner']),
        "payment_type"    => $payment_type,
        "notify_url"    => $notify_url,
        "return_url"    => $return_url,
        "seller_email"    => $seller_email,
        "out_trade_no"    => $out_trade_no,
        "subject"    => $subject,
        "total_fee"    => $total_fee,
        "body"            => $body,
        "show_url"    => $show_url,
        "anti_phishing_key"    => $anti_phishing_key,
        "exter_invoke_ip"    => $exter_invoke_ip,
        "_input_charset"    => trim(strtolower($alipay_config['input_charset']))
        );
        //建立请求
        $alipaySubmit = new AlipaySubmit($alipay_config);
        $html_text = $alipaySubmit->buildRequestForm($parameter,"post", "确认");
        echo $html_text;
    }
    

        /******************************
        服务器异步通知页面方法
        其实这里就是将notify_url.php文件中的代码复制过来进行处理
        
        *******************************/
    function notifyurl(){
                /*
                同理去掉以下两句代码;
                */ 
                //require_once("alipay.config.php");
                //require_once("lib/alipay_notify.class.php");
                
                //这里还是通过C函数来读取配置项,赋值给$alipay_config
        $alipay_config=C('alipay_config');

        //计算得出通知验证结果
        $alipayNotify = new AlipayNotify($alipay_config);
        $verify_result = $alipayNotify->verifyNotify();

        if($verify_result) {
               //验证成功
                   //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表
           $out_trade_no   = $_POST['out_trade_no'];      //商户订单号
           $trade_no       = $_POST['trade_no'];          //支付宝交易号
           $trade_status   = $_POST['trade_status'];      //交易状态
           $total_fee      = $_POST['total_fee'];         //交易金额
           $notify_id      = $_POST['notify_id'];         //通知校验ID。
           $notify_time    = $_POST['notify_time'];       //通知的发送时间。格式为yyyy-MM-dd HH:mm:ss。
           $buyer_email    = $_POST['buyer_email'];       //买家支付宝帐号;
                   $parameter = array(
             "out_trade_no"     => $out_trade_no, //商户订单编号;
             "trade_no"     => $trade_no,     //支付宝交易号;
             "total_fee"     => $total_fee,    //交易金额;
             "trade_status"     => $trade_status, //交易状态
             "notify_id"     => $notify_id,    //通知校验ID。
             "notify_time"   => $notify_time,  //通知的发送时间。
             "buyer_email"   => $buyer_email,  //买家支付宝帐号;
           );
           if($_POST['trade_status'] == 'TRADE_FINISHED') {
                       //
           }else if ($_POST['trade_status'] == 'TRADE_SUCCESS') {                           if(!checkorderstatus($out_trade_no)){
               orderhandle($parameter); 
                           //进行订单处理,并传送从支付宝返回的参数;
               }
            }
                echo "success";        //请不要修改或删除
         }else {
                //验证失败
                echo "fail";
        }    
    }
    
    /*
        页面跳转处理方法;
        这里其实就是将return_url.php这个文件中的代码复制过来,进行处理; 
        */
    function returnurl(){
                //头部的处理跟上面两个方法一样,这里不罗嗦了!
        $alipay_config=C('alipay_config');
        $alipayNotify = new AlipayNotify($alipay_config);//计算得出通知验证结果
        $verify_result = $alipayNotify->verifyReturn();
        if($verify_result) {
            //验证成功
            //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表
        $out_trade_no   = $_GET['out_trade_no'];      //商户订单号
        $trade_no       = $_GET['trade_no'];          //支付宝交易号
        $trade_status   = $_GET['trade_status'];      //交易状态
        $total_fee      = $_GET['total_fee'];         //交易金额
        $notify_id      = $_GET['notify_id'];         //通知校验ID。
        $notify_time    = $_GET['notify_time'];       //通知的发送时间。
        $buyer_email    = $_GET['buyer_email'];       //买家支付宝帐号;
            
        $parameter = array(
            "out_trade_no"     => $out_trade_no,      //商户订单编号;
            "trade_no"     => $trade_no,          //支付宝交易号;
            "total_fee"      => $total_fee,         //交易金额;
            "trade_status"     => $trade_status,      //交易状态
            "notify_id"      => $notify_id,         //通知校验ID。
            "notify_time"    => $notify_time,       //通知的发送时间。
            "buyer_email"    => $buyer_email,       //买家支付宝帐号
        );
        
if($_GET['trade_status'] == 'TRADE_FINISHED' || $_GET['trade_status'] == 'TRADE_SUCCESS') {
        if(!checkorderstatus($out_trade_no)){
             orderhandle($parameter);  //进行订单处理,并传送从支付宝返回的参数;
    }
        $this->redirect(C('alipay.successpage'));//跳转到配置项中配置的支付成功页面;
    }else {
        echo "trade_status=".$_GET['trade_status'];
        $this->redirect(C('alipay.errorpage'));//跳转到配置项中配置的支付失败页面;
    }
}else {
    //验证失败
    //如要调试,请看alipay_notify.php页面的verifyReturn函数
    echo "支付失败!";
    }
}
}
?>

7. 集成支付宝java接口key有什么作用

支付宝交易安全校验码(key)是商户与支付宝签约后,商户获得的支付宝商户密钥。

当商户把支付宝功能接入商户网站时会用到它们,以便让支付宝认证商户。

此外还有个重要参数是 合作者身份ID(partner)


在和支付宝对接的时候, 这个key 会拼接在参数后面,然后进行加密 (可以是MD5,也可以是RSA)
不同的商户,key值不一样

这样可以保证加密出来的参数安全性

集成支付宝java接口key有什么作用

8. 集成支付宝接口为什么一定要用--合作身份者id和安全检验码呢?各有什么作用??

ID就相当于商家的唯一身份编码,KEY是用来加密传递的参数的,两者缺一不可,要不然钱打给谁呢?怎么保证数据安全呢?
最新文章
热门文章
推荐阅读