Google Pay API收取费用

时间:2018-06-29 14:31:46

标签: android google-pay

我正在按照教程here来集成google pay API以为我的应用获取资金。到目前为止,我已经成功地进行了收费,但是我发现很难成功转移费用。

我正在使用的Google钱包依赖项是

implementation 'com.google.android.gms:play-services-wallet:15.0.1'

我想从另一个MainActivity发出请求时,以onActivityResult的{​​{1}}中收取费用。但是Fragment仅具有电子邮件地址和帐单状态。我能想到的唯一合乎逻辑的方法是以某种方式向Intent data注入收费金额,但我似乎找不到解决方法。

我尝试在此处设置参数,但是在Intent data中收到的Intent中没有显示。

有人可以帮我吗?

onActivityResult

2 个答案:

答案 0 :(得分:0)

正如您在评论中提到的那样,“电子邮件和付款状态”由Google电子钱包设置,因此不确定是否可以修改该“意图”。

解决方案:

一个选择是为此目的使用requestPayment()。在chargeAmount方法中,在SharedPreference中设置MainActivity#onActivityResult(),在chargeAmount中,如果付款成功,则从SharedPreference获取public void requestPayment(BigDecimal amount) { ........... String chargeAmount = amount.divide(MICROS).setScale(2, RoundingMode.HALF_EVEN).toString(); // set chargeAmount to SharedPreference here ............. } 。完成了。

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (requestCode) {
        case LOAD_PAYMENT_DATA_REQUEST_CODE:
            switch (resultCode) {
                case Activity.RESULT_OK:
                    // get chargeAmount from SharedPreference here 
                    PaymentData paymentData = PaymentData.getFromIntent(data);
                    String token = paymentData.getPaymentMethodToken().getToken();
                    break;
                case Activity.RESULT_CANCELED:
                    break;
                case AutoResolveHelper.RESULT_ERROR:
                    Status status = AutoResolveHelper.getStatusFromIntent(data);
                    // Log the status for debugging.
                    // Generally, there is no need to show an error to
                    // the user as the Google Pay API will do that.
                    break;
                default:
                    // Do nothing.
            }
            break;
        default:
            // Do nothing.
    }
}

MainActivity#onActivityResult()

sudo apt-get install libftgl2 

我希望这会对您有所帮助。

答案 1 :(得分:0)

请注意,获取支付令牌并不意味着支付交易成功完成。只有当您通过付款处理器或网关提交订单以进行处理时,这种情况才会发生。发生这种情况时,通常会包含订单ID和最终收费金额。

我建议将其作为一种更具体的方式来说明成功交易。