博客列表 >微信、字节、百度、快手小程序、微信App、微信公众号、微信H5(支付、手机号解密、获取Token等功能)

微信、字节、百度、快手小程序、微信App、微信公众号、微信H5(支付、手机号解密、获取Token等功能)

De l'eau.
De l'eau.原创
2022年09月16日 17:46:10648浏览

微信小程序、字节小程序、百度小程序、快手小程序、微信 App、微信 H5(支付、手机号解密、获取 Token、支付异步通知、退款、订单查询)

Github地址 去 fork or star 版本更新也知道

目录、微信小程序、字节小程序、百度小程序、微信 App 支付

安装说明

  1. composer require code-lives/applet-pays 5.1

功能支持

第三方 token openid 支付 回调 退款 订单查询 解密手机号 分账
微信小程序 x
微信h5 x x x x
微信公众号 x x x x
百度小程序 x
字节小程序
快手小程序
微信APP x x x

生成订单

  1. // 金额单位分 100=1元
  2. $payName='Baidu';//百度
  3. $pay= \Applet\Pay\Factory::getInstance($PayName)->init($config)->set("订单号","金额","描述")->getParam();
  4. $payName='Byte';//字节
  5. $pay= \Applet\Pay\Factory::getInstance($PayName)->init($config)->set("订单号","金额","描述","描述")->getParam();
  6. $payName='Weixin';//微信
  7. $pay= \Applet\Pay\Factory::getInstance($PayName)->init($config)->set("订单号","金额","描述","openid")->getParam();
  8. $payName='Weixin';//微信公众号【appid 和secret 换成公众号的】
  9. $pay= \Applet\Pay\Factory::getInstance($PayName)->init($config)->set("订单号","金额","描述","openid")->getParam();
  10. $payName='Weixin';//微信H5【appid 和secret 换成公众号的】
  11. $pay= \Applet\Pay\Factory::getInstance($PayName)->init($config)->set("订单号","金额","描述")->getH5Param();
  12. $payName='Weixin';//微信APP (没有openid)
  13. $pay= \Applet\Pay\Factory::getInstance($PayName)->init($config)->set("订单号","金额","描述")->getParam();
  14. $payName='Kuaishou';//快手
  15. $pay= \Applet\Pay\Factory::getInstance($PayName)->init($config)->set("订单号","金额","描述",'openid', 'access_token')->getParam();

百度小程序

Config

参数名字 类型 必须 说明
appkey string 百度小程序 appkey
payappKey string 百度小程序支付 appkey
appSecret string 百度小程序 aapSecret
dealId int 百度小程序支付凭证
isSkipAudit int 默认为 0; 0:不跳过开发者业务方审核;1:跳过开发者业务方审核。
rsaPriKeyStr string 私钥(只需要一行长串,不需要文件)
rsaPubKeyStr string 百度小程序支付的平台公钥(支付回调需要)

token

  1. $payName='Baidu';//设置驱动
  2. $data= \Applet\Pay\Factory::getInstance($PayName)->init($config)->getToken();
  3. //成功 array
  4. //失败 false
返回参数 类型 必须 说明
expires_in string 凭证有效时间,单位:秒
session_key string session_key
access_token string 获取到的凭证

openid

  1. $payName='Baidu';//设置驱动
  2. $code="";
  3. $data= \Applet\Pay\Factory::getInstance($PayName)->init($config)->getOpenid($code);
  4. //成功 array
  5. //失败 false
返回参数 类型 必须 说明
session_key string session_key
openid string 用户 openid

解密手机号

  1. $payName='Baidu';//设置驱动
  2. $data= \Applet\Pay\Factory::getInstance($PayName)->init($config)->decryptPhone($session_key, $iv, $ciphertext);
  3. echo $phone['mobile'];
  4. // 成功 array
  5. // 失败 false

百度订单查询

参数名字 类型 必须 说明
access_token string 根据上面的获取 token
tpOrderId string 平台订单号
  1. $payName='Baidu';//设置驱动
  2. $Baidu = \Applet\Pay\Factory::getInstance('Baidu')->init($config);
  3. $order = [
  4. 'tpOrderId' => '',//订单号
  5. 'access_token' => $Baidu->getToken()['access_token'],
  6. ];
  7. $data = $Baidu->findOrder($order);
  8. // 成功 array 【自己看手册】
  9. // 失败 false

百度退款

参数名字 类型 必须 说明
access_token string 根据上面的获取 token
bizRefundBatchId int 百度平台的订单号
isSkipAudit int 默认为 0; 0:不跳过开发者业务方审核;1:跳过开发者业务方审核。
orderId int 百度平台的订单号
refundReason string 退款描述
refundType int 退款类型 1:用户发起退款;2:开发者业务方退款;3:开发者服务异常退款。百度小程序支付的平台公钥
tpOrderId string 自己平台订单号
userId int 用户 uid(不是自己平台 uid)
  1. $order = [
  2. 'token' => 'abcd',
  3. 'bizRefundBatchId' => 123456,//百度平台订单号
  4. 'isSkipAudit' => 1,
  5. 'orderId' => 123456,
  6. 'refundReason' => '测试退款',
  7. 'refundType' => 2,//
  8. 'tpOrderId' => '123',//自己平台订单号
  9. 'userId' => 123,
  10. ];
  11. $data= \Applet\Pay\Factory::getInstance($PayName)->init($config)->applyOrderRefund($order);
  12. //返回 true false

字节小程序

Config

参数名字 类型 必须 说明
token string 担保交易回调的 Token(令牌)
salt string 担保交易的 SALT
merchant_id string 担保交易的商户号
app_id int 小程序的 APP_ID
secret string 小程序的 APP_SECRET
notify_url string 支付回调 url
settle_url string 分账回调 url,没有默认支付回调 url

token

  1. $payName='Byte';//驱动
  2. $data= \Applet\Pay\Factory::getInstance($PayName)->init($config)->getToken();
  3. //成功 array
  4. //失败 false
返回参数 类型 必须 说明
expires_in string 凭证有效时间,单位:秒
access_token string 获取到的凭证

openid

  1. $payName='Byte';//设置驱动
  2. $code="";
  3. $anonymous_code="";//可以不传
  4. $data= \Applet\Pay\Factory::getInstance($PayName)->init($config)->getOpenid($code,$anonymous_code);
  5. //成功 array
  6. //失败 false
返回参数 类型 必须 说明
session_key string session_key
openid string 用户 openid
unionid string unionid

解密手机号

  1. $payName='Baidu';//设置驱动
  2. $data= \Applet\Pay\Factory::getInstance($PayName)->init($config)->decryptPhone($session_key, $iv, $encryptedData);
  3. echo $phone['phoneNumber'];
  4. // 成功 array
  5. // 失败 false

字节订单查询

  1. $payName='Byte';//设置驱动
  2. $Baidu = \Applet\Pay\Factory::getInstance($payName)->init($config);
  3. $data = $Baidu->findOrder("订单号");
  4. // 成功 array 【自己看手册】
  5. // 失败 false

字节分账

参数名字 类型 必须 说明
out_order_no string 平台订单号
out_settle_no string 自定义订单号
settle_desc int 分账描述
cp_extra string 开发者自定义字段,回调原样回传
  1. $payName='Byte';//设置驱动
  2. $Baidu = \Applet\Pay\Factory::getInstance($payName)->init($config);
  3. $data = $Baidu->settle($order);
  4. // 成功 array 【自己看手册】
  5. // 失败 false

字节退款

参数名字 类型 必须 说明
out_order_no string 平台订单号
out_refund_no int 自定义订单号
reason int 退款说明
refund_amount string 退款金额
  1. $order = [
  2. 'out_order_no' => '',
  3. 'out_refund_no' => time() . 'refund',
  4. 'reason' => '就想退款,咋滴',
  5. 'refund_amount' => 1, //退款金额
  6. ];
  7. $data= \Applet\Pay\Factory::getInstance($PayName)->init($config)->applyOrderRefund($order);
  8. //返回 [err_no] => 1
  9. // [err_tips] => 成功
  10. // [refund_no] => 1212

微信小程序

Config

参数名字 类型 必须 说明
appid int 小程序 appid
secret int 小程序 secret
mch_id string 商户 mch_id
mch_key string 商户 mch_key
notify_url string 异步地址
cert_pem string cert_pem 证书
key_pem string key_pem 证书
trade_type string 默认为:JSAPI。MWEB:代表微信 H5 、JSAPI:公众号或小程序

token

  1. $payName='Weixin';//驱动
  2. $data= \Applet\Pay\Factory::getInstance($PayName)->init($config)->getToken();
  3. //成功 array
  4. //失败 false
返回参数 类型 必须 说明
expires_in string 凭证有效时间,单位:秒
access_token string 获取到的凭证

openid

  1. $payName='Weixin';//设置驱动
  2. $code="";
  3. $data= \Applet\Pay\Factory::getInstance($PayName)->init($config)->getOpenid($code);
  4. //成功 array
  5. //失败 false
返回参数 类型 必须 说明
session_key string session_key
openid string 用户 openid
unionid string unionid

微信解密手机号

  1. $payName='Weixin';//设置驱动
  2. $data= \Applet\Pay\Factory::getInstance($PayName)->init($config)->decryptPhone($session_key, $iv, $encryptedData);
  3. echo $phone['phoneNumber'];
  4. // 成功 array
  5. // 失败 false

微信订单查询

  1. $payName='Weixin';//设置驱动
  2. $Baidu = \Applet\Pay\Factory::getInstance($payName)->init($config);
  3. $data = $Baidu->findOrder("订单号");
  4. // 成功 array 【自己看手册】
  5. // 失败 false

微信退款

参数名字 类型 必须 说明
out_trade_no string 平台订单号
out_refund_no strging 自定义订单号
refund_fee int 退款金额
total_fee int 订单金额
refund_desc string 退款原因
  1. $order = [
  2. 'out_trade_no' => '123',
  3. 'total_fee' => 0.01,
  4. 'out_refund_no' => time(),
  5. 'refund_fee' => 0.01,
  6. ];
  7. $data= \Applet\Pay\Factory::getInstance($PayName)->init($config)->applyOrderRefund($order);
  8. //返回 成功 返回订单号 否则 false

快手小程序

Config

参数名字 类型 必须 说明
app_id int 小程序 appid
app_secret int 小程序 secret
notify_url string 回调地址
settle_url string 结算回调地址,没有就默认notify_url
type int 类目

openid

  1. $payName='Kuaishou';//设置驱动
  2. $code="";
  3. $data= \Applet\Pay\Factory::getInstance($PayName)->init($config)->getOpenid($code);
返回参数 类型 必须 说明
session_key string session_key
open_id string 用户 open_id
result string 状态 1 是成功

快手解密手机号

  1. $payName='Kuaishou';//设置驱动
  2. $data= \Applet\Pay\Factory::getInstance($PayName)->init($config)->decryptPhone($session_key, $iv, $encryptedData);
  3. echo $phone['phoneNumber'];
  4. // 成功 array
  5. // 失败 false

快手订单查询

  1. $payName='Kuaishou';//设置驱动
  2. $Baidu = \Applet\Pay\Factory::getInstance($payName)->init($config);
  3. $data = $Baidu->findOrder("订单号",$access_token);
  4. // 成功 array 【自己看手册】

快手退款

参数名字 类型 必须 说明
out_trade_no string 平台订单号
out_refund_no strging 自定义订单号
refund_amount int 退款金额
reason string 退款原因
access_token string access_token
attach string 自定义
  1. $orders = [
  2. 'out_order_no' => $order['out_order_no'],
  3. 'out_refund_no' => $order['out_refund_no'],
  4. 'reason' => $order['reason'],
  5. 'attach' => $order['attach'],
  6. ];
  7. $data= \Applet\Pay\Factory::getInstance($PayName)->init($config)->applyOrderRefund($order);
  8. //返回 成功

快手结算

参数名字 类型 必须 说明
out_order_no string 平台订单号
out_settle_no strging 自定义订单号
reason string 退款原因
access_token string access_token
attach string 自定义
  1. //注意 需要设置回调 notify_url 在config 设置 settle_url 如果没有 默认为 notify_url
  2. $orders = [
  3. 'out_order_no' => $order['out_order_no'],
  4. 'out_settle_no' => $order['out_settle_no'],
  5. 'reason' => $order['reason'],
  6. 'attach' => $order['attach'],
  7. ];
  8. $data= \Applet\Pay\Factory::getInstance($PayName)->init($config)->settle($order,$access_token);
  9. //返回 成功

微信 APP

Config

参数名字 类型 必须 说明
appid int 开发平台 appid
secret int 开放平台 secret
mch_id string 商户 mch_id
mch_key string 商户 mch_key
trade_type string APP
notify_url string 异步地址

异步通知

字节

  1. $pay = \Applet\Pay\Factory::getInstance('Byte')->init($config);
  2. $status = $pay->notifyCheck(); //验证
  3. if ($status) {
  4. $orderSn = $pay->getNotifyOrder(); //订单数据$orderSn['msg']['cp_orderno'] $orderSn['msg']['seller_uid']
  5. switch ($orderSn['type']) {
  6. case 'payment': // 支付相关回调
  7. /**
  8. *业务处理
  9. */
  10. echo json_encode(['err_no' => 0, 'err_tips' => 'success']);exit; // 操作成功需要给头条返回的信息
  11. break;
  12. case 'refund': // 退款相关回调
  13. /**
  14. *业务处理
  15. */
  16. echo json_encode(['err_no' => 0, 'err_tips' => 'success']);exit; // 操作成功需要给头条返回的信息
  17. break;
  18. case 'settle': // 分账相关回调
  19. /**
  20. *业务处理
  21. */
  22. echo json_encode(['err_no' => 0, 'err_tips' => 'success']);exit; // 操作成功需要给头条返回的信息
  23. break;
  24. default: // 未知数据
  25. return '数据异常';
  26. }
  27. }

微信回调(通用微信 H5 支付、小程序、微信公众号) 记得改 config 配置

  1. $pay = \Applet\Pay\Factory::getInstance('Weixin')->init($config);
  2. $status = $pay->notifyCheck();//验证
  3. if($status){
  4. $order = $pay->getNotifyOrder();//订单数据
  5. //$order['out_trade_no']//平台订单号
  6. //$order['transaction_id']//微信订单号
  7. echo 'success';exit;
  8. }

百度小程序回调

  1. $pay = \Applet\Pay\Factory::getInstance('Baidu')->init($config);
  2. $status = $pay->notifyCheck();//验证
  3. if($status){
  4. $order = $pay->getNotifyOrder();
  5. //$order['tpOrderId']
  6. //$order['orderId']
  7. //$order['userId']
  8. echo 'success';exit;
  9. }

快手小程序

  1. $pay = \Applet\Pay\Factory::getInstance('Kuaishou')->init($config);
  2. $status = $pay->notifyCheck(); //验证
  3. if ($status) {
  4. $order = $pay->getNotifyOrder(); //订单数据
  5. //$order['data']['out_order_no']//平台订单号
  6. echo json_encode(['result' => 1, 'message_id' => $order['message_id']]);exit;
  7. }
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议