您的位置:首页 > 移动开发 > 微信开发

11. PHP接入微信企业付款功能

2016-08-16 11:10 453 查看
payment 项目2.0版本

这个功能与支付宝的批量付款到支付宝帐号功能类似。但是当前支付宝这个接口已经停止审核了。

当前很多提问平台就用到了这两个平台。比如[来问医生],你提的问题如果被人看了。医生得0.5元,你得0.5元。然后累积够1元后,[来问医生]就会通过微信的企业付款功能给你的微信余额增加1元。

代码调用

use Payment\TransferContext;
use Payment\Common\PayException;
use Payment\Config;

//  生成转款单号 便于测试
function createPayid()
{
return date('Ymdhis', time()).substr(floor(microtime()*1000),0,1).rand(0,9);
}

$wxconfig = [
'app_id'    => 'wxa244db59a34996fc',  // 公众账号ID
'mch_id'    => '1331302101',// 商户id
'md5_key'   => 'adslkfjiKQJLAIQLJ393201482333333',// md5 秘钥

'notify_url'    => 'http://test.helei.com/pay-notify.html',
'time_expire'   => '14',

// 涉及资金流动时 退款  转款,需要提供该文件
'cert_path' => dirname(__FILE__) . DIRECTORY_SEPARATOR . 'wx' . DIRECTORY_SEPARATOR . 'apiclient_cert.pem',
'key_path'  => dirname(__FILE__) . DIRECTORY_SEPARATOR . 'wx' . DIRECTORY_SEPARATOR . 'apiclient_key.pem',
];

// 转款数据
$transData = [
'trans_no' => createPayid(),
'trans_data'   => [
[
'serial_no' => createPayid(),
'user_account' => 'otijfvr2oMz3tXnaQdKKbQeeBmhM',// 微信转款时,为用户所关注公众号的openid
'user_name' => '愚不可及',
'trans_fee' => '1',
'desc'  => '测试批量转款',
]
],
];

$refund = new TransferContext();
try {
// 微信的企业付款, 仅支持单笔
$type = Config::WEIXIN;
$refund->initTransfer(Config::WEIXIN, $wxconfig);

$ret = $refund->transfer($transData);
} catch (PayException $e) {
echo $e->errorMessage();exit;
}

var_dump($ret);


请求参数

参数参数名参数说明是否必须
trans_no商户订单号商户订单号,需保持唯一性
trans_data转账数据转账数据详细信息,具体内容如下
trans_data数据

参数参数名参数说明是否必须
serial_no流水号对于微信该参数不需要,但请保留,后期可能支持批量退款需要
user_account用户openid商户appid下,某用户的openid
user_name收款用户姓名收款用户真实姓名。
trans_fee金额企业付款金额,单位为元
desc企业付款描述信息企业付款操作说明信息。

返回数据

参数参数名参数说明是否必须
is_success是否成功失败会返回错误原因。T:成功 F:失败
error错误原因为T时有返回
response成功时数据成功时返回的具体数据
response数据

参数参数名参数说明是否必须
trans_no商户订单号商户订单号,需保持唯一性
trans_id微信订单号企业付款成功,返回的微信订单号
payment_time微信支付成功时间企业付款成功时间
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息