来看看PHP是如何实现单笔转账到支付宝

Posted PHP自学中心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了来看看PHP是如何实现单笔转账到支付宝相关的知识,希望对你有一定的参考价值。


文章来自于脚本之家

链接:https://www.jb51.net/article/148523.htm

来看看PHP是如何实现单笔转账到支付宝






































































































来看看PHP是如何实现单笔转账到支付宝

分享教程

来看看PHP是如何实现单笔转账到支付宝
 
    
来看看PHP是如何实现单笔转账到支付宝

文章正文

来看看PHP是如何实现单笔转账到支付宝

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

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

官方api文档 

https://docs.open.alipay.com/309

2.需要的配置信息

1).应用appid

来看看PHP是如何实现单笔转账到支付宝

2).生成密钥

https://docs.open.alipay.com/291/106130

根据文档步骤生成

来看看PHP是如何实现单笔转账到支付宝


上传这里的 应用公钥

来看看PHP是如何实现单笔转账到支付宝


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

服务端SDK

https://docs.open.alipay.com/54/103419/

官方实例

//实例化客户端
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;
 }
}
?>



以上是文章全部内容,有学习与经验交流的可以加PHP自学中心。一起学习,交流与进步!

让学习成为一种习惯

头部视频:回复关键词即可领取

长按二维码关注

学习  |  交流  |  分享  |  文章 

以上是关于来看看PHP是如何实现单笔转账到支付宝的主要内容,如果未能解决你的问题,请参考以下文章

如何使用沙箱测试单笔转账到支付宝账号(php版) https://openclub.alipay.com/read.php?tid=1770&fid=28

Java 支付宝支付,退款,单笔转账到支付宝账户(支付宝订单退款)

Java 支付宝支付,退款,单笔转账到支付宝账户(支付宝支付)

PHP 转账到支付宝账户

PHP 转账到支付宝账户

PHP 转账到支付宝账户