php 单笔转账到支付宝账户,php实现单笔转账到支付宝功能

本文实例为大家分享了php实现单笔转账到支付宝的具体代码,供大家参考,具体内容如下

1.首先 去蚂蚁金服签约 单笔转账到支付宝

官方api文档

2.需要的配置信息

1).应用appid

2).生成密钥

文档地址

根据文档步骤生成

上传这里的 应用公钥

3.下载官方sdk 然后集成到自己项目

服务端SDK

官方实例//实例化客户端AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.open.public.template.message.industry.modify AlipayOpenPublicTemplateMessageIndustryModifyRequest request = new AlipayOpenPublicTemplateMessageIndustryModifyRequest();//SDK已经封装掉了公共参数,这里只需要传入业务参数//此次只是参数展示,未进行字符串转义,实际情况下请转义request.setBizContent(" {" +" "primary_industry_name":"IT科技/IT软件与服务"," +" "primary_industry_code":"10001/20102"," +" "secondary_industry_code":"10001/20102"," +" "secondary_industry_name":"IT科技/IT软件与服务"" +" }");AlipayOpenPublicTemplateMessageIndustryModifyResponse response = alipayClient.execute(request); //调用成功,则处理业务逻辑if(response.isSuccess()){ //.....}

效果如下

我的代码<?php /** * create by 适可而止 * create time 2018/4/8 */namespace OrgUtil;class AlipayTransfer{ private $appId = "appid"; private $rsaPrivateKey = "私钥"; private $alipayrsaPublicKey = "支付宝公钥"; private $payer_name = "xx科技"; private $aop; public function __construct() { $g_alipay = C("ALIPAY_CONFIG"); $this->appId = $g_alipay["APPID"];//appid $this->rsaPrivateKey = $g_alipay["rsaPrivateKey"]; //私钥 $this->alipayrsaPublicKey=$g_alipay["rsaPublicKey"];//支付宝公钥 //引入单笔转账sdk Vendor("Alipayaop.AopSdk"); } public function init_aop_config() { $this->aop->gatewayUrl = "https://openapi.alipay.com/gateway.do"; $this->aop->appId = $this->appId; $this->aop->rsaPrivateKey = $this->rsaPrivateKey; $this->aop->alipayrsaPublicKey=$this->alipayrsaPublicKey; $this->aop->apiVersion = "1.0"; $this->aop->signType = "RSA2"; $this->aop->postCharset="UTF-8"; $this->aop->format="json"; } /** * 单笔转账接口 * @param $order_number 订单号 * @param $pay_no 转账账号 * @param $pay_name 转账用户名 * @param $amount 转账金额 * @param $memo 备注 */ public function transfer($order_number,$pay_no,$pay_name,$amount,$memo) { //存入转账日志 $this->transferLog($order_number,$pay_no,$pay_name,$amount); $this->aop = new AopClient (); //配置参数 $this->init_aop_config(); //导入请求 $request = new AlipayFundTransToaccountTransferRequest (); $request->setBizContent("{" . ""out_biz_no":"".$order_number.""," .//商户生成订单号 ""payee_type":"ALIPAY_LOGONID"," .//收款方支付宝账号类型 ""payee_account":"".$pay_no.""," .//收款方账号 ""amount":"".$amount.""," .//总金额 ""payer_show_name":"".$this->payer_name.""," .//付款方账户 ""payee_real_name":"".$pay_name.""," .//收款方姓名 ""remark":"".$memo.""" .//转账备注 "}"); $result = $this->aop->execute ( $request); $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response"; $resultCode = $result->$responseNode->code; $resultSubMsg = $result->$responseNode->sub_msg; //修改转账日志 $this->edit_transferLog($order_number,$resultCode,$resultSubMsg); if(!empty($resultCode)&&$resultCode == 10000){ return true; } else { return false; } } /** * 存取日志 */ private function transferLog($order_number,$pay_no,$pay_name,$amount) { $data["order_number"] = $order_number; $data["pay_no"] = $pay_no; $data["pay_name"] = $pay_name; $data["amount"] = $amount; $data["create_time"] = time(); M("AlipayTransferLog")->add($data); } /** * 修改日志 */ private function edit_transferLog($order_number,$result_code,$sub_msg) { $model = D("AlipayTransferLog"); $where["order_number"] = $order_number; $result = $model->where($where)->order("create_time desc")->find(); if ($result_code == 10000) { $result["status"] = 1; $sub_msg = "success"; } else { $result["status"] = 2; } $result["memo"] = $sub_msg; $result["update_time"] = time(); M("AlipayTransferLog")->save($result); } /** * 查单接口 */ public function query($order_number) { $this->aop = new AopClient (); //配置参数 $this->init_aop_config(); $request = new AlipayFundTransOrderQueryRequest (); $request->setBizContent("{" . ""out_biz_no":"".$order_number.""" . " }"); $result = $this->aop->execute ( $request); $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response"; $resultCode = $result->$responseNode->code; if(!empty($resultCode)&&$resultCode == 10000){ $res_arr["code"] = "00"; $res_arr["data"] = $result; } else { $res_arr["code"] = "-1"; } return $res_arr; }}?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持网页设计。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值