Controlador WechatPay para la biblioteca de procesamiento de pagos PHP de Omnipay
Omnipay es una biblioteca de procesamiento de pagos de múltiples puertas de enlace independiente del marco para PHP 5.3+. Este paquete implementa el soporte de WechatPay para Omnipay.
Omnipay se instala a través de Composer. Para instalar:
composer require lokielse/omnipay-wechatpay
Este paquete proporciona las siguientes puertas de enlace:
//gateways: WechatPay_App, WechatPay_Native, WechatPay_Js, WechatPay_Pos, WechatPay_Mweb
$ gateway = Omnipay:: create ( ' WechatPay_App ' );
$ gateway -> setAppId ( $ config [ ' app_id ' ]);
$ gateway -> setMchId ( $ config [ ' mch_id ' ]);
$ gateway -> setApiKey ( $ config [ ' api_key ' ]);
$ order = [
' body ' => ' The test order ' ,
' out_trade_no ' => date ( ' YmdHis ' ). mt_rand ( 1000 , 9999 ),
' total_fee ' => 1 , //=0.01
' spbill_create_ip ' => ' ip_address ' ,
' fee_type ' => ' CNY '
];
/**
* @var OmnipayWechatPayMessageCreateOrderRequest $request
* @var OmnipayWechatPayMessageCreateOrderResponse $response
*/
$ request = $ gateway -> purchase ( $ order );
$ response = $ request -> send ();
//available methods
$ response -> isSuccessful ();
$ response -> getData (); //For debug
$ response -> getAppOrderData (); //For WechatPay_App
$ response -> getJsOrderData (); //For WechatPay_Js
$ response -> getCodeUrl (); //For Native Trade Type
$ gateway = Omnipay:: create ( ' WechatPay ' );
$ gateway -> setAppId ( $ config [ ' app_id ' ]);
$ gateway -> setMchId ( $ config [ ' mch_id ' ]);
$ gateway -> setApiKey ( $ config [ ' api_key ' ]);
$ response = $ gateway -> completePurchase ([
' request_params ' => file_get_contents ( ' php://input ' )
])-> send ();
if ( $ response -> isPaid ()) {
//pay success
var_dump ( $ response -> getRequestData ());
} else {
//pay fail
}
$ response = $ gateway -> query ([
' transaction_id ' => ' 1217752501201407033233368018 ' , //The wechat trade no
])-> send ();
var_dump ( $ response -> isSuccessful ());
var_dump ( $ response -> getData ());
$ response = $ gateway -> close ([
' out_trade_no ' => ' 201602011315231245 ' , //The merchant trade no
])-> send ();
var_dump ( $ response -> isSuccessful ());
var_dump ( $ response -> getData ());
$ gateway -> setCertPath ( $ certPath );
$ gateway -> setKeyPath ( $ keyPath );
$ response = $ gateway -> refund ([
' transaction_id ' => ' 1217752501201407033233368018 ' , //The wechat trade no
' out_refund_no ' => $ outRefundNo ,
' total_fee ' => 1 , //=0.01
' refund_fee ' => 1 , //=0.01
])-> send ();
var_dump ( $ response -> isSuccessful ());
var_dump ( $ response -> getData ());
$ response = $ gateway -> queryRefund ([
' refund_id ' => ' 1217752501201407033233368018 ' , //Your site trade no, not union tn.
])-> send ();
var_dump ( $ response -> isSuccessful ());
var_dump ( $ response -> getData ());
WechatPay_Native
) doc $ response = $ gateway -> shortenUrl ([
' long_url ' => $ longUrl
])-> send ();
var_dump ( $ response -> isSuccessful ());
var_dump ( $ response -> getData ());
var_dump ( $ response -> getShortUrl ());
WechatPay_Pos
) doc $ response = $ gateway -> queryOpenId ([
' auth_code ' => $ authCode
])-> send ();
var_dump ( $ response -> isSuccessful ());
var_dump ( $ response -> getData ());
var_dump ( $ response -> getOpenId ());
Para obtener instrucciones de uso generales, consulte el repositorio principal de Omnipay.
Si tiene problemas generales con Omnipay, le sugerimos publicar en Stack Overflow. Asegúrese de agregar la etiqueta omnipay para que pueda encontrarla fácilmente.
Si desea mantenerse actualizado con los anuncios de lanzamiento, discutir ideas para el proyecto o hacer preguntas más detalladas, también hay una lista de correo a la que puede suscribirse.
Si cree que ha encontrado un error, infórmelo utilizando el rastreador de problemas de GitHub o, mejor aún, bifurque la biblioteca y envíe una solicitud de extracción.