# pingpp-php **Repository Path**: mirrors_PingPlusPlus/pingpp-php ## Basic Information - **Project Name**: pingpp-php - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-01-07 - **Last Updated**: 2026-04-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Pingpp PHP SDK ## 简介 lib 文件夹下是 PHP SDK 文件, example 文件夹里面是简单的接入示例,该示例仅供参考。 ## 版本要求 > **PHP 版本 8.1 及以上** > PHP 5.6.x~PHP7.x 请使用 [`2.6.0`](https://github.com/PingPlusPlus/pingpp-php/releases/tag/2.6.0)) > 你可以执行目录下的环境检测脚本,来进行一些基本检测 ```bash php PingppEnvInspect.php ``` ## 安装 ### 使用 Composer 执行 ``` composer require pingplusplus/pingpp-php ``` 使用 Composer 的 autoload 引入 ```php require_once('vendor/autoload.php'); ``` ### 手动引入 ```php require_once('/path/to/pingpp-php/init.php'); ``` ## 接入方法 ### 初始化 ```php \Pingpp\Pingpp::setApiKey('YOUR-KEY'); ``` ### 设置请求签名密钥 密钥需要你自己生成,公钥请填写到 [Ping++ Dashboard](https://dashboard.pingxx.com) ```php \Pingpp\Pingpp::setPrivateKeyPath('/path/to/your_rsa_private_key.pem'); ``` ### 设置自定义 CA 证书路径 ```php \Pingpp\Pingpp::$caBundle = '/path/to/cacert.pem'; ``` 不设置时,会默认使用 SDK 包含的 CA 证书。 如果需要手动更新 CA 证书,可从 下载,并使用此方法设置证书路径。 ### 支付 ```php $ch = \Pingpp\Charge::create([ 'order_no' => '123456789', 'app' => ['id' => 'APP_ID'], 'channel' => 'alipay', 'amount' => 100, 'client_ip' => '127.0.0.1', 'currency' => 'cny', 'subject' => 'Your Subject', 'body' => 'Your Body', 'extra' => $extra, ]); ``` ### charge 查询 ```php \Pingpp\Charge::retrieve('CHARGE_ID'); ``` ```php \Pingpp\Charge::all(['limit' => 5, 'app' => ['id' => 'APP_ID']]); ``` ### 退款 ```php $re = \Pingpp\Refund::create('ch_a9CmfHTGGaz1urHiL8m5OiX1', [ 'amount' => 1, 'description' => 'Your Descripton', ]); ``` ### 退款查询 ```php \Pingpp\Refund::retrieve('CHARGE_ID', 'REFUND_ID'); ``` ### 退款列表查询 ```php \Pingpp\Refund::all('CHARGE_ID',[ 'limit' => 5, ]); ``` ### 微信红包 ```php \Pingpp\RedEnvelope::create([ 'order_no' => '123456789', 'app' => ['id' => 'APP_ID'], 'channel' => 'wx_pub', 'amount' => 100, 'currency' => 'cny', 'subject' => 'Your Subject', 'body' => 'Your Body', 'extra' => [ 'nick_name' => 'Nick Name', 'send_name' => 'Send Name', ], 'recipient' => 'Openid', 'description' => 'Your Description', ]); ``` ### 查询指定微信红包 ```php \Pingpp\RedEnvelope::retrieve('RED_ID'); ``` ### 查询微信红包列表 ```php \Pingpp\RedEnvelope::all(['limit' => 5]); ``` ### 微信公众号获取签名 如果使用微信 JS-SDK 来调起支付,需要在创建 `charge` 后,获取签名(`signature`),传给 HTML5 SDK。 ```php $jsapi_ticket_arr = \Pingpp\WxpubOAuth::getJsapiTicket($wx_app_id, $wx_app_secret); $ticket = $jsapi_ticket_arr['ticket']; ``` **正常情况下,`jsapi_ticket` 的有效期为 7200 秒。由于获取 `jsapi_ticket` 的 api 调用次数非常有限,频繁刷新 `jsapi_ticket` 会导致 api 调用受限,影响自身业务,开发者必须在自己的服务器全局缓存 `jsapi_ticket`。** _下面方法中 `$url` 是当前网页的 URL,不包含 `#` 及其后面部分_ ```php $signature = \Pingpp\WxpubOauth::getSignature($charge, $ticket, $url); ``` 然后在 HTML5 SDK 里调用 ```javascript pingpp.createPayment(charge, callback, signature, false); ``` ### event 查询 ```php \Pingpp\Event::retrieve('EVT_ID'); ``` ### event 列表查询 ```php \Pingpp\Event::all(['type' => 'charge.succeeded']); ``` **详细信息请参考 [API 文档](https://pingxx.com/document/api?php)。** ### 微信企业付款 ```php \Pingpp\Transfer::create([ 'amount' => 100, 'order_no' => '123456d7890', 'currency' => 'cny', 'channel' => 'wx_pub', 'app' => ['id' => 'APP_ID'], 'type' => 'b2c', 'recipient' => 'o9zpMs9jIaLynQY9N6yxcZ', 'description' => 'testing', 'extra' => ['user_name' => 'User Name', 'force_check' => true] ]); ``` ### 查询指定 transfer ```php \Pingpp\Transfer::retrieve('TR_ID'); ``` ### 撤销指定 transfer ```php \Pingpp\Transfer::reverse('TR_ID'); ``` ### 查询 transfer 列表 ```php \Pingpp\Transfer::all(['limit' => 5]); ``` ### 身份证认证 ```php \Pingpp\Identification::identify([ 'type' => 'id_card', 'app' => $app_id, 'data' => [ 'id_name' => '张三', // 姓名 'id_number' => '310181198910107641' // 身份证号 ] ]); ``` ### 银行卡认证 ```php \Pingpp\Identification::identify([ 'type' => 'bank_card', 'app' => $app_id, 'data' => [ 'id_name' => '张三', // 姓名 'id_number' => '310181198910107641', // 身份证号, 'card_number' => '6201111122223333', // 银行卡号 'phone_number' => '18623234545' // 银行预留手机号,不支持 178 号段 ] ]); ``` ### 批量转账 ```php \Pingpp\BatchTransfer::create( [ 'amount' => 8000, 'app' => APP_ID, 'batch_no' => uniqid('batch'), // 批量退款批次号,3-24位,允许字母和英文 'channel' => 'alipay', 'description' => 'Your Description', // 批量退款详情,最多 255 个 Unicode 字符 'recipients' => [ // 需要退款的 charge id 列表,一次最多 100 个 [ 'account' => 'account01@alipay.com', 'amount' => 5000, 'name' => '张三' ], [ 'account' => 'account02@alipay.com', 'amount' => 3000, 'name' => '李四' ] ], 'type' => 'b2c' ] ); ``` ### 查询指定批量转账 ```php \Pingpp\BatchTransfer::retrieve('181611151506412852'); // 批量转账对象id ,由 Ping++ 生成 ``` ### 查询批量转账列表 ```php \Pingpp\BatchTransfer::all(['page' => 1]); ``` ### 批量退款 ```php \Pingpp\BatchRefund::create( [ 'app' => APP_ID, 'batch_no' => uniqid('batch'), // 批量退款批次号,3-24位,允许字母和英文 'description' => 'Your Description', // 批量退款详情,最多 255 个 Unicode 字符 'charges' => [ // 需要退款的 charge id 列表,一次最多 100 个 'ch_qn5G8GH1SOCCvnv10S8mXTqP', 'ch_SijjXL8Ki1u1arL1S49q5ifL' ] ] ); ``` ### 查询指定批量退款 ```php \Pingpp\BatchRefund::retrieve('151611141520583238'); // 批量退款对象id ,由 Ping++ 生成 ``` ### 查询批量退款列表 ```php \Pingpp\BatchRefund::all(['page' => 1]); ``` ### 报关 ```php \Pingpp\Customs::create( [ 'app' => APP_ID, 'charge' => 'ch_L8qn10mLmr1GS8e5OODmHaL4', 'channel' => 'alipay', 'trade_no' => '12332132131', // 商户报关订单号,8~20位 'customs_code' => 'GUANGZHOU', 'amount' => 8000, 'transport_amount' => 10, 'is_split' => true, 'sub_order_no' => '123456', 'extra' => [ 'pay_account' => '1234567890', 'certif_type' => '02', 'customer_name' => 'A Name', 'certif_id' => 'ID Card No', 'tax_amount' => '10', ] ] ); ``` ### 查询指定报关 ```php \Pingpp\Customs::retrieve('14201609281040220109'); // 报关对象 ID,由 Ping++ 生成 ``` ## 创建商品订单 ```php \Pingpp\Order::create([ "amount" => 100, "app" => APP_ID, "merchant_order_no" => "88888888888", //商户订单号 "subject" => "subj{$order_no}", "currency" => "cny", "body" => "body{$order_no}", "uid" => "test_user_001", "client_ip" => "192.168.0.101", ]); ``` ## 商品订单支付 ```php \Pingpp\Order::pay('2011611170000003651', [ 'balance_amount' => 0, 'charge_amount' => 10, 'channel' => 'alipay', 'extra' => [ 'key' => 'value', ], ]); ``` ## 商品订单取消 ```php \Pingpp\Order::cancel('2011611170000003651'); // 订单对象 ID,由 Ping++ 生成 ``` ## 商品订单查询接口 ```php \Pingpp\Order::retrieve('2011611170000003651'); // 订单对象 ID,由 Ping++ 生成 ``` ## 商品订单列表 ```php $params = ['app' => APP_ID]; \Pingpp\Order::all($params); ``` ## 商品订单退款 ```php \Pingpp\OrderRefund::create('2011708070000007521', [ 'description' => 'Your description', //退款附加说明。 'metadata' => [], 'refund_mode' => 'to_source', //退款模式。原路退回:to_source,退至余额:to_balance。默认为原路返回。 ]); ``` ## 商品订单退款查询 ```php \Pingpp\OrderRefund::retrieve('2011611160000343961', 're_OW1CSS8KCS0KvfzDu5jTerrH'); ``` ## 商品订单退款列表查询 ```php \Pingpp\OrderRefund::all('2011611160000343961'); ``` ## 用户充值 ```php \Pingpp\Recharge::create([ 'user' => 'user_test_01', 'charge' => [ 'amount' => 100, 'channel' => 'alipay_qr', 'order_no' => substr(md5(time()), 0, 10), 'subject' => 'Your subject', 'body' => 'Your recharge body', 'time_expire' => time()+ 3600, 'client_ip' => '127.0.0.1', 'extra' => [], ], 'balance_bonus' => [ 'amount' => 10, ], 'from_user' => 'user_test_01', 'description' => 'Your description', 'metadata' => [], ]); ``` ## 用户充值查询 ```php \Pingpp\Recharge::retrieve('221170807730968330240000') ``` ## 查询用户充值列表 ```php $params = [ 'page' => 1, 'per_page' => 100, ]; \Pingpp\Recharge::all($params); ``` ## 用户充值退款 ```php \Pingpp\Recharge::refund('221170807730968330240000', [ 'description' => 'Rechage refund description', ]); ``` ## 查询用户充值退款 ```php \Pingpp\Recharge::refund_retrieve('221170807730968330240000', 're_iTqLaTe1WTmHvXjrv9i5C8G4') ``` ## 查询用户充值退款列表 ```php \Pingpp\Recharge::refundList('221170807730968330240000') ``` ## 创建用户 ```php \Pingpp\User::create([ 'id' => uniqid('uid'), // 用户 ID ,由商户提供 ]); ``` ## 查询用户 ```php \Pingpp\User::retrieve('uid582d35283f628'); ``` ## 更新用户 ```php \Pingpp\User::update($uid, [ 'address' => 'Shanghai', 'name' => 'User Name', 'metadata' => [ 'key' => 'value' ], ]); ``` ## 查询用户列表 ```php $users = \Pingpp\User::all([ 'page' => 1, 'per_page' => 10, ]); ``` ## 创建优惠券模板 ```php \Pingpp\CouponTemplate::create([ 'name' => '25OFF', // 优惠券模板名称 'type' => 2, // 优惠券模板的类型 1:现金券;2:折扣券 'percent_off' => 25, // 折扣百分比, 如 20 表示 8 折, 100 表示免费 'amount_available' => 10000, // 订单金额大于等于该值时,优惠券有效(适用于满减);0 表示无限制 'max_circulation' => 1000, // 优惠券最大生成数量,当已生成数量达到最大值时,不能再生成优惠券;默认 null,表示可以无限生成 'metadata' => [], // metadata 'expiration' => null, // 优惠券模板过期策略 ]); ``` ## 查询优惠券模板列表 ```php \Pingpp\CouponTemplate::all([ 'page' => 1, 'per_page' => 10, ]); ``` ## 查询优惠券模板 ```php \Pingpp\CouponTemplate::retrieve('300116082415452100000700'); ``` ## 更新优惠券模板 ```php $ct = \Pingpp\CouponTemplate::update('300116082415452100000700', [ 'metadata' => [ 'keys' => 'value', ] ]); ``` ## 删除优惠券模板 ```php \Pingpp\CouponTemplate::delete('300116082415452100000700'); ``` ## 批量创建优惠券 ```php $coupon_tmpl_id = '300216111711085500022401'; // Ping++ 返回的优惠券模板 ID $params = [ 'users' => [ 'uid582d1756b1650', 'uid582d1756b1651', ], ]; \Pingpp\CouponTemplate::batchCreateCoupons($coupon_tmpl_id, $params); ``` ## 查询优惠券模板下的优惠券列表 ```php \Pingpp\CouponTemplate::couponsList('300216111711085500022401'); // Ping++ 返回的优惠券模板 ID ``` ## 创建单个优惠券 ```php $user_id = 'uid582d1756b1650'; // 用户 ID $params = [ 'coupon_template' => '300216111619300600019101', // 优惠券模版 ID ]; \Pingpp\Coupon::create($user_id, $params); ``` ## 查询优惠券 ```php $user_id = 'uid582d1756b1650'; // 用户 ID $coupon_id = '300416111711463500023901'; // 优惠券 ID \Pingpp\Coupon::retrieve($user_id, $coupon_id); ``` ## 更新优惠券 ```php // 更新 Coupon 对象 $user_id = 'uid582d1756b1650'; // 用户 ID $coupon_id = '300416111711571500024101'; // 优惠券 ID $params = [ 'metadata' => [ 'key' => 'value', ], ]; \Pingpp\Coupon::update($user_id, $coupon_id, $params); ``` ## 删除优惠券 ```php $user_id = 'uid582d1756b1650'; // 用户 ID $coupon_id = '300416111711463500023901'; // 优惠券 ID \Pingpp\Coupon::delete($user_id, $coupon_id); ``` ## 查询用户优惠券列表 ```php $user_id = 'uid582d1756b1650'; // 用户 ID $search_params = [ //搜索条件,此数组可以为空 'page' => 1, //页码,取值范围:1~1000000000;默认值为"1" 'per_page' => 2, //每页数量,取值范围:1~100;默认值为"20" ]; \Pingpp\Coupon::all($user_id, $search_params); ``` ## 批量提现确认 ```php $params = [ 'withdrawals' => [ '1701611150302360654', '1701611151015078981', ] ]; \Pingpp\BatchWithdrawal::confirm($params); ``` ## 批量提现撤销 ```php $params = [ 'withdrawals' => [ '1701611150302360654', '1701611151015078981', ] ]; \Pingpp\BatchWithdrawal::cancel($params); ``` ## 批量提现查询 ```php \Pingpp\BatchWithdrawal::retrieve('1901611151015122025'); //批量提现对象 ID。 ``` ## 批量提现列表查询 ```php $params = [ 'per_page' => 20, 'page' => 1 ]; \Pingpp\BatchWithdrawal::all($params); ``` ## 查询用户余额明细列表 ```php \Pingpp\BalanceTransaction::all([]); ``` ## 查询用户余额明细 ```php \Pingpp\BalanceTransaction::retrieve('310216111501260200000601'); ``` ## 余额提现申请 ```php $params = [ "user" => 'u-s.e_r1479281694040', // 用户 ID "amount" => 200, // 转账金额 "channel" => 'unionpay', // 提现使用渠道。银联:unionpay,支付宝:alipay,微信:wx "user_fee" => 10, // 用户需要承担的手续费 "description" => "test232description", "order_no" => time() . mt_rand(11111, 99999), // 提现订单号,为长度不大于 16 的数字 "extra" => [ "card_number" => "6214888888888888", "user_name" => "张三", "open_bank_code" => "0102", "prov" => "上海", "city" => "上海", ], ]; \Pingpp\Withdrawal::create($params); ``` ## 余额提现查询 ```php \Pingpp\Withdrawal::retrieve('1711611161932569404'); ``` ## 余额提现列表查询 ```php \Pingpp\Withdrawal::all([ 'per_page' => 3 ]); ``` ## 创建余额赠送 ```php \Pingpp\BalanceBonus::create([ 'amount' => 10, 'description' => '余额赠送描述', 'user' => 'user_test_01', 'order_no' => substr(md5(time()), 0, 10), ]); ``` ## 查询用户赠送 ```php \Pingpp\BalanceBonus::retrieve('651170807590953932800000'); ``` ## 查询用户余额赠送列表 ```php \Pingpp\BalanceBonus::all() ``` ## 创建余额转账 ```php \Pingpp\BalanceTransfer::create( [ 'amount' => 10, 'user_fee' => 0, 'user' => 'user_001', 'recipient' => '0', 'order_no' => substr(md5(random_bytes(64)), 0, 10), 'description' => 'Your description', 'metadata' => [], ] ); ``` ## 查询用户余额转账 ```php \Pingpp\BalanceTransfer::retrieve('661170807435256330240000'); ``` ## 查询用户余额转账列表 ```php \Pingpp\BalanceTransfer::all() ``` ## 创建子商户 ```php \Pingpp\SubApp::create([ 'display_name' => 'sub_app_display_name', 'user' => 'user_102', 'metadata' => [ 'key' => 'value', ], ]); ``` ## 查询子商户 ```php \Pingpp\SubApp::retrieve('app_1Gqj58ynP0mHeX1q'); ``` ## 查询子商户列表 ```php \Pingpp\SubApp::all(); ``` ## 更新子商户 ```php $sub_app = \Pingpp\SubApp::update('app_1Gqj58ynP0mHeX1q', [ 'display_name' => 'display_name_2', 'metadata' => [ 'key' => 'value2', ], 'description' => 'Your description', ]); ``` ## 删除子商户 ```php \Pingpp\SubApp::delete('app_1Gqj58ynP0mHeX1q'); ``` ## 设置子商户渠道参数 ```php \Pingpp\Channel::create('app_1Gqj58ynP0mHeX1q', [ 'channel' => 'alipay', 'params' => [ 'fee_rate' => 60, 'alipay_pid' => '2088501666666666', 'alipay_account' => 'account@example.com', 'alipay_security_key' => 'Your security_key', 'alipay_mer_app_private_key' => '-----BEGIN RSA PRIVATE KEY----- MIICXQIBAAKBgQDSBOW3jdthyqSBMNJ8P+BQnfoKpL29BtvACW1gr8YhXh8EqpBU nUDdQgi8uYnprXBbR5O1DVnIqLKG9loEn3Rc2iqpnj3M3nSShuVByjyJjQ+DAIG2 /cgJjGQknCLo0CKtuEIyD5xBKYVz3GLofLKqCNGDYdUIxwgaBBpssNIDGQIDAQAB AoGBAKmzw1taiRawA9VQegRkKQF7ZXwMOjTvwcme1H74CYUU5MOEfzOgDbW7kgvN cJ8dwlg/sh7uNsppZjif/4UUw5R7bSu33m1sIyglmKUYTU7Kw+ETVAPgwkQjJhek V/pDr143vmchAblD4RqQZTneojTkvYgci4RkHHHIIZ8lClIBAkEA/nEyCKzl0gxU LWMd0HKLctcwDu6NPWycffFzSg/+k1+h0GlSTp2E8J6DKOYnrlQYvK2/BnbFPfrb EySi+7c86QJBANNOExrr7xl54JnlZxbXNDnNrql2brPk1DsV/3Lo3Tmt8NuVqiyo hVE8Vs/CPRqTTSPoTV4TwSscB4Torlox9rECQB9tne+CY7TJPxCIIKOhsmXR/Kar gpimtMG9tC7ewOQ1OMiEad06CbSq76p6m0YmLxQHJgRHYV+hf7Pin5sV7BkCQQC6 9KxAuJk/YC9R2r/AXL4vmoU8GLZP4lnIwWjXwaLiwryFfEEp7BywyINCpOgtWED7 UTEK2M2jl9QrSzfgQ66xAkBm2RI+8onm/4PVKtOt8tqLjfsFGMR3g0aUwgSbznc0 Xg9dfU+YUgqfQnyAQHt9jG3/SBdmIrYoWwb7TqJZLkZI -----END RSA PRIVATE KEY-----', 'alipay_app_public_key' => '-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSBOW3jdthyqSBMNJ8P+BQnfoK pL29BtvACW1gr8YhXh8EqpBUnUDdQgi8uYnprXBbR5O1DVnIqLKG9loEn3Rc2iqp nj3M3nSShuVByjyJjQ+DAIG2/cgJjGQknCLo0CKtuEIyD5xBKYVz3GLofLKqCNGD YdUIxwgaBBpssNIDGQIDAQAB -----END PUBLIC KEY-----', ], 'banned' => false, 'banned_msg' => null, 'description' => 'alipay description', ]); ``` ## 获取子商户渠道参数 ```php \Pingpp\Channel::retrieve('app_1Gqj58ynP0mHeX1q', 'alipay'); ``` ## 更新子商户渠道参数 ```php \Pingpp\Channel::update('app_1Gqj58ynP0mHeX1q', 'alipay', [ 'description' => 'new description', 'params' => [ 'fee_rate' => 50, 'alipay_pid' => 'Your Alipay pid', 'alipay_account' => 'account@example.com', ], ]); ``` ## 删除子商户渠道参数 ```php \Pingpp\Channel::delete('app_1Gqj58ynP0mHeX1q', 'alipay'); ``` ## 创建结算账户对象 ```php \Pingpp\SettleAccount::create('user_004', [ 'channel' => 'alipay', 'recipient' => [ 'type' => 'b2c', //转账类型。b2c:企业向个人付款,b2b:企业向企业付款。 'account' => 'account01@account.com', 'name' => '李狗', ], ]); ``` ## 查询结算账户对象 ```php \Pingpp\SettleAccount::retrieve('user_008', '320217031816231000001001'); ``` ## 更新结算账户对象(存管相关) ```php \Pingpp\SettleAccount::update( 'user_001', // 用户 ID '320118012216303200004401', // 结算账户 ID [ 'recipient' => [ 'account' => '6214888888888866', // 银行卡号。 'name' => '张三', // 接收者姓名。 'type' => 'b2c', // 转账类型。b2c:企业向个人付款,b2b:企业向企业付款。 'open_bank_code' => '0308', // 开户银行编号 "open_bank" => "工商银行", "sub_bank" => "招商银行股份有限公司上海陆家嘴支行", "sub_bank_code" => "308290003773", 'card_type' => 0, // 银行卡号类型,0:银行卡;1:存折。 'mobile' => '13822334557', // 手机号 "city" => "上海市", "prov" => "上海市", ], ] ); ``` ## 删除结算账户对象 ```php \Pingpp\SettleAccount::delete('user_008', '320217031816231000001001'); ``` ## 查询结算账户对象列表 ```php \Pingpp\SettleAccount::all('user_008'); ``` ## 结算账户更新手机号(存管相关) ```php \Pingpp\SettleAccount::updateMobile( 'user_001', // 用户 ID '320118012216303200004401', // 结算账户 ID [ 'mobile' => '13822334557', ] ); ``` ## 结算账号打款验证接口(存管相关) ```php \Pingpp\SettleAccount::verify( 'user_001', // 用户 ID '320118012216303200004401', // 结算账户 ID [ 'receive_amount' => 2, ] ); ``` ## 批量更新分润对象 ```php $royalties = \Pingpp\Royalty::update([ 'ids' => [ '170301124238000111', '170301124238000211', ], 'method' => 'manual', //手动标记结算: manual 或 取消手动标记结算:null 'description' => 'Your description', ]); ``` ## 查询分润对象 ```php \Pingpp\Royalty::retrieve('411170318160900002'); ``` ## 查询分润列表 ```php \Pingpp\Royalty::all(); ``` ## 创建分润结算对象 ```php \Pingpp\RoyaltySettlement::create([ 'payer_app' => APP_ID, 'method' => 'alipay', //分润的方式,余额 balance 或渠道名称,例如 alipay 'recipient_app' => APP_ID, 'created' => [ 'gt' => 1489826451, 'lt' => 1492418451, ], 'source_user' => 'user_002', //'source_no' => '', 'min_amount' => 1, 'metadata' => [ 'key' => 'value', ], ]); ``` ## 查询分润结算对象 ```php \Pingpp\RoyaltySettlement::retrieve('431170318144700001'); ``` ## 更新分润结算对象 ```php \Pingpp\RoyaltySettlement::update('431170318144700001', [ 'status' => 'pending' // pending, canceled ]); ``` ## 获取分润结算对象列表 ```php \Pingpp\RoyaltySettlement::all([ 'payer_app' => APP_ID, ]); ``` ## 查询分润结算明细对象 ```php \Pingpp\RoyaltyTransaction::retrieve('441170318144700002'); ``` ## 查询分润结算明细对象列表 ```php \Pingpp\RoyaltyTransaction::all(); ``` ## 创建分润模板 ```php \Pingpp\RoyaltyTemplate::create( [ 'app' => \Pingpp\Pingpp::getAppId(), 'name' => 'royalty_template_name', 'rule' => [ 'royalty_mode' => 'rate', 'refund_mode' => 'no_refund', 'allocation_mode' => 'receipt_reserved', 'data' => [ ['level' => 1, 'value' => 30], ['level' => 2, 'value' => 20], ['level' => 3, 'value' => 10], ], ], 'description' => 'Your description', ] ); ``` ## 查询分润模板 ```php \Pingpp\RoyaltyTemplate::retrieve('451170807182300001') ``` ## 更新分润模板 ```php \Pingpp\RoyaltyTemplate::update('451170807182300001', [ 'name' => 'royalty_template_name_new', 'rule' => [ 'royalty_mode' => 'fixed', 'refund_mode' => 'full_refund', 'allocation_mode' => 'service_reserved', 'data' => [ ['level' => 1, 'value' => 33], ['level' => 2, 'value' => 22], ['level' => 3, 'value' => 11], ], ], 'description' => 'Your description', ]); ``` ## 查询分润模板 ```php \Pingpp\RoyaltyTemplate::retrieve('451170807182300001') ``` ## 删除分润模板 ```php \Pingpp\RoyaltyTemplate::delete('451170807182300001') ``` ## 查询分润模板列表 ```php \Pingpp\RoyaltyTemplate::all() ``` ## 添加分账接收方 ```php \Pingpp\SplitReceiver::create([ 'app' => APP_ID, 'type' => 'MERCHANT_ID', // 分账接收方类型 'name' => '示例商户全称', // 分账接收方全称 'account' => '190001001', // 分账接收方帐号 'channel' => 'wx_pub_qr', // 分账接收方使用的渠道 ]); ``` ## 查询分账接收方 ```php \Pingpp\SplitReceiver::retrieve('recv_1fRbIo0jME7yuL'); ``` ## 删除分账接收方 ```php \Pingpp\SplitReceiver::delete('recv_1fRbIo0jME7yuL'); ``` ## 查询分账接收方列表 ```php \Pingpp\SplitReceiver::all([ 'app' => APP_ID, 'page' => 1, 'per_page' => 10, ]); ``` ## 分账创建 ```php \Pingpp\SplitProfit::create([ 'app' => APP_ID, 'charge' => 'ch_aDC44OKyL8yHPG0yX9yzLy5K', // Ping++ 交易成功的 charge ID 'order_no' => md5(random_bytes(64)), // 分账单号,由商家自行生成,规则参照微信分账参数规则 'recipients' => [ [ 'split_receiver' => 'recv_1fRbIo5YgIM4hl', 'amount' => 6, 'name' => '示例商户全称', // 可选参数, 'description' => 'Your Description', ] ], 'type' => 'split_normal', // 分账类型: split_normal 为普通分账,split_return 为完结分账, 'metadata' => [], // 分账元数据 ]); ``` ## 请求完结分账 ```php \Pingpp\SplitProfit::create([ 'app' => APP_ID, 'charge' => 'ch_aDC44OKyL8yHPG0yX9yzLy5K', //Ping++ 交易成功的 charge ID 'order_no' => md5(random_bytes(64)), //分账单号,由商家自行生成,规则参照微信分账参数规则 'recipients' => [ [ 'split_receiver' => 'recv_1fRbIo5YgIM4hl', 'amount' => 6, 'name' => '示例商户全称', //可选参数, 'description' => 'Your Description', ] ], 'type' => 'split_return', //分账类型: split_normal 为普通分账,split_return 为完结分账, 'metadata' => [], //分账元数据 ]); ``` ## 查询分账对象 ```php \Pingpp\SplitProfit::retrieve('sp_1iXmpPJLe71sf9'); ``` ## 查询分账列表 ```php \Pingpp\SplitProfit::all([ 'app' => APP_ID, 'page' => 1, 'per_page' => 10, ]); ``` ## 查询分账明细列表 ```php \Pingpp\ProfitTransaction::all([ 'app' => APP_ID, 'page' => 1, 'per_page' => 10, ]); ``` ## 查询分账明细 ```php \Pingpp\ProfitTransaction::retrieve('ptxn_1m3c7aGbDK2cpl'); ``` ## 查询银行支行列表 ```php \Pingpp\SubBank::query([ 'app' => APP_ID, // Ping++ app id,必填 'channel' => 'chanpay', // transfer 渠道,必填 'open_bank_code' => '0308', // 银行编号,必填 'prov' => '浙江省', // 省份,必填 'city' => '宁波市', // 城市,必填 ]); ```